blob: 1d088e495f241261cc84dd13a056bfa36e8fec18 [file] [log] [blame]
Matteo Martincigh994b5342019-10-11 17:19:56 +01001//
Jim Flynnbbfe6032020-07-20 16:57:44 +01002// Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
Matteo Martincigh994b5342019-10-11 17:19:56 +01003// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
Matteo Martincigh994b5342019-10-11 17:19:56 +01008#include "ProfilingStateMachine.hpp"
9
Jim Flynnbbfe6032020-07-20 16:57:44 +010010#include <common/include/CommandHandlerFunctor.hpp>
11#include <common/include/Packet.hpp>
12
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000013namespace arm
Matteo Martincigh994b5342019-10-11 17:19:56 +010014{
15
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000016namespace pipe
Matteo Martincigh994b5342019-10-11 17:19:56 +010017{
18
Jim Flynnbbfe6032020-07-20 16:57:44 +010019class PerJobCounterSelectionCommandHandler : public arm::pipe::CommandHandlerFunctor
Matteo Martincigh994b5342019-10-11 17:19:56 +010020{
21
22public:
Jim Flynn397043f2019-10-17 17:37:10 +010023 PerJobCounterSelectionCommandHandler(uint32_t familyId,
24 uint32_t packetId,
25 uint32_t version,
26 const ProfilingStateMachine& profilingStateMachine)
27 : CommandHandlerFunctor(familyId, packetId, version)
Matteo Martincigh994b5342019-10-11 17:19:56 +010028 , m_StateMachine(profilingStateMachine)
29 {}
30
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000031 void operator()(const Packet& packet) override;
Matteo Martincigh994b5342019-10-11 17:19:56 +010032
33private:
34 const ProfilingStateMachine& m_StateMachine;
35};
36
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000037} // namespace pipe
Matteo Martincigh994b5342019-10-11 17:19:56 +010038
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000039} // namespace arm
Matteo Martincigh994b5342019-10-11 17:19:56 +010040