aboutsummaryrefslogtreecommitdiff
path: root/driver_library
diff options
context:
space:
mode:
authorPer Åstrand <per.astrand@arm.com>2021-11-26 12:50:35 +0100
committerPer Åstrand <per.astrand@arm.com>2021-12-14 14:02:53 +0100
commitafb399f7b39029280a36d4f727320e8842344dac (patch)
tree187b6151480f83355b4ce8450b85fda23b972cb5 /driver_library
parent3db0ffab211153c15c4e629789e9a2ab11f33506 (diff)
downloadethos-u-linux-driver-stack-afb399f7b39029280a36d4f727320e8842344dac.tar.gz
const:ify userspace driver library
Change-Id: I965a6f4c42fca1b3b4493e7eef3cbb75e236fe3a
Diffstat (limited to 'driver_library')
-rw-r--r--driver_library/include/ethosu.hpp32
-rw-r--r--driver_library/src/ethosu.cpp26
2 files changed, 29 insertions, 29 deletions
diff --git a/driver_library/include/ethosu.hpp b/driver_library/include/ethosu.hpp
index fe3dc83..98e6969 100644
--- a/driver_library/include/ethosu.hpp
+++ b/driver_library/include/ethosu.hpp
@@ -131,8 +131,8 @@ public:
Device(const char *device = "/dev/ethosu0");
virtual ~Device();
- int ioctl(unsigned long cmd, void *data = nullptr);
- Capabilities capabilities();
+ int ioctl(unsigned long cmd, void *data = nullptr) const;
+ Capabilities capabilities() const;
private:
int fd;
@@ -140,13 +140,13 @@ private:
class Buffer {
public:
- Buffer(Device &device, const size_t capacity);
+ Buffer(const Device &device, const size_t capacity);
virtual ~Buffer();
size_t capacity() const;
- void clear();
- char *data();
- void resize(size_t size, size_t offset = 0);
+ void clear() const;
+ char *data() const;
+ void resize(size_t size, size_t offset = 0) const;
size_t offset() const;
size_t size() const;
@@ -160,7 +160,7 @@ private:
class Network {
public:
- Network(Device &device, std::shared_ptr<Buffer> &buffer);
+ Network(const Device &device, std::shared_ptr<Buffer> &buffer);
virtual ~Network();
int ioctl(unsigned long cmd, void *data = nullptr);
@@ -180,7 +180,7 @@ private:
class Inference {
public:
template <typename T>
- Inference(std::shared_ptr<Network> &network,
+ Inference(const std::shared_ptr<Network> &network,
const T &ifmBegin,
const T &ifmEnd,
const T &ofmBegin,
@@ -193,7 +193,7 @@ public:
create(counterConfigs, false);
}
template <typename T, typename U>
- Inference(std::shared_ptr<Network> &network,
+ Inference(const std::shared_ptr<Network> &network,
const T &ifmBegin,
const T &ifmEnd,
const T &ofmBegin,
@@ -214,12 +214,12 @@ public:
virtual ~Inference();
- int wait(int64_t timeoutNanos = -1);
- const std::vector<uint32_t> getPmuCounters();
- uint64_t getCycleCounter();
- bool failed();
- int getFd();
- std::shared_ptr<Network> getNetwork();
+ int wait(int64_t timeoutNanos = -1) const;
+ const std::vector<uint32_t> getPmuCounters() const;
+ uint64_t getCycleCounter() const;
+ bool failed() const;
+ int getFd() const;
+ const std::shared_ptr<Network> getNetwork() const;
std::vector<std::shared_ptr<Buffer>> &getIfmBuffers();
std::vector<std::shared_ptr<Buffer>> &getOfmBuffers();
@@ -230,7 +230,7 @@ private:
std::vector<uint32_t> initializeCounterConfig();
int fd;
- std::shared_ptr<Network> network;
+ const std::shared_ptr<Network> network;
std::vector<std::shared_ptr<Buffer>> ifmBuffers;
std::vector<std::shared_ptr<Buffer>> ofmBuffers;
};
diff --git a/driver_library/src/ethosu.cpp b/driver_library/src/ethosu.cpp
index 29cb77e..32d179a 100644
--- a/driver_library/src/ethosu.cpp
+++ b/driver_library/src/ethosu.cpp
@@ -208,11 +208,11 @@ Device::~Device() {
eclose(fd);
}
-int Device::ioctl(unsigned long cmd, void *data) {
+int Device::ioctl(unsigned long cmd, void *data) const {
return eioctl(fd, cmd, data);
}
-Capabilities Device::capabilities() {
+Capabilities Device::capabilities() const {
ethosu_uapi_device_capabilities uapi;
(void)eioctl(fd, ETHOSU_IOCTL_CAPABILITIES_REQ, static_cast<void *>(&uapi));
@@ -230,7 +230,7 @@ Capabilities Device::capabilities() {
* Buffer
****************************************************************************/
-Buffer::Buffer(Device &device, const size_t capacity) : fd(-1), dataPtr(nullptr), dataCapacity(capacity) {
+Buffer::Buffer(const Device &device, const size_t capacity) : fd(-1), dataPtr(nullptr), dataCapacity(capacity) {
ethosu_uapi_buffer_create uapi = {static_cast<uint32_t>(dataCapacity)};
fd = device.ioctl(ETHOSU_IOCTL_BUFFER_CREATE, static_cast<void *>(&uapi));
@@ -254,15 +254,15 @@ size_t Buffer::capacity() const {
return dataCapacity;
}
-void Buffer::clear() {
+void Buffer::clear() const {
resize(0, 0);
}
-char *Buffer::data() {
+char *Buffer::data() const {
return dataPtr + offset();
}
-void Buffer::resize(size_t size, size_t offset) {
+void Buffer::resize(size_t size, size_t offset) const {
ethosu_uapi_buffer uapi;
uapi.offset = offset;
uapi.size = size;
@@ -289,7 +289,7 @@ int Buffer::getFd() const {
* Network
****************************************************************************/
-Network::Network(Device &device, shared_ptr<Buffer> &buffer) : fd(-1), buffer(buffer) {
+Network::Network(const Device &device, shared_ptr<Buffer> &buffer) : fd(-1), buffer(buffer) {
// Create buffer handle
ethosu_uapi_network_create uapi;
uapi.fd = buffer->getFd();
@@ -403,7 +403,7 @@ uint32_t Inference::getMaxPmuEventCounters() {
return ETHOSU_PMU_EVENT_MAX;
}
-int Inference::wait(int64_t timeoutNanos) {
+int Inference::wait(int64_t timeoutNanos) const {
struct pollfd pfd;
pfd.fd = fd;
pfd.events = POLLIN | POLLERR;
@@ -422,7 +422,7 @@ int Inference::wait(int64_t timeoutNanos) {
return eppoll(&pfd, 1, &tmo_p, NULL);
}
-bool Inference::failed() {
+bool Inference::failed() const {
ethosu_uapi_result_status uapi;
eioctl(fd, ETHOSU_IOCTL_INFERENCE_STATUS, static_cast<void *>(&uapi));
@@ -430,7 +430,7 @@ bool Inference::failed() {
return uapi.status != ETHOSU_UAPI_STATUS_OK;
}
-const std::vector<uint32_t> Inference::getPmuCounters() {
+const std::vector<uint32_t> Inference::getPmuCounters() const {
ethosu_uapi_result_status uapi;
std::vector<uint32_t> counterValues = std::vector<uint32_t>(ETHOSU_PMU_EVENT_MAX, 0);
@@ -445,7 +445,7 @@ const std::vector<uint32_t> Inference::getPmuCounters() {
return counterValues;
}
-uint64_t Inference::getCycleCounter() {
+uint64_t Inference::getCycleCounter() const {
ethosu_uapi_result_status uapi;
eioctl(fd, ETHOSU_IOCTL_INFERENCE_STATUS, static_cast<void *>(&uapi));
@@ -453,11 +453,11 @@ uint64_t Inference::getCycleCounter() {
return uapi.pmu_count.cycle_count;
}
-int Inference::getFd() {
+int Inference::getFd() const {
return fd;
}
-shared_ptr<Network> Inference::getNetwork() {
+const shared_ptr<Network> Inference::getNetwork() const {
return network;
}