xref: /aosp_15_r20/external/armnn/profiling/common/include/Counter.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2022,2023 Arm Ltd and Contributors. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker 
6*89c4ff92SAndroid Build Coastguard Worker #pragma once
7*89c4ff92SAndroid Build Coastguard Worker 
8*89c4ff92SAndroid Build Coastguard Worker #include <cstdint>
9*89c4ff92SAndroid Build Coastguard Worker #include <string>
10*89c4ff92SAndroid Build Coastguard Worker 
11*89c4ff92SAndroid Build Coastguard Worker namespace arm
12*89c4ff92SAndroid Build Coastguard Worker {
13*89c4ff92SAndroid Build Coastguard Worker 
14*89c4ff92SAndroid Build Coastguard Worker namespace pipe
15*89c4ff92SAndroid Build Coastguard Worker {
16*89c4ff92SAndroid Build Coastguard Worker 
17*89c4ff92SAndroid Build Coastguard Worker class Counter final
18*89c4ff92SAndroid Build Coastguard Worker {
19*89c4ff92SAndroid Build Coastguard Worker public:
20*89c4ff92SAndroid Build Coastguard Worker     // Constructors
Counter(const std::string & backendId,uint16_t counterUid,uint16_t maxCounterUid,uint16_t counterClass,uint16_t interpolation,double multiplier,const std::string & name,const std::string & description,const std::string & units,uint16_t deviceUid,uint16_t counterSetUid)21*89c4ff92SAndroid Build Coastguard Worker     Counter(const std::string& backendId,
22*89c4ff92SAndroid Build Coastguard Worker             uint16_t           counterUid,
23*89c4ff92SAndroid Build Coastguard Worker             uint16_t           maxCounterUid,
24*89c4ff92SAndroid Build Coastguard Worker             uint16_t           counterClass,
25*89c4ff92SAndroid Build Coastguard Worker             uint16_t           interpolation,
26*89c4ff92SAndroid Build Coastguard Worker             double             multiplier,
27*89c4ff92SAndroid Build Coastguard Worker             const std::string& name,
28*89c4ff92SAndroid Build Coastguard Worker             const std::string& description,
29*89c4ff92SAndroid Build Coastguard Worker             const std::string& units,
30*89c4ff92SAndroid Build Coastguard Worker             uint16_t           deviceUid,
31*89c4ff92SAndroid Build Coastguard Worker             uint16_t           counterSetUid)
32*89c4ff92SAndroid Build Coastguard Worker         : m_BackendId(backendId)
33*89c4ff92SAndroid Build Coastguard Worker         , m_Uid(counterUid)
34*89c4ff92SAndroid Build Coastguard Worker         , m_MaxCounterUid(maxCounterUid)
35*89c4ff92SAndroid Build Coastguard Worker         , m_Class(counterClass)
36*89c4ff92SAndroid Build Coastguard Worker         , m_Interpolation(interpolation)
37*89c4ff92SAndroid Build Coastguard Worker         , m_Multiplier(multiplier)
38*89c4ff92SAndroid Build Coastguard Worker         , m_Name(name)
39*89c4ff92SAndroid Build Coastguard Worker         , m_Description(description)
40*89c4ff92SAndroid Build Coastguard Worker         , m_Units(units)
41*89c4ff92SAndroid Build Coastguard Worker         , m_DeviceUid(deviceUid)
42*89c4ff92SAndroid Build Coastguard Worker         , m_CounterSetUid(counterSetUid)
43*89c4ff92SAndroid Build Coastguard Worker     {}
44*89c4ff92SAndroid Build Coastguard Worker 
45*89c4ff92SAndroid Build Coastguard Worker     // Fields
46*89c4ff92SAndroid Build Coastguard Worker     std::string m_BackendId;
47*89c4ff92SAndroid Build Coastguard Worker     uint16_t    m_Uid;
48*89c4ff92SAndroid Build Coastguard Worker     uint16_t    m_MaxCounterUid;
49*89c4ff92SAndroid Build Coastguard Worker     uint16_t    m_Class;
50*89c4ff92SAndroid Build Coastguard Worker     uint16_t    m_Interpolation;
51*89c4ff92SAndroid Build Coastguard Worker     double      m_Multiplier;
52*89c4ff92SAndroid Build Coastguard Worker     std::string m_Name;
53*89c4ff92SAndroid Build Coastguard Worker     std::string m_Description;
54*89c4ff92SAndroid Build Coastguard Worker     std::string m_Units;      // Optional, leave empty if the counter does not need units
55*89c4ff92SAndroid Build Coastguard Worker 
56*89c4ff92SAndroid Build Coastguard Worker     // Connections
57*89c4ff92SAndroid Build Coastguard Worker     uint16_t m_DeviceUid;     // Optional, set to zero if the counter is not associated with a device
58*89c4ff92SAndroid Build Coastguard Worker     uint16_t m_CounterSetUid; // Optional, set to zero if the counter is not associated with a counter set
59*89c4ff92SAndroid Build Coastguard Worker };
60*89c4ff92SAndroid Build Coastguard Worker 
61*89c4ff92SAndroid Build Coastguard Worker } // namespace pipe
62*89c4ff92SAndroid Build Coastguard Worker 
63*89c4ff92SAndroid Build Coastguard Worker } // namespace arm
64