diff options
Diffstat (limited to 'profiling/client/include')
-rw-r--r-- | profiling/client/include/CounterStatus.hpp | 34 | ||||
-rw-r--r-- | profiling/client/include/CounterValue.hpp | 24 | ||||
-rw-r--r-- | profiling/client/include/IProfilingService.hpp | 6 | ||||
-rw-r--r-- | profiling/client/include/ISendCounterPacket.hpp | 2 | ||||
-rw-r--r-- | profiling/client/include/Timestamp.hpp | 24 | ||||
-rw-r--r-- | profiling/client/include/backends/IBackendProfiling.hpp | 40 | ||||
-rw-r--r-- | profiling/client/include/backends/IBackendProfilingContext.hpp | 5 |
7 files changed, 101 insertions, 34 deletions
diff --git a/profiling/client/include/CounterStatus.hpp b/profiling/client/include/CounterStatus.hpp new file mode 100644 index 0000000000..d497226055 --- /dev/null +++ b/profiling/client/include/CounterStatus.hpp @@ -0,0 +1,34 @@ +// +// Copyright © 2022 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include <cstdint> + +namespace arm +{ + +namespace pipe +{ + +struct CounterStatus +{ + CounterStatus(uint16_t backendCounterId, + uint16_t globalCounterId, + bool enabled, + uint32_t samplingRateInMicroseconds) + : m_BackendCounterId(backendCounterId), + m_GlobalCounterId(globalCounterId), + m_Enabled(enabled), + m_SamplingRateInMicroseconds(samplingRateInMicroseconds) {} + uint16_t m_BackendCounterId; + uint16_t m_GlobalCounterId; + bool m_Enabled; + uint32_t m_SamplingRateInMicroseconds; +}; + +} // namespace pipe + +} // namespace arm diff --git a/profiling/client/include/CounterValue.hpp b/profiling/client/include/CounterValue.hpp new file mode 100644 index 0000000000..79de33b9b9 --- /dev/null +++ b/profiling/client/include/CounterValue.hpp @@ -0,0 +1,24 @@ +// +// Copyright © 2022 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +namespace arm +{ + +namespace pipe +{ + +struct CounterValue +{ + CounterValue(uint16_t id, uint32_t value) : + counterId(id), counterValue(value) {} + uint16_t counterId; + uint32_t counterValue; +}; + +} // namespace pipe + +} // namespace arm diff --git a/profiling/client/include/IProfilingService.hpp b/profiling/client/include/IProfilingService.hpp index 21d5c9ce77..778bdb772d 100644 --- a/profiling/client/include/IProfilingService.hpp +++ b/profiling/client/include/IProfilingService.hpp @@ -11,12 +11,11 @@ #include "IInitialiseProfilingService.hpp" #include "IProfilingServiceStatus.hpp" #include "ISendCounterPacket.hpp" +#include "ISendTimelinePacket.hpp" #include "IReportStructure.hpp" #include "ProfilingOptions.hpp" #include "ProfilingState.hpp" -#include <client/include/backends/IBackendProfilingContext.hpp> - #include <common/include/ICounterRegistry.hpp> #include <common/include/Optional.hpp> #include <common/include/ProfilingGuidGenerator.hpp> @@ -28,6 +27,9 @@ namespace arm namespace pipe { +// forward declaration +class IBackendProfilingContext; + class IProfilingService : public IProfilingGuidGenerator, public IProfilingServiceStatus, public IReadWriteCounterValues diff --git a/profiling/client/include/ISendCounterPacket.hpp b/profiling/client/include/ISendCounterPacket.hpp index c76150fc58..80951288a9 100644 --- a/profiling/client/include/ISendCounterPacket.hpp +++ b/profiling/client/include/ISendCounterPacket.hpp @@ -5,7 +5,7 @@ #pragma once -#include <client/include/backends/IBackendProfiling.hpp> +#include "CounterValue.hpp" #include <common/include/ICounterDirectory.hpp> diff --git a/profiling/client/include/Timestamp.hpp b/profiling/client/include/Timestamp.hpp new file mode 100644 index 0000000000..4961551396 --- /dev/null +++ b/profiling/client/include/Timestamp.hpp @@ -0,0 +1,24 @@ +// +// Copyright © 2022 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include "CounterValue.hpp" + +namespace arm +{ + +namespace pipe +{ + +struct Timestamp +{ + uint64_t timestamp; + std::vector<CounterValue> counterValues; +}; + +} // namespace pipe + +} // namespace arm diff --git a/profiling/client/include/backends/IBackendProfiling.hpp b/profiling/client/include/backends/IBackendProfiling.hpp index 347d2ddf03..a9d29c504f 100644 --- a/profiling/client/include/backends/IBackendProfiling.hpp +++ b/profiling/client/include/backends/IBackendProfiling.hpp @@ -2,9 +2,16 @@ // Copyright © 2020 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // + #pragma once +#include <client/include/CounterStatus.hpp> +#include <client/include/CounterValue.hpp> +#include <client/include/IProfilingService.hpp> +#include <client/include/ISendCounterPacket.hpp> #include <client/include/ISendTimelinePacket.hpp> +#include <client/include/ProfilingOptions.hpp> +#include <client/include/Timestamp.hpp> #include <common/include/IProfilingGuidGenerator.hpp> #include <common/include/Optional.hpp> @@ -18,36 +25,6 @@ namespace arm namespace pipe { -struct CounterValue -{ - CounterValue(uint16_t id, uint32_t value) : - counterId(id), counterValue(value) {} - uint16_t counterId; - uint32_t counterValue; -}; - -struct Timestamp -{ - uint64_t timestamp; - std::vector<CounterValue> counterValues; -}; - -struct CounterStatus -{ - CounterStatus(uint16_t backendCounterId, - uint16_t globalCounterId, - bool enabled, - uint32_t samplingRateInMicroseconds) - : m_BackendCounterId(backendCounterId), - m_GlobalCounterId(globalCounterId), - m_Enabled(enabled), - m_SamplingRateInMicroseconds(samplingRateInMicroseconds) {} - uint16_t m_BackendCounterId; - uint16_t m_GlobalCounterId; - bool m_Enabled; - uint32_t m_SamplingRateInMicroseconds; -}; - class IRegisterBackendCounters { public: @@ -81,6 +58,9 @@ public: class IBackendProfiling { public: + static std::unique_ptr<IBackendProfiling> CreateBackendProfiling(const ProfilingOptions& options, + IProfilingService& profilingService, + const std::string& backendId); virtual ~IBackendProfiling() {} diff --git a/profiling/client/include/backends/IBackendProfilingContext.hpp b/profiling/client/include/backends/IBackendProfilingContext.hpp index a1ed05e43d..a2e0a3b9d1 100644 --- a/profiling/client/include/backends/IBackendProfilingContext.hpp +++ b/profiling/client/include/backends/IBackendProfilingContext.hpp @@ -5,6 +5,9 @@ #pragma once #include "IBackendProfiling.hpp" + +#include <common/include/Optional.hpp> + #include <vector> namespace arm @@ -20,7 +23,7 @@ public: virtual uint16_t RegisterCounters(uint16_t currentMaxGlobalCounterID) = 0; virtual arm::pipe::Optional<std::string> ActivateCounters( uint32_t capturePeriod, const std::vector<uint16_t>& counterIds) = 0; - virtual std::vector<Timestamp> ReportCounterValues() = 0; + virtual std::vector<arm::pipe::Timestamp> ReportCounterValues() = 0; virtual bool EnableProfiling(bool flag) = 0; virtual bool EnableTimelineReporting(bool flag) = 0; }; |