]> xenbits.xensource.com Git - pvdrivers/win/xenvif.git/commitdiff
Define UNPLUG interface revisions
authorOwen Smith <owen.smith@cloud.com>
Thu, 14 Dec 2023 15:32:38 +0000 (15:32 +0000)
committerPaul Durrant <pdurrant@amazon.com>
Tue, 19 Dec 2023 09:30:05 +0000 (09:30 +0000)
Adds the UNPLUG version requirements to the revision list, as XenVif uses the
UNPLUG interface in PdoUnplugRequest() and PdoUnplugRequested().
Extends the output in PdoDumpRevisions() and always ASSERTs on STORE and
SUSPEND interface versions.
Also defines revision 0x09000004 which requires UPLUG v2, as its required for
PdoUnplugRequested().

Signed-off-by: Owen Smith <owen.smith@cloud.com>
include/revision.h
src/xenvif/pdo.c

index efad212d320a529f804905ee9cd76c2eefb1b583..2f4ac80f9ad8074a9ef54238dc36ac6a6adec7b4 100644 (file)
 // V  - XENVIF_VIF_INTERFACE
 // ST - XENBUS_STORE_INTERFACE
 // SU - XENBUS_SUSPEND_INTERFACE
+// U  - XENBUS_UNPLUG_INTERFACE
 
-//                    REVISION   C   V    ST  SU
-#define DEFINE_REVISION_TABLE                       \
-    DEFINE_REVISION(0x09000000,  1,  8,   2,  1),   \
-    DEFINE_REVISION(0x09000001,  2,  8,   2,  1),   \
-    DEFINE_REVISION(0x09000002,  2,  9,   2,  1),   \
-    DEFINE_REVISION(0x09000003,  2,  10,  2,  1)
+//                    REVISION   C   V    ST  SU   U
+#define DEFINE_REVISION_TABLE                           \
+    DEFINE_REVISION(0x09000000,  1,  8,   2,  1,   1),  \
+    DEFINE_REVISION(0x09000001,  2,  8,   2,  1,   1),  \
+    DEFINE_REVISION(0x09000002,  2,  9,   2,  1,   1),  \
+    DEFINE_REVISION(0x09000003,  2,  10,  2,  1,   1),  \
+    DEFINE_REVISION(0x09000004,  2,  10,  2,  1,   2)
 
 #endif  // _REVISION_H
index 5c951d909640a7aa506f322262f03db467355eb2..29d4bdd081b9c26ea5daf7f6d9ee986ea8912ec3 100644 (file)
@@ -540,10 +540,11 @@ typedef struct _XENVIF_PDO_REVISION {
     ULONG   VifInterfaceVersion;
     ULONG   StoreInterfaceVersion;
     ULONG   SuspendInterfaceVersion;
+    ULONG   UnplugInterfaceVersion;
 } XENVIF_PDO_REVISION, *PXENVIF_PDO_REVISION;
 
-#define DEFINE_REVISION(_N, _C, _V, _ST, _SU) \
-    { (_N), (_C), (_V), (_ST), (_SU) }
+#define DEFINE_REVISION(_N, _C, _V, _ST, _SU, _U) \
+    { (_N), (_C), (_V), (_ST), (_SU), (_U) }
 
 static XENVIF_PDO_REVISION PdoRevision[] = {
     DEFINE_REVISION_TABLE
@@ -573,30 +574,33 @@ PdoDumpRevisions(
         ASSERT(IMPLY(Index == ARRAYSIZE(PdoRevision) - 1,
                      Revision->VifInterfaceVersion == XENVIF_VIF_INTERFACE_VERSION_MAX));
 
-        if (Revision->StoreInterfaceVersion != 0) {
-            ASSERT3U(Revision->StoreInterfaceVersion, >=, XENBUS_STORE_INTERFACE_VERSION_MIN);
-            ASSERT3U(Revision->StoreInterfaceVersion, <=, XENBUS_STORE_INTERFACE_VERSION_MAX);
-            ASSERT(IMPLY(Index == ARRAYSIZE(PdoRevision) - 1,
-                         Revision->StoreInterfaceVersion == XENBUS_STORE_INTERFACE_VERSION_MAX));
-        }
+        ASSERT3U(Revision->StoreInterfaceVersion, >=, XENBUS_STORE_INTERFACE_VERSION_MIN);
+        ASSERT3U(Revision->StoreInterfaceVersion, <=, XENBUS_STORE_INTERFACE_VERSION_MAX);
+        ASSERT(IMPLY(Index == ARRAYSIZE(PdoRevision) - 1,
+                     Revision->StoreInterfaceVersion == XENBUS_STORE_INTERFACE_VERSION_MAX));
 
-        if (Revision->SuspendInterfaceVersion != 0) {
-            ASSERT3U(Revision->SuspendInterfaceVersion, >=, XENBUS_SUSPEND_INTERFACE_VERSION_MIN);
-            ASSERT3U(Revision->SuspendInterfaceVersion, <=, XENBUS_SUSPEND_INTERFACE_VERSION_MAX);
-            ASSERT(IMPLY(Index == ARRAYSIZE(PdoRevision) - 1,
-                         Revision->SuspendInterfaceVersion == XENBUS_SUSPEND_INTERFACE_VERSION_MAX));
-        }
+        ASSERT3U(Revision->SuspendInterfaceVersion, >=, XENBUS_SUSPEND_INTERFACE_VERSION_MIN);
+        ASSERT3U(Revision->SuspendInterfaceVersion, <=, XENBUS_SUSPEND_INTERFACE_VERSION_MAX);
+        ASSERT(IMPLY(Index == ARRAYSIZE(PdoRevision) - 1,
+                     Revision->SuspendInterfaceVersion == XENBUS_SUSPEND_INTERFACE_VERSION_MAX));
+
+        ASSERT3U(Revision->UnplugInterfaceVersion, >=, XENBUS_UNPLUG_INTERFACE_VERSION_MIN);
+        ASSERT3U(Revision->UnplugInterfaceVersion, <=, XENBUS_UNPLUG_INTERFACE_VERSION_MAX);
+        ASSERT(IMPLY(Index == ARRAYSIZE(PdoRevision) - 1,
+                     Revision->UnplugInterfaceVersion == XENBUS_UNPLUG_INTERFACE_VERSION_MAX));
 
         Info("%08X -> "
              "CACHE v%u "
              "VIF v%u "
              "STORE v%u "
-             "SUSPEND v%u\n",
+             "SUSPEND v%u"
+             "UNPLUG v%u\n",
              Revision->Number,
              Revision->CacheInterfaceVersion,
              Revision->VifInterfaceVersion,
              Revision->StoreInterfaceVersion,
-             Revision->SuspendInterfaceVersion);
+             Revision->SuspendInterfaceVersion,
+             Revision->UnplugInterfaceVersion);
     }
 }