Add support for handling capabilities requests

Change-Id: Id5aa197312c88b0c448dc085d8477ed67da24724
diff --git a/utils/inference_runner/inference_runner.cpp b/utils/inference_runner/inference_runner.cpp
index 7ceec71..17969da 100644
--- a/utils/inference_runner/inference_runner.cpp
+++ b/utils/inference_runner/inference_runner.cpp
@@ -23,6 +23,7 @@
 #include <iomanip>
 #include <iostream>
 #include <list>
+#include <stdio.h>
 #include <string>
 #include <unistd.h>
 
@@ -209,6 +210,20 @@
         cout << "Send version request" << endl;
         device.ioctl(ETHOSU_IOCTL_VERSION_REQ);
 
+        cout << "Send capabilities request" << endl;
+        Capabilities capabilities = device.capabilities();
+
+        cout << "Capabilities:" << endl
+             << "\tversion_status:" << unsigned(capabilities.hwId.versionStatus) << endl
+             << "\tversion:" << capabilities.hwId.version << endl
+             << "\tproduct:" << capabilities.hwId.product << endl
+             << "\tarchitecture:" << capabilities.hwId.architecture << endl
+             << "\tdriver:" << capabilities.driver << endl
+             << "\tmacs_per_cc:" << unsigned(capabilities.hwCfg.macsPerClockCycle) << endl
+             << "\tcmd_stream_version:" << unsigned(capabilities.hwCfg.cmdStreamVersion) << endl
+             << "\tshram_size:" << unsigned(capabilities.hwCfg.shramSize) << endl
+             << "\tcustom_dma:" << std::boolalpha << capabilities.hwCfg.customDma << endl;
+
         /* Create network */
         cout << "Create network" << endl;
         shared_ptr<Buffer> networkBuffer = allocAndFill(device, networkArg);