1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2019 Arm Ltd. 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 10*89c4ff92SAndroid Build Coastguard Worker namespace arm 11*89c4ff92SAndroid Build Coastguard Worker { 12*89c4ff92SAndroid Build Coastguard Worker 13*89c4ff92SAndroid Build Coastguard Worker namespace pipe 14*89c4ff92SAndroid Build Coastguard Worker { 15*89c4ff92SAndroid Build Coastguard Worker 16*89c4ff92SAndroid Build Coastguard Worker class IReadCounterValues 17*89c4ff92SAndroid Build Coastguard Worker { 18*89c4ff92SAndroid Build Coastguard Worker public: ~IReadCounterValues()19*89c4ff92SAndroid Build Coastguard Worker virtual ~IReadCounterValues() {} 20*89c4ff92SAndroid Build Coastguard Worker 21*89c4ff92SAndroid Build Coastguard Worker virtual bool IsCounterRegistered(uint16_t counterUid) const = 0; 22*89c4ff92SAndroid Build Coastguard Worker virtual bool IsCounterRegistered(const std::string& counterName) const = 0; 23*89c4ff92SAndroid Build Coastguard Worker virtual uint16_t GetCounterCount() const = 0; 24*89c4ff92SAndroid Build Coastguard Worker virtual uint32_t GetAbsoluteCounterValue(uint16_t counterUid) const = 0; 25*89c4ff92SAndroid Build Coastguard Worker virtual uint32_t GetDeltaCounterValue(uint16_t counterUid) = 0; 26*89c4ff92SAndroid Build Coastguard Worker }; 27*89c4ff92SAndroid Build Coastguard Worker 28*89c4ff92SAndroid Build Coastguard Worker class IWriteCounterValues 29*89c4ff92SAndroid Build Coastguard Worker { 30*89c4ff92SAndroid Build Coastguard Worker public: ~IWriteCounterValues()31*89c4ff92SAndroid Build Coastguard Worker virtual ~IWriteCounterValues() {} 32*89c4ff92SAndroid Build Coastguard Worker 33*89c4ff92SAndroid Build Coastguard Worker virtual void SetCounterValue(uint16_t counterUid, uint32_t value) = 0; 34*89c4ff92SAndroid Build Coastguard Worker virtual uint32_t AddCounterValue(uint16_t counterUid, uint32_t value) = 0; 35*89c4ff92SAndroid Build Coastguard Worker virtual uint32_t SubtractCounterValue(uint16_t counterUid, uint32_t value) = 0; 36*89c4ff92SAndroid Build Coastguard Worker virtual uint32_t IncrementCounterValue(uint16_t counterUid) = 0; 37*89c4ff92SAndroid Build Coastguard Worker }; 38*89c4ff92SAndroid Build Coastguard Worker 39*89c4ff92SAndroid Build Coastguard Worker class IReadWriteCounterValues : public IReadCounterValues, public IWriteCounterValues 40*89c4ff92SAndroid Build Coastguard Worker { 41*89c4ff92SAndroid Build Coastguard Worker public: ~IReadWriteCounterValues()42*89c4ff92SAndroid Build Coastguard Worker virtual ~IReadWriteCounterValues() {} 43*89c4ff92SAndroid Build Coastguard Worker }; 44*89c4ff92SAndroid Build Coastguard Worker 45*89c4ff92SAndroid Build Coastguard Worker } // namespace pipe 46*89c4ff92SAndroid Build Coastguard Worker 47*89c4ff92SAndroid Build Coastguard Worker } // namespace arm 48