ReactOS 0.4.17-dev-573-g8315b8c
sync_static.c File Reference
#include <windef.h>
#include <winbase.h>
#include <ndk/rtlfuncs.h>
#include <imp_alias.h>
Include dependency graph for sync_static.c:

Go to the source code of this file.

Macros

#define _KERNEL32_
 
#define _WIN32_WINNT   0x0601
 
#define _NTSYSTEM_
 
#define WIN32_NO_STATUS
 
#define NTOS_MODE_USER
 

Functions

VOID WINAPI InitializeSRWLock (PSRWLOCK SRWLock)
 
VOID WINAPI AcquireSRWLockExclusive (PSRWLOCK SRWLock)
 
VOID WINAPI AcquireSRWLockShared (PSRWLOCK SRWLock)
 
VOID WINAPI ReleaseSRWLockExclusive (PSRWLOCK SRWLock)
 
VOID WINAPI ReleaseSRWLockShared (PSRWLOCK SRWLock)
 
BOOLEAN WINAPI TryAcquireSRWLockExclusive (PSRWLOCK SRWLock)
 
BOOLEAN WINAPI TryAcquireSRWLockShared (PSRWLOCK SRWLock)
 
VOID WINAPI WakeConditionVariable (PCONDITION_VARIABLE ConditionVariable)
 
VOID WINAPI WakeAllConditionVariable (PCONDITION_VARIABLE ConditionVariable)
 
FORCEINLINE PLARGE_INTEGER GetNtTimeout (PLARGE_INTEGER Time, DWORD Timeout)
 
BOOL WINAPI SleepConditionVariableSRW (PCONDITION_VARIABLE ConditionVariable, PSRWLOCK SRWLock, DWORD Timeout, ULONG Flags)
 
BOOL WINAPI InitOnceExecuteOnce (PINIT_ONCE InitOnce, PINIT_ONCE_FN InitFn, PVOID Parameter, LPVOID *Context)
 
 IMP_ALIAS_STDCALL (InitializeSRWLock, 4, RtlInitializeSRWLock)
 
 IMP_ALIAS_STDCALL (AcquireSRWLockExclusive, 4, RtlAcquireSRWLockExclusive)
 
 IMP_ALIAS_STDCALL (AcquireSRWLockShared, 4, RtlAcquireSRWLockShared)
 
 IMP_ALIAS_STDCALL (ReleaseSRWLockExclusive, 4, RtlReleaseSRWLockExclusive)
 
 IMP_ALIAS_STDCALL (ReleaseSRWLockShared, 4, RtlReleaseSRWLockShared)
 
 IMP_ALIAS_STDCALL (TryAcquireSRWLockExclusive, 4, RtlTryAcquireSRWLockExclusive)
 
 IMP_ALIAS_STDCALL (TryAcquireSRWLockShared, 4, RtlTryAcquireSRWLockShared)
 
 IMP_ALIAS_STDCALL (WakeConditionVariable, 4, RtlWakeConditionVariable)
 
 IMP_ALIAS_STDCALL (WakeAllConditionVariable, 4, RtlWakeAllConditionVariable)
 
 IMP_ALIAS_STDCALL (SleepConditionVariableSRW, 16, SleepConditionVariableSRW)
 
 IMP_ALIAS_STDCALL (InitOnceExecuteOnce, 16, InitOnceExecuteOnce)
 

Macro Definition Documentation

◆ _KERNEL32_

#define _KERNEL32_

Definition at line 18 of file sync_static.c.

◆ _NTSYSTEM_

#define _NTSYSTEM_

Definition at line 23 of file sync_static.c.

◆ _WIN32_WINNT

#define _WIN32_WINNT   0x0601

Definition at line 20 of file sync_static.c.

◆ NTOS_MODE_USER

#define NTOS_MODE_USER

Definition at line 28 of file sync_static.c.

◆ WIN32_NO_STATUS

#define WIN32_NO_STATUS

Definition at line 25 of file sync_static.c.

Function Documentation

◆ AcquireSRWLockExclusive()

VOID WINAPI AcquireSRWLockExclusive ( PSRWLOCK  SRWLock)

Definition at line 44 of file sync_static.c.

45{
47}
VOID NTAPI RtlAcquireSRWLockExclusive(IN OUT PRTL_SRWLOCK SRWLock)
Definition: srw.c:591

◆ AcquireSRWLockShared()

VOID WINAPI AcquireSRWLockShared ( PSRWLOCK  SRWLock)

Definition at line 51 of file sync_static.c.

52{
54}
VOID NTAPI RtlAcquireSRWLockShared(IN OUT PRTL_SRWLOCK SRWLock)
Definition: srw.c:325

◆ GetNtTimeout()

FORCEINLINE PLARGE_INTEGER GetNtTimeout ( PLARGE_INTEGER  Time,
DWORD  Timeout 
)

Definition at line 100 of file sync_static.c.

101{
102 if (Timeout == INFINITE) return NULL;
103 Time->QuadPart = (ULONGLONG)Timeout * -10000;
104 return Time;
105}
#define NULL
Definition: types.h:112
#define INFINITE
Definition: serial.h:102
static PLARGE_INTEGER Time
Definition: time.c:37
static ULONG Timeout
Definition: ping.c:61
uint64_t ULONGLONG
Definition: typedefs.h:67
LONGLONG QuadPart
Definition: typedefs.h:114

Referenced by SleepConditionVariableSRW().

◆ IMP_ALIAS_STDCALL() [1/11]

IMP_ALIAS_STDCALL ( AcquireSRWLockExclusive  ,
,
RtlAcquireSRWLockExclusive   
)

◆ IMP_ALIAS_STDCALL() [2/11]

IMP_ALIAS_STDCALL ( AcquireSRWLockShared  ,
,
RtlAcquireSRWLockShared   
)

◆ IMP_ALIAS_STDCALL() [3/11]

IMP_ALIAS_STDCALL ( InitializeSRWLock  ,
,
RtlInitializeSRWLock   
)

◆ IMP_ALIAS_STDCALL() [4/11]

IMP_ALIAS_STDCALL ( InitOnceExecuteOnce  ,
16  ,
InitOnceExecuteOnce   
)

◆ IMP_ALIAS_STDCALL() [5/11]

IMP_ALIAS_STDCALL ( ReleaseSRWLockExclusive  ,
,
RtlReleaseSRWLockExclusive   
)

◆ IMP_ALIAS_STDCALL() [6/11]

IMP_ALIAS_STDCALL ( ReleaseSRWLockShared  ,
,
RtlReleaseSRWLockShared   
)

◆ IMP_ALIAS_STDCALL() [7/11]

IMP_ALIAS_STDCALL ( SleepConditionVariableSRW  ,
16  ,
SleepConditionVariableSRW   
)

◆ IMP_ALIAS_STDCALL() [8/11]

IMP_ALIAS_STDCALL ( TryAcquireSRWLockExclusive  ,
,
RtlTryAcquireSRWLockExclusive   
)

◆ IMP_ALIAS_STDCALL() [9/11]

IMP_ALIAS_STDCALL ( TryAcquireSRWLockShared  ,
,
RtlTryAcquireSRWLockShared   
)

◆ IMP_ALIAS_STDCALL() [10/11]

IMP_ALIAS_STDCALL ( WakeAllConditionVariable  ,
,
RtlWakeAllConditionVariable   
)

◆ IMP_ALIAS_STDCALL() [11/11]

IMP_ALIAS_STDCALL ( WakeConditionVariable  ,
,
RtlWakeConditionVariable   
)

◆ InitializeSRWLock()

VOID WINAPI InitializeSRWLock ( PSRWLOCK  SRWLock)

Definition at line 37 of file sync_static.c.

38{
40}
VOID NTAPI RtlInitializeSRWLock(OUT PRTL_SRWLOCK SRWLock)
Definition: srw.c:317

◆ InitOnceExecuteOnce()

BOOL WINAPI InitOnceExecuteOnce ( PINIT_ONCE  InitOnce,
PINIT_ONCE_FN  InitFn,
PVOID  Parameter,
LPVOID Context 
)

Definition at line 125 of file sync_static.c.

126{
127 return NT_SUCCESS(RtlRunOnceExecuteOnce(InitOnce,
129 Parameter,
130 Context));
131}
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
_Maybe_raises_SEH_exception_ NTSTATUS NTAPI RtlRunOnceExecuteOnce(_Inout_ PRTL_RUN_ONCE RunOnce, _In_ __inner_callback PRTL_RUN_ONCE_INIT_FN InitFn, _Inout_opt_ PVOID Parameter, _Outptr_opt_result_maybenull_ PVOID *Context)
Definition: runonce.c:121
_In_ PVOID Context
Definition: storport.h:2269
_In_ __inner_callback PRTL_RUN_ONCE_INIT_FN InitFn
Definition: rtlfuncs.h:2550
_Inout_opt_ PVOID Parameter
Definition: rtltypes.h:336
RTL_RUN_ONCE_INIT_FN * PRTL_RUN_ONCE_INIT_FN
Definition: rtltypes.h:338

◆ ReleaseSRWLockExclusive()

VOID WINAPI ReleaseSRWLockExclusive ( PSRWLOCK  SRWLock)

Definition at line 58 of file sync_static.c.

59{
61}
VOID NTAPI RtlReleaseSRWLockExclusive(IN OUT PRTL_SRWLOCK SRWLock)
Definition: srw.c:710

◆ ReleaseSRWLockShared()

VOID WINAPI ReleaseSRWLockShared ( PSRWLOCK  SRWLock)

Definition at line 65 of file sync_static.c.

66{
68}
VOID NTAPI RtlReleaseSRWLockShared(IN OUT PRTL_SRWLOCK SRWLock)
Definition: srw.c:526

◆ SleepConditionVariableSRW()

BOOL WINAPI SleepConditionVariableSRW ( PCONDITION_VARIABLE  ConditionVariable,
PSRWLOCK  SRWLock,
DWORD  Timeout,
ULONG  Flags 
)

Definition at line 109 of file sync_static.c.

110{
113
114 Status = RtlSleepConditionVariableSRW(ConditionVariable, SRWLock, GetNtTimeout(&Time, Timeout), Flags);
116 {
118 return FALSE;
119 }
120 return TRUE;
121}
LONG NTSTATUS
Definition: precomp.h:26
#define STATUS_TIMEOUT
Definition: d3dkmdt.h:49
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define SetLastError(x)
Definition: compat.h:752
Status
Definition: gdiplustypes.h:24
NTSYSAPI NTSTATUS NTAPI RtlSleepConditionVariableSRW(_Inout_ PRTL_CONDITION_VARIABLE ConditionVariable, _Inout_ PRTL_SRWLOCK SRWLock, _In_opt_ PLARGE_INTEGER TimeOut, _In_ ULONG Flags)
FORCEINLINE PLARGE_INTEGER GetNtTimeout(PLARGE_INTEGER Time, DWORD Timeout)
Definition: sync_static.c:100
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170

◆ TryAcquireSRWLockExclusive()

BOOLEAN WINAPI TryAcquireSRWLockExclusive ( PSRWLOCK  SRWLock)

Definition at line 72 of file sync_static.c.

73{
75}
NTSYSAPI BOOLEAN WINAPI RtlTryAcquireSRWLockExclusive(RTL_SRWLOCK *)

Referenced by image_lock().

◆ TryAcquireSRWLockShared()

BOOLEAN WINAPI TryAcquireSRWLockShared ( PSRWLOCK  SRWLock)

Definition at line 79 of file sync_static.c.

80{
82}
NTSYSAPI BOOLEAN WINAPI RtlTryAcquireSRWLockShared(RTL_SRWLOCK *)

◆ WakeAllConditionVariable()

VOID WINAPI WakeAllConditionVariable ( PCONDITION_VARIABLE  ConditionVariable)

Definition at line 93 of file sync_static.c.

94{
96}
NTSYSAPI VOID NTAPI RtlWakeAllConditionVariable(_Inout_ PRTL_CONDITION_VARIABLE ConditionVariable)

◆ WakeConditionVariable()

VOID WINAPI WakeConditionVariable ( PCONDITION_VARIABLE  ConditionVariable)

Definition at line 86 of file sync_static.c.

87{
89}
NTSYSAPI VOID NTAPI RtlWakeConditionVariable(_Inout_ PRTL_CONDITION_VARIABLE ConditionVariable)