These changes are the raw update to qemu-2.6.
[kvmfornfv.git] / qemu / roms / ipxe / src / include / ipxe / device.h
index 7202a69..d81417e 100644 (file)
@@ -8,7 +8,7 @@
  *
  */
 
-FILE_LICENCE ( GPL2_OR_LATER );
+FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
 
 #include <ipxe/list.h>
 #include <ipxe/tables.h>
@@ -63,10 +63,16 @@ struct device_description {
 /** Xen bus type */
 #define BUS_TYPE_XEN 8
 
+/** Hyper-V bus type */
+#define BUS_TYPE_HV 9
+
+/** USB bus type */
+#define BUS_TYPE_USB 10
+
 /** A hardware device */
 struct device {
        /** Name */
-       char name[16];
+       char name[32];
        /** Driver name */
        const char *driver_name;
        /** Device description */
@@ -93,6 +99,8 @@ struct root_device {
        struct device dev;
        /** Root device driver */
        struct root_driver *driver;
+       /** Driver-private data */
+       void *priv;
 };
 
 /** A root device driver */
@@ -123,6 +131,27 @@ struct root_driver {
 /** Declare a root device */
 #define __root_device __table_entry ( ROOT_DEVICES, 01 )
 
+/**
+ * Set root device driver-private data
+ *
+ * @v rootdev          Root device
+ * @v priv             Private data
+ */
+static inline void rootdev_set_drvdata ( struct root_device *rootdev,
+                                        void *priv ){
+       rootdev->priv = priv;
+}
+
+/**
+ * Get root device driver-private data
+ *
+ * @v rootdev          Root device
+ * @ret priv           Private data
+ */
+static inline void * rootdev_get_drvdata ( struct root_device *rootdev ) {
+       return rootdev->priv;
+}
+
 extern int device_keep_count;
 
 /**