Module: wine Branch: master Commit: aa7f8e930d730876fd560fe1aef94f392b210eaf URL: https://source.winehq.org/git/wine.git/?a=commit;h=aa7f8e930d730876fd560fe1a...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Jun 27 16:59:39 2019 +0200
kernel32: Move critical section functions to kernelbase.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/kernel32/kernel32.spec | 6 ++-- dlls/kernel32/sync.c | 61 ----------------------------------------- dlls/kernelbase/kernelbase.spec | 4 +-- dlls/kernelbase/sync.c | 25 +++++++++++++++++ 4 files changed, 30 insertions(+), 66 deletions(-)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index be9ed3f..3f3f903 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -946,9 +946,9 @@ @ stdcall InitOnceInitialize(ptr) ntdll.RtlRunOnceInitialize @ stdcall InitializeConditionVariable(ptr) ntdll.RtlInitializeConditionVariable # @ stub InitializeContext -@ stdcall InitializeCriticalSection(ptr) -@ stdcall InitializeCriticalSectionAndSpinCount(ptr long) -@ stdcall InitializeCriticalSectionEx(ptr long long) +@ stdcall InitializeCriticalSection(ptr) ntdll.RtlInitializeCriticalSection +@ stdcall -import InitializeCriticalSectionAndSpinCount(ptr long) +@ stdcall -import InitializeCriticalSectionEx(ptr long long) @ stdcall InitializeProcThreadAttributeList(ptr long long ptr) @ stdcall InitializeSListHead(ptr) ntdll.RtlInitializeSListHead @ stdcall InitializeSRWLock(ptr) ntdll.RtlInitializeSRWLock diff --git a/dlls/kernel32/sync.c b/dlls/kernel32/sync.c index 5b8eef6..7667af9 100644 --- a/dlls/kernel32/sync.c +++ b/dlls/kernel32/sync.c @@ -308,67 +308,6 @@ DWORD WINAPI SignalObjectAndWait( HANDLE hObjectToSignal, HANDLE hObjectToWaitOn }
/*********************************************************************** - * InitializeCriticalSection (KERNEL32.@) - * - * Initialise a critical section before use. - * - * PARAMS - * crit [O] Critical section to initialise. - * - * RETURNS - * Nothing. If the function fails an exception is raised. - */ -void WINAPI InitializeCriticalSection( CRITICAL_SECTION *crit ) -{ - InitializeCriticalSectionEx( crit, 0, 0 ); -} - -/*********************************************************************** - * InitializeCriticalSectionAndSpinCount (KERNEL32.@) - * - * Initialise a critical section with a spin count. - * - * PARAMS - * crit [O] Critical section to initialise. - * spincount [I] Number of times to spin upon contention. - * - * RETURNS - * Success: TRUE. - * Failure: Nothing. If the function fails an exception is raised. - * - * NOTES - * spincount is ignored on uni-processor systems. - */ -BOOL WINAPI InitializeCriticalSectionAndSpinCount( CRITICAL_SECTION *crit, DWORD spincount ) -{ - return InitializeCriticalSectionEx( crit, spincount, 0 ); -} - -/*********************************************************************** - * InitializeCriticalSectionEx (KERNEL32.@) - * - * Initialise a critical section with a spin count and flags. - * - * PARAMS - * crit [O] Critical section to initialise. - * spincount [I] Number of times to spin upon contention. - * flags [I] CRITICAL_SECTION_ flags from winbase.h. - * - * RETURNS - * Success: TRUE. - * Failure: Nothing. If the function fails an exception is raised. - * - * NOTES - * spincount is ignored on uni-processor systems. - */ -BOOL WINAPI InitializeCriticalSectionEx( CRITICAL_SECTION *crit, DWORD spincount, DWORD flags ) -{ - NTSTATUS ret = RtlInitializeCriticalSectionEx( crit, spincount, flags ); - if (ret) RtlRaiseStatus( ret ); - return !ret; -} - -/*********************************************************************** * MakeCriticalSectionGlobal (KERNEL32.@) */ void WINAPI MakeCriticalSectionGlobal( CRITICAL_SECTION *crit ) diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec index c81fd0e..e9fa0d2 100644 --- a/dlls/kernelbase/kernelbase.spec +++ b/dlls/kernelbase/kernelbase.spec @@ -802,8 +802,8 @@ @ stdcall InitializeConditionVariable(ptr) kernel32.InitializeConditionVariable # @ stub InitializeContext @ stdcall InitializeCriticalSection(ptr) kernel32.InitializeCriticalSection -@ stdcall InitializeCriticalSectionAndSpinCount(ptr long) kernel32.InitializeCriticalSectionAndSpinCount -@ stdcall InitializeCriticalSectionEx(ptr long long) kernel32.InitializeCriticalSectionEx +@ stdcall InitializeCriticalSectionAndSpinCount(ptr long) +@ stdcall InitializeCriticalSectionEx(ptr long long) # @ stub InitializeEnclave @ stdcall InitializeProcThreadAttributeList(ptr long long ptr) kernel32.InitializeProcThreadAttributeList # @ stub InitializeProcessForWsWatch diff --git a/dlls/kernelbase/sync.c b/dlls/kernelbase/sync.c index cd0348d..21ba6d2 100644 --- a/dlls/kernelbase/sync.c +++ b/dlls/kernelbase/sync.c @@ -592,3 +592,28 @@ BOOL WINAPI DECLSPEC_HOTPATCH DeleteTimerQueueTimer( HANDLE queue, HANDLE timer, { return set_ntstatus( RtlDeleteTimer( queue, timer, event )); } + + +/*********************************************************************** + * Critical sections + ***********************************************************************/ + + +/*********************************************************************** + * InitializeCriticalSectionAndSpinCount (kernelbase.@) + */ +BOOL WINAPI DECLSPEC_HOTPATCH InitializeCriticalSectionAndSpinCount( CRITICAL_SECTION *crit, DWORD count ) +{ + return !RtlInitializeCriticalSectionAndSpinCount( crit, count ); +} + +/*********************************************************************** + * InitializeCriticalSectionEx (kernelbase.@) + */ +BOOL WINAPI DECLSPEC_HOTPATCH InitializeCriticalSectionEx( CRITICAL_SECTION *crit, DWORD spincount, + DWORD flags ) +{ + NTSTATUS ret = RtlInitializeCriticalSectionEx( crit, spincount, flags ); + if (ret) RtlRaiseStatus( ret ); + return !ret; +}