From afb399f7b39029280a36d4f727320e8842344dac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20=C3=85strand?= Date: Fri, 26 Nov 2021 12:50:35 +0100 Subject: const:ify userspace driver library Change-Id: I965a6f4c42fca1b3b4493e7eef3cbb75e236fe3a --- driver_library/include/ethosu.hpp | 32 ++++++++++++++++---------------- driver_library/src/ethosu.cpp | 26 +++++++++++++------------- 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); + Network(const Device &device, std::shared_ptr &buffer); virtual ~Network(); int ioctl(unsigned long cmd, void *data = nullptr); @@ -180,7 +180,7 @@ private: class Inference { public: template - Inference(std::shared_ptr &network, + Inference(const std::shared_ptr &network, const T &ifmBegin, const T &ifmEnd, const T &ofmBegin, @@ -193,7 +193,7 @@ public: create(counterConfigs, false); } template - Inference(std::shared_ptr &network, + Inference(const std::shared_ptr &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 getPmuCounters(); - uint64_t getCycleCounter(); - bool failed(); - int getFd(); - std::shared_ptr getNetwork(); + int wait(int64_t timeoutNanos = -1) const; + const std::vector getPmuCounters() const; + uint64_t getCycleCounter() const; + bool failed() const; + int getFd() const; + const std::shared_ptr getNetwork() const; std::vector> &getIfmBuffers(); std::vector> &getOfmBuffers(); @@ -230,7 +230,7 @@ private: std::vector initializeCounterConfig(); int fd; - std::shared_ptr network; + const std::shared_ptr network; std::vector> ifmBuffers; std::vector> 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(&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(dataCapacity)}; fd = device.ioctl(ETHOSU_IOCTL_BUFFER_CREATE, static_cast(&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) : fd(-1), buffer(buffer) { +Network::Network(const Device &device, shared_ptr &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(&uapi)); @@ -430,7 +430,7 @@ bool Inference::failed() { return uapi.status != ETHOSU_UAPI_STATUS_OK; } -const std::vector Inference::getPmuCounters() { +const std::vector Inference::getPmuCounters() const { ethosu_uapi_result_status uapi; std::vector counterValues = std::vector(ETHOSU_PMU_EVENT_MAX, 0); @@ -445,7 +445,7 @@ const std::vector 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(&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 Inference::getNetwork() { +const shared_ptr Inference::getNetwork() const { return network; } -- cgit v1.2.1