IO Framework: use standard errno codes as return values

This patch redefines the values of IO_FAIL, IO_NOT_SUPPORTED and
IO_RESOURCES_EXHAUSTED to match the corresponding definitions in
errno.h:

    #define IO_FAIL                     (-ENOENT)
    #define IO_NOT_SUPPORTED            (-ENODEV)
    #define IO_RESOURCES_EXHAUSTED      (-ENOMEM)

NOTE: please note that the IO_FAIL, IO_NOT_SUPPORTED and
IO_RESOURCES_EXHAUSTED definitions are considered deprecated
and their usage should be avoided. Callers should rely on errno.h
definitions when checking the return values of IO functions.

Change-Id: Ic8491aa43384b6ee44951ebfc053a3ded16a80be
diff --git a/include/drivers/io/io_storage.h b/include/drivers/io/io_storage.h
index e98dcd0..4c3526e 100644
--- a/include/drivers/io/io_storage.h
+++ b/include/drivers/io/io_storage.h
@@ -31,6 +31,7 @@
 #ifndef __IO_H__
 #define __IO_H__
 
+#include <errno.h>
 #include <stdint.h>
 #include <stdio.h> /* For ssize_t */
 #include <uuid.h>
@@ -88,11 +89,13 @@
 #define IO_MODE_RW	(1 << 1)
 
 
-/* Return codes reported by 'io_*' APIs */
+/* Return codes reported by 'io_*' APIs.
+ * IMPORTANT: these definitions are deprecated. Callers should use standard
+ * errno definitions when checking the return value of io_* APIs. */
 #define IO_SUCCESS		(0)
-#define IO_FAIL			(-1)
-#define IO_NOT_SUPPORTED	(-2)
-#define IO_RESOURCES_EXHAUSTED	(-3)
+#define IO_FAIL			(-ENOENT)
+#define IO_NOT_SUPPORTED	(-ENODEV)
+#define IO_RESOURCES_EXHAUSTED	(-ENOMEM)
 
 
 /* Open a connection to a device */