]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
Refresh of wv-ver
authorSean Hefty <sean.hefty@intel.com>
Tue, 13 Jul 2010 22:15:33 +0000 (15:15 -0700)
committerSean Hefty <sean.hefty@intel.com>
Tue, 13 Jul 2010 22:15:33 +0000 (15:15 -0700)
trunk/core/winverbs/kernel/wv_driver.c
trunk/core/winverbs/wv_ioctl.h

index d5321602cb8f05d3237f723c8a1b19f3db9c22ed..281fdf6956c879471301aaf345cd7d79460b0f82 100644 (file)
@@ -127,6 +127,20 @@ void WvCompleteRequestsWithInformation(WDFQUEUE Queue, NTSTATUS ReqStatus)
        }\r
 }\r
 \r
+static void WvVersionQuery(WDFREQUEST Request)\r
+{\r
+       size_t          len = 0;\r
+       UINT64          *version;\r
+       NTSTATUS        status;\r
+\r
+       status = WdfRequestRetrieveOutputBuffer(Request, sizeof(UINT64), &version, &len);\r
+       if (NT_SUCCESS(status)) {\r
+               *version = WV_KERNEL_VERSION;\r
+       }\r
+       \r
+       WdfRequestCompleteWithInformation(Request, status, len);\r
+}\r
+\r
 static void WvGuidQuery(WDFREQUEST Request)\r
 {\r
        WV_IO_GUID_LIST *list;\r
@@ -212,6 +226,9 @@ static VOID WvIoDeviceControl(WDFQUEUE Queue, WDFREQUEST Request,
 \r
        // TODO: verify this compiles as a jump table, or use function pointers\r
        switch (IoControlCode) {\r
+       case WV_IO_FUNCTION_VERSION_QUERY:\r
+               WvVersionQuery(Request);\r
+               break;\r
        case WV_IOCTL_GUID_QUERY:\r
                WvGuidQuery(Request);\r
                break;\r
index 7a8701f1b8ec187228944347bba45b43cc3cce3d..ce091d10a226b437d15e17d0b255d3cf30610e9d 100644 (file)
@@ -36,6 +36,8 @@ typedef UINT16 NET16;
 typedef UINT32 NET32;\r
 typedef UINT64 NET64;\r
 \r
+#define WV_KERNEL_VERSION 1\r
+\r
 #define WV_IOCTL(f)    CTL_CODE(FILE_DEVICE_INFINIBAND, f, METHOD_BUFFERED,\\r
                                                         FILE_READ_DATA | FILE_WRITE_DATA)\r
 \r
@@ -44,7 +46,7 @@ typedef UINT64 NET64;
 #define WV_IO_FUNCTION_BASE                            0x800\r
 \r
 enum {\r
-       WV_IO_FUNCTION_MIN,\r
+       WV_IO_FUNCTION_VERSION_QUERY,\r
        WV_IO_FUNCTION_GUID_QUERY,\r
        WV_IO_FUNCTION_LIBRARY_QUERY,\r
        WV_IO_FUNCTION_DEVICE_OPEN,\r
@@ -100,6 +102,10 @@ enum {
        WV_IO_FUNCTION_PD_CANCEL\r
 };\r
 \r
+// none / UINT64 Version\r
+#define WV_IOCTL_VERSION_QUERY                 WV_IOCTL(WV_IO_FUNCTION_BASE + \\r
+                                                                                                WV_IO_FUNCTION_VERSION_QUERY)\r
+\r
 // none / WV_IO_GUID_LIST\r
 #define WV_IOCTL_GUID_QUERY                            WV_IOCTL(WV_IO_FUNCTION_BASE + \\r
                                                                                                 WV_IO_FUNCTION_GUID_QUERY)\r