[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[win-pv-devel] [PATCH] Update bindings



Refresh the interface headers and add the XENBUS major version into
the top byte of the revision, since this is now used to avoid namespace
conflicts.

Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
---
 include/emulated_interface.h |  5 +++--
 include/evtchn_interface.h   | 36 +++++++++++++++++++++++++++++++-----
 include/suspend_interface.h  |  2 +-
 src/xenvbd.inf               |  6 +++---
 4 files changed, 38 insertions(+), 11 deletions(-)

diff --git a/include/emulated_interface.h b/include/emulated_interface.h
index 85ed2b8..9361f8d 100644
--- a/include/emulated_interface.h
+++ b/include/emulated_interface.h
@@ -66,7 +66,8 @@ typedef VOID
 
     \param Interface The interface header
     \param DeviceID The DeviceID of the device
-    \param InstanceID The (un-prefixed) InstanceID of the device
+    \param InstanceID The (un-prefixed) InstanceID of the device or
+           NULL to match any device instance
     \return TRUE if the specified device is present in the system or
     FALSE if it is not
 */  
@@ -74,7 +75,7 @@ typedef BOOLEAN
 (*XENFILT_EMULATED_IS_DEVICE_PRESENT)(
     IN  PVOID   Context,
     IN  PCHAR   DeviceID,
-    IN  PCHAR   InstanceID
+    IN  PCHAR   InstanceID OPTIONAL
     );
 
 /*! \typedef XENFILT_EMULATED_IS_DISK_PRESENT
diff --git a/include/evtchn_interface.h b/include/evtchn_interface.h
index 1bc456a..6f8fe42 100644
--- a/include/evtchn_interface.h
+++ b/include/evtchn_interface.h
@@ -112,18 +112,27 @@ typedef PXENBUS_EVTCHN_CHANNEL
     ...
     );
 
+typedef NTSTATUS
+(*XENBUS_EVTCHN_BIND_V2)(
+    IN  PINTERFACE              Interface,
+    IN  PXENBUS_EVTCHN_CHANNEL  Channel,
+    IN  ULONG                   Cpu
+    );
+
 /*! \typedef XENBUS_EVTCHN_BIND
     \brief Bind an event channel to a specific CPU
 
     \param Interface The interface header
     \param Channel The channel handle
-    \param Cpu The CPU that should handle events
+    \param Group The group number of the CPU that should handle events
+    \param Number The relative number of the CPU that should handle events
 */
 typedef NTSTATUS
 (*XENBUS_EVTCHN_BIND)(
     IN  PINTERFACE              Interface,
     IN  PXENBUS_EVTCHN_CHANNEL  Channel,
-    IN  ULONG                   Cpu
+    IN  USHORT                  Group,
+    IN  UCHAR                   Number
     );
 
 typedef BOOLEAN
@@ -225,7 +234,7 @@ struct _XENBUS_EVTCHN_INTERFACE_V2 {
     XENBUS_EVTCHN_ACQUIRE   EvtchnAcquire;
     XENBUS_EVTCHN_RELEASE   EvtchnRelease;
     XENBUS_EVTCHN_OPEN      EvtchnOpen;
-    XENBUS_EVTCHN_BIND      EvtchnBind;
+    XENBUS_EVTCHN_BIND_V2   EvtchnBindVersion2;
     XENBUS_EVTCHN_UNMASK_V1 EvtchnUnmaskVersion1;
     XENBUS_EVTCHN_SEND      EvtchnSend;
     XENBUS_EVTCHN_TRIGGER   EvtchnTrigger;
@@ -242,6 +251,23 @@ struct _XENBUS_EVTCHN_INTERFACE_V3 {
     XENBUS_EVTCHN_ACQUIRE   EvtchnAcquire;
     XENBUS_EVTCHN_RELEASE   EvtchnRelease;
     XENBUS_EVTCHN_OPEN      EvtchnOpen;
+    XENBUS_EVTCHN_BIND_V2   EvtchnBindVersion2;
+    XENBUS_EVTCHN_UNMASK    EvtchnUnmask;
+    XENBUS_EVTCHN_SEND      EvtchnSend;
+    XENBUS_EVTCHN_TRIGGER   EvtchnTrigger;
+    XENBUS_EVTCHN_GET_PORT  EvtchnGetPort;
+    XENBUS_EVTCHN_CLOSE     EvtchnClose;
+};
+
+/*! \struct _XENBUS_EVTCHN_INTERFACE_V4
+    \brief EVTCHN interface version 4
+    \ingroup interfaces
+*/
+struct _XENBUS_EVTCHN_INTERFACE_V4 {
+    INTERFACE               Interface;
+    XENBUS_EVTCHN_ACQUIRE   EvtchnAcquire;
+    XENBUS_EVTCHN_RELEASE   EvtchnRelease;
+    XENBUS_EVTCHN_OPEN      EvtchnOpen;
     XENBUS_EVTCHN_BIND      EvtchnBind;
     XENBUS_EVTCHN_UNMASK    EvtchnUnmask;
     XENBUS_EVTCHN_SEND      EvtchnSend;
@@ -250,7 +276,7 @@ struct _XENBUS_EVTCHN_INTERFACE_V3 {
     XENBUS_EVTCHN_CLOSE     EvtchnClose;
 };
 
-typedef struct _XENBUS_EVTCHN_INTERFACE_V3 XENBUS_EVTCHN_INTERFACE, 
*PXENBUS_EVTCHN_INTERFACE;
+typedef struct _XENBUS_EVTCHN_INTERFACE_V4 XENBUS_EVTCHN_INTERFACE, 
*PXENBUS_EVTCHN_INTERFACE;
 
 /*! \def XENBUS_EVTCHN
     \brief Macro at assist in method invocation
@@ -261,7 +287,7 @@ typedef struct _XENBUS_EVTCHN_INTERFACE_V3 
XENBUS_EVTCHN_INTERFACE, *PXENBUS_EVT
 #endif  // _WINDLL
 
 #define XENBUS_EVTCHN_INTERFACE_VERSION_MIN 1
-#define XENBUS_EVTCHN_INTERFACE_VERSION_MAX 3
+#define XENBUS_EVTCHN_INTERFACE_VERSION_MAX 4
 
 #endif  // _XENBUS_EVTCHN_INTERFACE_H
 
diff --git a/include/suspend_interface.h b/include/suspend_interface.h
index df1b4b0..cbe11ab 100644
--- a/include/suspend_interface.h
+++ b/include/suspend_interface.h
@@ -126,7 +126,7 @@ typedef VOID
 
     This method must always be invoked with IRQL == PASSIVE_LEVEL
 */
-typedef VOID
+typedef NTSTATUS
 (*XENBUS_SUSPEND_TRIGGER)(
     IN  PINTERFACE  Interface
     );
diff --git a/src/xenvbd.inf b/src/xenvbd.inf
index 17ad793..dc7ca24 100644
--- a/src/xenvbd.inf
+++ b/src/xenvbd.inf
@@ -53,9 +53,9 @@ xenvbd_coinst.dll=0,,
 %Company%=Inst,NT$ARCH$
 
 [Inst.NT$ARCH$]
-%XenVbdDesc%=XenVbd_Inst,XENBUS\VEN_XSC000&DEV_VBD&REV_00000001
-%XenVbdDesc%=XenVbd_Inst,XENBUS\VEN_XS0001&DEV_VBD&REV_00000001
-%XenVbdDesc%=XenVbd_Inst,XENBUS\VEN_XS0002&DEV_VBD&REV_00000001
+%XenVbdDesc%=XenVbd_Inst,XENBUS\VEN_XSC000&DEV_VBD&REV_08000008
+%XenVbdDesc%=XenVbd_Inst,XENBUS\VEN_XS0001&DEV_VBD&REV_08000008
+%XenVbdDesc%=XenVbd_Inst,XENBUS\VEN_XS0002&DEV_VBD&REV_08000008
 
 [XenVbd_Inst] 
 CopyFiles=XenVbd_Copyfiles
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.