aboutsummaryrefslogtreecommitdiff
path: root/driver_library/src/ethosu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'driver_library/src/ethosu.cpp')
-rw-r--r--driver_library/src/ethosu.cpp33
1 files changed, 30 insertions, 3 deletions
diff --git a/driver_library/src/ethosu.cpp b/driver_library/src/ethosu.cpp
index c00f69f..01666d2 100644
--- a/driver_library/src/ethosu.cpp
+++ b/driver_library/src/ethosu.cpp
@@ -42,6 +42,34 @@ std::string driverVersionToString(const EthosU::ethosu_uapi_kernel_driver_versio
return std::to_string(version.major) + "." + std::to_string(version.minor) + "." + std::to_string(version.patch);
}
+std::string cmdToString(unsigned long cmd) {
+ // Needed for the struct types in the macro expansions
+ using namespace EthosU;
+
+ switch (cmd) {
+ case ETHOSU_IOCTL_PING:
+ return "PING";
+ case ETHOSU_IOCTL_CAPABILITIES_REQ:
+ return "CAPABILITIES_REQ";
+ case ETHOSU_IOCTL_DRIVER_VERSION_GET:
+ return "DRIVER_VERSION_GET";
+ case ETHOSU_IOCTL_BUFFER_CREATE:
+ return "BUFFER_CREATE";
+ case ETHOSU_IOCTL_NETWORK_CREATE:
+ return "NETWORK_CREATE";
+ case ETHOSU_IOCTL_NETWORK_INFO:
+ return "NETWORK_INFO";
+ case ETHOSU_IOCTL_INFERENCE_CREATE:
+ return "INFERENCE_CREATE";
+ case ETHOSU_IOCTL_INFERENCE_STATUS:
+ return "INFERENCE_STATUS";
+ case ETHOSU_IOCTL_INFERENCE_CANCEL:
+ return "INFERENCE_CANCEL";
+ default:
+ return std::string("Unknown command: ").append(to_string(cmd));
+ }
+}
+
enum class Severity { Error, Warning, Info, Debug };
class Log {
@@ -105,11 +133,10 @@ const SemanticVersion getLibraryVersion() {
__attribute__((weak)) int eioctl(int fd, unsigned long cmd, void *data = nullptr) {
int ret = ::ioctl(fd, cmd, data);
if (ret < 0) {
- throw EthosU::Exception(string("IOCTL cmd=").append(to_string(cmd) + " failed: " + strerror(errno)).c_str());
+ throw EthosU::Exception(string("IOCTL cmd=").append(cmdToString(cmd) + " failed: " + strerror(errno)).c_str());
}
- Log(Severity::Debug) << "ioctl. fd=" << fd << ", cmd=" << setw(8) << setfill('0') << hex << cmd << ", ret=" << ret
- << endl;
+ Log(Severity::Debug) << "ioctl. fd=" << fd << ", cmd=" << cmdToString(cmd) << ", ret=" << ret << endl;
return ret;
}