ntoskrnl.exe: Implement KeInitializeSemaphore().

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2018-11-26 19:39:16 -06:00 committed by Alexandre Julliard
parent 92f38bc879
commit 8589d094ff
2 changed files with 15 additions and 9 deletions

View File

@ -2307,15 +2307,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.@)
*/

View File

@ -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;
}