aboutsummaryrefslogtreecommitdiff
path: root/profiling/client/include
diff options
context:
space:
mode:
Diffstat (limited to 'profiling/client/include')
-rw-r--r--profiling/client/include/CounterStatus.hpp34
-rw-r--r--profiling/client/include/CounterValue.hpp24
-rw-r--r--profiling/client/include/IProfilingService.hpp6
-rw-r--r--profiling/client/include/ISendCounterPacket.hpp2
-rw-r--r--profiling/client/include/Timestamp.hpp24
-rw-r--r--profiling/client/include/backends/IBackendProfiling.hpp40
-rw-r--r--profiling/client/include/backends/IBackendProfilingContext.hpp5
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;
};