Zebediah Figura : ntoskrnl.exe: Implement KeInitializeSemaphore().

Alexandre Julliard julliard at winehq.org
Tue Nov 27 14:26:10 CST 2018


Module: wine
Branch: master
Commit: 8589d094ff576db6d733c744120c316eb835d6fb
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=8589d094ff576db6d733c744120c316eb835d6fb

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Mon Nov 26 19:39:16 2018 -0600

ntoskrnl.exe: Implement KeInitializeSemaphore().

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntoskrnl.exe/ntoskrnl.c |  9 ---------
 dlls/ntoskrnl.exe/sync.c     | 15 +++++++++++++++
 2 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index c1cfb03..07e9104 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -2308,15 +2308,6 @@ LONG WINAPI KeReleaseMutex(PRKMUTEX Mutex, BOOLEAN Wait)
 
 
 /***********************************************************************
- *           KeInitializeSemaphore   (NTOSKRNL.EXE.@)
- */
-void WINAPI KeInitializeSemaphore( PRKSEMAPHORE Semaphore, LONG Count, LONG Limit )
-{
-    FIXME( "(%p %d %d) stub\n", Semaphore , Count, Limit );
-}
-
-
-/***********************************************************************
  *           KeInitializeSpinLock   (NTOSKRNL.EXE.@)
  */
 void WINAPI KeInitializeSpinLock( PKSPIN_LOCK SpinLock )
diff --git a/dlls/ntoskrnl.exe/sync.c b/dlls/ntoskrnl.exe/sync.c
index 8011b56..2190faa 100644
--- a/dlls/ntoskrnl.exe/sync.c
+++ b/dlls/ntoskrnl.exe/sync.c
@@ -36,6 +36,7 @@ enum object_type
 {
     TYPE_MANUAL_EVENT = 0,
     TYPE_AUTO_EVENT = 1,
+    TYPE_SEMAPHORE = 5,
 };
 
 static CRITICAL_SECTION sync_cs;
@@ -172,3 +173,17 @@ LONG WINAPI KeResetEvent( PRKEVENT event )
 
     return ret;
 }
+
+/***********************************************************************
+ *           KeInitializeSemaphore   (NTOSKRNL.EXE.@)
+ */
+void WINAPI KeInitializeSemaphore( PRKSEMAPHORE semaphore, LONG count, LONG limit )
+{
+    TRACE("semaphore %p, count %d, limit %d.\n", semaphore, count, limit);
+
+    semaphore->Header.Type = TYPE_SEMAPHORE;
+    semaphore->Header.SignalState = count;
+    semaphore->Header.WaitListHead.Blink = NULL;
+    semaphore->Header.WaitListHead.Flink = NULL;
+    semaphore->Limit = limit;
+}




More information about the wine-cvs mailing list