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