kernel32: Move condition variable functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
628d4450cd
commit
9585990a46
|
@ -1482,8 +1482,8 @@
|
||||||
@ stdcall SignalObjectAndWait(long long long long)
|
@ stdcall SignalObjectAndWait(long long long long)
|
||||||
@ stdcall SizeofResource(long long)
|
@ stdcall SizeofResource(long long)
|
||||||
@ stdcall Sleep(long)
|
@ stdcall Sleep(long)
|
||||||
@ stdcall SleepConditionVariableCS(ptr ptr long)
|
@ stdcall -import SleepConditionVariableCS(ptr ptr long)
|
||||||
@ stdcall SleepConditionVariableSRW(ptr ptr long long)
|
@ stdcall -import SleepConditionVariableSRW(ptr ptr long long)
|
||||||
@ stdcall SleepEx(long long)
|
@ stdcall SleepEx(long long)
|
||||||
# @ stub SortCloseHandle
|
# @ stub SortCloseHandle
|
||||||
# @ stub SortGetHandle
|
# @ stub SortGetHandle
|
||||||
|
|
|
@ -1875,39 +1875,3 @@ __ASM_STDCALL_FUNC(InterlockedDecrement, 4,
|
||||||
"ret $4")
|
"ret $4")
|
||||||
|
|
||||||
#endif /* __i386__ */
|
#endif /* __i386__ */
|
||||||
|
|
||||||
/***********************************************************************
|
|
||||||
* SleepConditionVariableCS (KERNEL32.@)
|
|
||||||
*/
|
|
||||||
BOOL WINAPI SleepConditionVariableCS( CONDITION_VARIABLE *variable, CRITICAL_SECTION *crit, DWORD timeout )
|
|
||||||
{
|
|
||||||
NTSTATUS status;
|
|
||||||
LARGE_INTEGER time;
|
|
||||||
|
|
||||||
status = RtlSleepConditionVariableCS( variable, crit, get_nt_timeout( &time, timeout ) );
|
|
||||||
|
|
||||||
if (status != STATUS_SUCCESS)
|
|
||||||
{
|
|
||||||
SetLastError( RtlNtStatusToDosError(status) );
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/***********************************************************************
|
|
||||||
* SleepConditionVariableSRW (KERNEL32.@)
|
|
||||||
*/
|
|
||||||
BOOL WINAPI SleepConditionVariableSRW( RTL_CONDITION_VARIABLE *variable, RTL_SRWLOCK *lock, DWORD timeout, ULONG flags )
|
|
||||||
{
|
|
||||||
NTSTATUS status;
|
|
||||||
LARGE_INTEGER time;
|
|
||||||
|
|
||||||
status = RtlSleepConditionVariableSRW( variable, lock, get_nt_timeout( &time, timeout ), flags );
|
|
||||||
|
|
||||||
if (status != STATUS_SUCCESS)
|
|
||||||
{
|
|
||||||
SetLastError( RtlNtStatusToDosError(status) );
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1512,8 +1512,8 @@
|
||||||
@ stdcall SignalObjectAndWait(long long long long) kernel32.SignalObjectAndWait
|
@ stdcall SignalObjectAndWait(long long long long) kernel32.SignalObjectAndWait
|
||||||
@ stdcall SizeofResource(long long) kernel32.SizeofResource
|
@ stdcall SizeofResource(long long) kernel32.SizeofResource
|
||||||
@ stdcall Sleep(long) kernel32.Sleep
|
@ stdcall Sleep(long) kernel32.Sleep
|
||||||
@ stdcall SleepConditionVariableCS(ptr ptr long) kernel32.SleepConditionVariableCS
|
@ stdcall SleepConditionVariableCS(ptr ptr long)
|
||||||
@ stdcall SleepConditionVariableSRW(ptr ptr long long) kernel32.SleepConditionVariableSRW
|
@ stdcall SleepConditionVariableSRW(ptr ptr long long)
|
||||||
@ stdcall SleepEx(long long) kernel32.SleepEx
|
@ stdcall SleepEx(long long) kernel32.SleepEx
|
||||||
@ stub SpecialMBToWC
|
@ stub SpecialMBToWC
|
||||||
@ stub StartThreadpoolIo
|
@ stub StartThreadpoolIo
|
||||||
|
|
|
@ -45,6 +45,14 @@ static inline BOOL is_version_nt(void)
|
||||||
return !(GetVersion() & 0x80000000);
|
return !(GetVersion() & 0x80000000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* helper for kernel32->ntdll timeout format conversion */
|
||||||
|
static inline LARGE_INTEGER *get_nt_timeout( LARGE_INTEGER *time, DWORD timeout )
|
||||||
|
{
|
||||||
|
if (timeout == INFINITE) return NULL;
|
||||||
|
time->QuadPart = (ULONGLONG)timeout * -10000;
|
||||||
|
return time;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* BaseGetNamedObjectDirectory (kernelbase.@)
|
* BaseGetNamedObjectDirectory (kernelbase.@)
|
||||||
|
@ -719,3 +727,33 @@ HANDLE WINAPI DECLSPEC_HOTPATCH OpenFileMappingW( DWORD access, BOOL inherit, LP
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* Condition variables
|
||||||
|
***********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* SleepConditionVariableCS (kernelbase.@)
|
||||||
|
*/
|
||||||
|
BOOL WINAPI DECLSPEC_HOTPATCH SleepConditionVariableCS( CONDITION_VARIABLE *variable,
|
||||||
|
CRITICAL_SECTION *crit, DWORD timeout )
|
||||||
|
{
|
||||||
|
LARGE_INTEGER time;
|
||||||
|
|
||||||
|
return set_ntstatus( RtlSleepConditionVariableCS( variable, crit, get_nt_timeout( &time, timeout )));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* SleepConditionVariableSRW (kernelbase.@)
|
||||||
|
*/
|
||||||
|
BOOL WINAPI DECLSPEC_HOTPATCH SleepConditionVariableSRW( RTL_CONDITION_VARIABLE *variable,
|
||||||
|
RTL_SRWLOCK *lock, DWORD timeout, ULONG flags )
|
||||||
|
{
|
||||||
|
LARGE_INTEGER time;
|
||||||
|
|
||||||
|
return set_ntstatus( RtlSleepConditionVariableSRW( variable, lock,
|
||||||
|
get_nt_timeout( &time, timeout ), flags ));
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue