DEFINE_GUID(GUID_XENBUS_EVTCHN_INTERFACE,
0xbe2440ac, 0x1098, 0x4150, 0xaf, 0x4d, 0x45, 0x2f, 0xad, 0xce, 0xf9, 0x23);
-/*! \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_V4 EvtchnUnmaskVersion4;
- XENBUS_EVTCHN_SEND_V1 EvtchnSendVersion1;
- XENBUS_EVTCHN_TRIGGER EvtchnTrigger;
- XENBUS_EVTCHN_GET_PORT EvtchnGetPort;
- XENBUS_EVTCHN_CLOSE EvtchnClose;
-};
-
/*! \struct _XENBUS_EVTCHN_INTERFACE_V5
\brief EVTCHN interface version 5
\ingroup interfaces
#endif // _WINDLL
-#define XENBUS_EVTCHN_INTERFACE_VERSION_MIN 4
+#define XENBUS_EVTCHN_INTERFACE_VERSION_MIN 5
#define XENBUS_EVTCHN_INTERFACE_VERSION_MAX 9
#endif // _XENBUS_EVTCHN_INTERFACE_H
DEFINE_GUID(GUID_XENBUS_GNTTAB_INTERFACE,
0x763679c5, 0xe5c2, 0x4a6d, 0x8b, 0x88, 0x6b, 0xb0, 0x2e, 0xc4, 0x2d, 0x8e);
-/*! \struct _XENBUS_GNTTAB_INTERFACE_V1
- \brief GNTTAB interface version 1
- \ingroup interfaces
-*/
-struct _XENBUS_GNTTAB_INTERFACE_V1 {
- INTERFACE Interface;
- XENBUS_GNTTAB_ACQUIRE GnttabAcquire;
- XENBUS_GNTTAB_RELEASE GnttabRelease;
- XENBUS_GNTTAB_CREATE_CACHE_V1 GnttabCreateCacheVersion1;
- XENBUS_GNTTAB_PERMIT_FOREIGN_ACCESS GnttabPermitForeignAccess;
- XENBUS_GNTTAB_REVOKE_FOREIGN_ACCESS GnttabRevokeForeignAccess;
- XENBUS_GNTTAB_GET_REFERENCE GnttabGetReference;
- XENBUS_GNTTAB_DESTROY_CACHE GnttabDestroyCache;
-};
-
/*! \struct _XENBUS_GNTTAB_INTERFACE_V2
\brief GNTTAB interface version 2
\ingroup interfaces
#endif // _WINDLL
-#define XENBUS_GNTTAB_INTERFACE_VERSION_MIN 1
+#define XENBUS_GNTTAB_INTERFACE_VERSION_MIN 2
#define XENBUS_GNTTAB_INTERFACE_VERSION_MAX 4
#endif // _XENBUS_GNTTAB_INTERFACE_H
// REVISION S SI E D ST R C G U CO EM
#define DEFINE_REVISION_TABLE \
- DEFINE_REVISION(0x08000009, 1, 2, 4, 1, 1, 1, 1, 1, 1, 0, 1), \
- DEFINE_REVISION(0x0800000A, 1, 2, 5, 1, 1, 1, 1, 1, 1, 0, 1), \
- DEFINE_REVISION(0x0800000B, 1, 2, 5, 1, 2, 1, 1, 2, 1, 0, 1), \
DEFINE_REVISION(0x09000000, 1, 2, 5, 1, 2, 1, 1, 2, 1, 0, 1), \
DEFINE_REVISION(0x09000001, 1, 2, 6, 1, 2, 1, 1, 2, 1, 1, 1), \
DEFINE_REVISION(0x09000002, 1, 2, 7, 1, 2, 1, 1, 2, 1, 1, 1), \
DEFINE_GUID(GUID_XENBUS_STORE_INTERFACE,
0x86824c3b, 0xd34e, 0x4753, 0xb2, 0x81, 0x2f, 0x1e, 0x3a, 0xd2, 0x14, 0xd7);
-/*! \struct _XENBUS_STORE_INTERFACE_V1
- \brief STORE interface version 1
- \ingroup interfaces
-*/
-struct _XENBUS_STORE_INTERFACE_V1 {
- INTERFACE Interface;
- XENBUS_STORE_ACQUIRE StoreAcquire;
- XENBUS_STORE_RELEASE StoreRelease;
- XENBUS_STORE_FREE StoreFree;
- XENBUS_STORE_READ StoreRead;
- XENBUS_STORE_PRINTF StorePrintf;
- XENBUS_STORE_REMOVE StoreRemove;
- XENBUS_STORE_DIRECTORY StoreDirectory;
- XENBUS_STORE_TRANSACTION_START StoreTransactionStart;
- XENBUS_STORE_TRANSACTION_END StoreTransactionEnd;
- XENBUS_STORE_WATCH_ADD StoreWatchAdd;
- XENBUS_STORE_WATCH_REMOVE StoreWatchRemove;
- XENBUS_STORE_POLL StorePoll;
-};
-
/*! \struct _XENBUS_STORE_INTERFACE_V2
\brief STORE interface version 2
\ingroup interfaces
#endif // _WINDLL
-#define XENBUS_STORE_INTERFACE_VERSION_MIN 1
+#define XENBUS_STORE_INTERFACE_VERSION_MIN 2
#define XENBUS_STORE_INTERFACE_VERSION_MAX 2
#endif // _XENBUS_STORE_INTERFACE_H
KeReleaseSpinLock(&Context->Lock, Irql);
}
-static struct _XENBUS_EVTCHN_INTERFACE_V4 EvtchnInterfaceVersion4 = {
- { sizeof (struct _XENBUS_EVTCHN_INTERFACE_V4), 4, NULL, NULL, NULL },
- EvtchnAcquire,
- EvtchnRelease,
- EvtchnOpen,
- EvtchnBind,
- EvtchnUnmaskVersion4,
- EvtchnSendVersion1,
- EvtchnTrigger,
- EvtchnGetPort,
- EvtchnClose
-};
-
static struct _XENBUS_EVTCHN_INTERFACE_V5 EvtchnInterfaceVersion5 = {
{ sizeof (struct _XENBUS_EVTCHN_INTERFACE_V5), 5, NULL, NULL, NULL },
EvtchnAcquire,
ASSERT(Context != NULL);
switch (Version) {
- case 4: {
- struct _XENBUS_EVTCHN_INTERFACE_V4 *EvtchnInterface;
-
- EvtchnInterface = (struct _XENBUS_EVTCHN_INTERFACE_V4 *)Interface;
-
- status = STATUS_BUFFER_OVERFLOW;
- if (Size < sizeof (struct _XENBUS_EVTCHN_INTERFACE_V4))
- break;
-
- *EvtchnInterface = EvtchnInterfaceVersion4;
-
- ASSERT3U(Interface->Version, ==, Version);
- Interface->Context = Context;
-
- status = STATUS_SUCCESS;
- break;
- }
case 5: {
struct _XENBUS_EVTCHN_INTERFACE_V5 *EvtchnInterface;
KeReleaseSpinLock(&Context->Lock, Irql);
}
-static struct _XENBUS_GNTTAB_INTERFACE_V1 GnttabInterfaceVersion1 = {
- { sizeof (struct _XENBUS_GNTTAB_INTERFACE_V1), 1, NULL, NULL, NULL },
- GnttabAcquire,
- GnttabRelease,
- GnttabCreateCacheVersion1,
- GnttabPermitForeignAccess,
- GnttabRevokeForeignAccess,
- GnttabGetReference,
- GnttabDestroyCache
-};
-
static struct _XENBUS_GNTTAB_INTERFACE_V2 GnttabInterfaceVersion2 = {
{ sizeof (struct _XENBUS_GNTTAB_INTERFACE_V2), 2, NULL, NULL, NULL },
GnttabAcquire,
ASSERT(Context != NULL);
switch (Version) {
- case 1: {
- struct _XENBUS_GNTTAB_INTERFACE_V1 *GnttabInterface;
-
- GnttabInterface = (struct _XENBUS_GNTTAB_INTERFACE_V1 *)Interface;
-
- status = STATUS_BUFFER_OVERFLOW;
- if (Size < sizeof (struct _XENBUS_GNTTAB_INTERFACE_V1))
- break;
-
- *GnttabInterface = GnttabInterfaceVersion1;
-
- ASSERT3U(Interface->Version, ==, Version);
- Interface->Context = Context;
-
- status = STATUS_SUCCESS;
- break;
- }
case 2: {
struct _XENBUS_GNTTAB_INTERFACE_V2 *GnttabInterface;
KeReleaseSpinLock(&Context->Lock, Irql);
}
-static struct _XENBUS_STORE_INTERFACE_V1 StoreInterfaceVersion1 = {
- { sizeof (struct _XENBUS_STORE_INTERFACE_V1), 1, NULL, NULL, NULL },
- StoreAcquire,
- StoreRelease,
- StoreFree,
- StoreRead,
- StorePrintf,
- StoreRemove,
- StoreDirectory,
- StoreTransactionStart,
- StoreTransactionEnd,
- StoreWatchAdd,
- StoreWatchRemove,
- StorePoll
-};
-
static struct _XENBUS_STORE_INTERFACE_V2 StoreInterfaceVersion2 = {
{ sizeof (struct _XENBUS_STORE_INTERFACE_V2), 2, NULL, NULL, NULL },
StoreAcquire,
ASSERT(Context != NULL);
switch (Version) {
- case 1: {
- struct _XENBUS_STORE_INTERFACE_V1 *StoreInterface;
-
- StoreInterface = (struct _XENBUS_STORE_INTERFACE_V1 *)Interface;
-
- status = STATUS_BUFFER_OVERFLOW;
- if (Size < sizeof (struct _XENBUS_STORE_INTERFACE_V1))
- break;
-
- *StoreInterface = StoreInterfaceVersion1;
-
- ASSERT3U(Interface->Version, ==, Version);
- Interface->Context = Context;
-
- status = STATUS_SUCCESS;
- break;
- }
case 2: {
struct _XENBUS_STORE_INTERFACE_V2 *StoreInterface;