Support inferences with multiple inputs and outputs

Build flatbuffers library.

Update network class to extract IFM and OFM dimensions from the tflite
file.

Update the uapi and core apis to support up to 16 IFM and OFM buffers
per inference.

Change-Id: I2f2f177aa4c2d5f9f50f23eb33c44e01ec2cbe09
diff --git a/kernel/uapi/ethosu.h b/kernel/uapi/ethosu.h
index 2eca2c4..d790db4 100644
--- a/kernel/uapi/ethosu.h
+++ b/kernel/uapi/ethosu.h
@@ -51,6 +51,9 @@
 						   struct ethosu_uapi_inference_create)
 #define ETHOSU_IOCTL_INFERENCE_STATUS   ETHOSU_IO(0x31)
 
+/* Maximum number of IFM/OFM file descriptors per network */
+#define ETHOSU_FD_MAX                   16
+
 /****************************************************************************
  * Types
  ****************************************************************************/
@@ -93,12 +96,16 @@
 
 /**
  * struct ethosu_uapi_inference_create - Create network request
- * @ifm_fd:		IFM buffer file descriptor
- * @ofm_fd:		OFM buffer file descriptor
+ * @ifm_count:		Number of IFM file descriptors
+ * @ifm_fd:		IFM buffer file descriptors
+ * @ofm_count:		Number of OFM file descriptors
+ * @ofm_fd:		OFM buffer file descriptors
  */
 struct ethosu_uapi_inference_create {
-	__u32 ifm_fd;
-	__u32 ofm_fd;
+	__u32 ifm_count;
+	__u32 ifm_fd[ETHOSU_FD_MAX];
+	__u32 ofm_count;
+	__u32 ofm_fd[ETHOSU_FD_MAX];
 };
 
 #endif