diff options
-rw-r--r-- | driver_library/src/ethosu.cpp | 33 | ||||
-rw-r--r-- | tests/run_inference_test.cpp | 9 |
2 files changed, 33 insertions, 9 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; } diff --git a/tests/run_inference_test.cpp b/tests/run_inference_test.cpp index 88fc691..5e529e6 100644 --- a/tests/run_inference_test.cpp +++ b/tests/run_inference_test.cpp @@ -130,8 +130,7 @@ void testNetworkInfoUnparsableBuffer(const Device &device) { } void testNetworkInvalidType(const Device &device) { - const std::string expected_error = - std::string("IOCTL cmd=") + std::to_string(ETHOSU_IOCTL_NETWORK_CREATE) + " failed: " + std::strerror(EINVAL); + const std::string expected_error = std::string("IOCTL cmd=NETWORK_CREATE") + " failed: " + std::strerror(EINVAL); struct ethosu_uapi_network_create net_req = {}; net_req.type = ETHOSU_UAPI_NETWORK_INDEX + 1; try { @@ -144,8 +143,7 @@ void testNetworkInvalidType(const Device &device) { } void testNetworkInvalidDataPtr(const Device &device) { - const std::string expected_error = - std::string("IOCTL cmd=") + std::to_string(ETHOSU_IOCTL_NETWORK_CREATE) + " failed: " + std::strerror(EINVAL); + const std::string expected_error = std::string("IOCTL cmd=NETWORK_CREATE") + " failed: " + std::strerror(EINVAL); struct ethosu_uapi_network_create net_req = {}; net_req.type = ETHOSU_UAPI_NETWORK_USER_BUFFER; net_req.network.data_ptr = 0U; @@ -160,8 +158,7 @@ void testNetworkInvalidDataPtr(const Device &device) { } void testNetworkInvalidDataSize(const Device &device) { - const std::string expected_error = - std::string("IOCTL cmd=") + std::to_string(ETHOSU_IOCTL_NETWORK_CREATE) + " failed: " + std::strerror(EINVAL); + const std::string expected_error = std::string("IOCTL cmd=NETWORK_CREATE") + " failed: " + std::strerror(EINVAL); struct ethosu_uapi_network_create net_req = {}; net_req.type = ETHOSU_UAPI_NETWORK_USER_BUFFER; net_req.network.data_ptr = reinterpret_cast<uintptr_t>(networkModelData); |