[prev in list] [next in list] [prev in thread] [next in thread] 

List:       win-pv-devel
Subject:    [win-pv-devel] [PATCH 2/6] Refactor WmiFireSuspendEvent
From:       Owen Smith <owen.smith () citrix ! com>
Date:       2015-10-29 14:49:43
Message-ID: 1446130187-30460-3-git-send-email-owen.smith () citrix ! com
[Download RAW message or body]

Signed-off-by: Owen Smith <owen.smith@citrix.com>
---
 src/xeniface/fdo.c |  2 +-
 src/xeniface/wmi.c | 29 ++++++++++++++++++-----------
 src/xeniface/wmi.h |  9 +++++----
 3 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/src/xeniface/fdo.c b/src/xeniface/fdo.c
index f7aa542..b32e506 100644
--- a/src/xeniface/fdo.c
+++ b/src/xeniface/fdo.c
@@ -782,7 +782,7 @@ FdoD3ToD0(
     status = XENBUS_SUSPEND(Register,
                             &Fdo->SuspendInterface,
                             SUSPEND_CALLBACK_LATE,
-                            FireSuspendEvent,
+                            WmiFireSuspendEvent,
                             Fdo,
                             &Fdo->SuspendCallbackLate);
     if (!NT_SUCCESS(status))
diff --git a/src/xeniface/wmi.c b/src/xeniface/wmi.c
index 0b14e9b..0ae87d4 100644
--- a/src/xeniface/wmi.c
+++ b/src/xeniface/wmi.c
@@ -753,18 +753,25 @@ SessionFindWatchLocked(XenStoreSession *session,
 
 }
 
-void FireSuspendEvent(PXENIFACE_FDO fdoData) {
-    XenIfaceDebugPrint(ERROR,"Ready to unsuspend Event\n");
-    KeSetEvent(&fdoData->registryWriteEvent, IO_NO_INCREMENT, FALSE);
-    if (fdoData->WmiReady) {
-        XenIfaceDebugPrint(TRACE,"Fire Suspend Event\n");
-        WmiFireEvent(fdoData->Dx->DeviceObject,
-                     (LPGUID)&OBJECT_GUID(XenStoreUnsuspendedEvent),
-                     0,
-                     0,
-                     NULL);
-    }
+VOID
+WmiFireSuspendEvent(
+    IN  PXENIFACE_FDO   Fdo
+    )
+{
+    XenIfaceDebugPrint(ERROR, "Ready to unsuspend Event\n");
+    KeSetEvent(&Fdo->registryWriteEvent, IO_NO_INCREMENT, FALSE);
+
+    if (!Fdo->WmiReady)
+        return;
+
+    XenIfaceDebugPrint(TRACE, "Fire Suspend Event\n");
+    WmiFireEvent(Fdo->Dx->DeviceObject,
+                 (LPGUID)&OBJECT_GUID(XenStoreUnsuspendedEvent),
+                 0,
+                 0,
+                 NULL);
 }
+
 void FireWatch(XenStoreWatch* watch) {
     UCHAR * eventdata;
     ULONG RequiredSize;
diff --git a/src/xeniface/wmi.h b/src/xeniface/wmi.h
index f677ee3..b9dd256 100644
--- a/src/xeniface/wmi.h
+++ b/src/xeniface/wmi.h
@@ -43,6 +43,11 @@ WmiProcessMinorFunction(
     IN  PIRP            Irp
     );
 
+extern VOID
+WmiFireSuspendEvent(
+    IN  PXENIFACE_FDO   Fdo
+    );
+
 NTSTATUS
 WmiInit(
     PXENIFACE_FDO FdoData
@@ -54,10 +59,6 @@ WmiFinalise(
     PXENIFACE_FDO FdoData
 ); 
 
-void FireSuspendEvent(
-    IN OUT PXENIFACE_FDO fdoData
-    );
-
 void SessionsResumeAll(
     XENIFACE_FDO *fdoData
 );
-- 
1.9.4.msysgit.1


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

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic