3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * FILE: ntoskrnl/rtl/libsupp.c
6 * PURPOSE: Rtl library support routines
8 * PROGRAMMERS: No programmer listed.
11 /* INCLUDES ******************************************************************/
14 #include <internal/ps.h>
16 #include <internal/debug.h>
18 //FIXME: sort this out somehow. IAI: Sorted in new header branch
19 #define PRTL_CRITICAL_SECTION PVOID
21 /* FUNCTIONS *****************************************************************/
27 RtlAcquirePebLock(VOID
)
36 RtlReleasePebLock(VOID
)
45 return ((PEPROCESS
)(KeGetCurrentThread()->ApcState
.Process
))->Peb
;
50 RtlDeleteCriticalSection(
51 PRTL_CRITICAL_SECTION CriticalSection
)
53 return STATUS_SUCCESS
;
58 RtlSetCriticalSectionSpinCount(
59 PRTL_CRITICAL_SECTION CriticalSection
,
68 RtlEnterCriticalSection(
69 PRTL_CRITICAL_SECTION CriticalSection
)
71 ExAcquireFastMutex((PFAST_MUTEX
) CriticalSection
);
72 return STATUS_SUCCESS
;
77 RtlInitializeCriticalSection(
78 PRTL_CRITICAL_SECTION CriticalSection
)
80 ExInitializeFastMutex((PFAST_MUTEX
)CriticalSection
);
81 return STATUS_SUCCESS
;
86 RtlLeaveCriticalSection(
87 PRTL_CRITICAL_SECTION CriticalSection
)
89 ExReleaseFastMutex((PFAST_MUTEX
) CriticalSection
);
90 return STATUS_SUCCESS
;
95 RtlTryEnterCriticalSection(
96 PRTL_CRITICAL_SECTION CriticalSection
)
98 return ExTryToAcquireFastMutex((PFAST_MUTEX
) CriticalSection
);
104 RtlInitializeCriticalSectionAndSpinCount(
105 PRTL_CRITICAL_SECTION CriticalSection
,
108 ExInitializeFastMutex((PFAST_MUTEX
)CriticalSection
);
109 return STATUS_SUCCESS
;