2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS System Libraries
5 * PURPOSE: Run-Time Libary Internal Header
6 * PROGRAMMER: Alex Ionescu
9 /* INCLUDES ******************************************************************/
11 /* PAGED_CODE equivalent for user-mode RTL */
13 extern VOID FASTCALL
CHECK_PAGED_CODE_RTL(char *file
, int line
);
14 #define PAGED_CODE_RTL() CHECK_PAGED_CODE_RTL(__FILE__, __LINE__)
16 #define PAGED_CODE_RTL()
21 RtlpGetStackLimits(PULONG_PTR StackBase
,
22 PULONG_PTR StackLimit
);
24 PEXCEPTION_REGISTRATION_RECORD
26 RtlpGetExceptionList(VOID
);
30 RtlpSetExceptionList(PEXCEPTION_REGISTRATION_RECORD NewExceptionList
);
32 typedef struct _DISPATCHER_CONTEXT
34 PEXCEPTION_REGISTRATION_RECORD RegistrationPointer
;
35 } DISPATCHER_CONTEXT
, *PDISPATCHER_CONTEXT
;
37 /* These provide support for sharing code between User and Kernel RTL */
56 RtlpCaptureStackLimits(
58 IN ULONG_PTR
*StackBegin
,
59 IN ULONG_PTR
*StackEnd
64 RtlDeleteHeapLock(PRTL_CRITICAL_SECTION CriticalSection
);
68 RtlEnterHeapLock(PRTL_CRITICAL_SECTION CriticalSection
);
72 RtlInitializeHeapLock(PRTL_CRITICAL_SECTION CriticalSection
);
76 RtlLeaveHeapLock(PRTL_CRITICAL_SECTION CriticalSection
);
80 RtlpCheckForActiveDebugger(BOOLEAN Type
);
84 RtlpHandleDpcStackException(IN PEXCEPTION_REGISTRATION_RECORD RegistrationFrame
,
85 IN ULONG_PTR RegistrationFrameEnd
,
86 IN OUT PULONG_PTR StackLow
,
87 IN OUT PULONG_PTR StackHigh
);
89 #define RtlpAllocateStringMemory RtlpAllocateMemory
90 #define RtlpFreeStringMemory RtlpFreeMemory
94 RtlpSetInDbgPrint(IN BOOLEAN NewValue
);
100 RtlpExecuteHandlerForException(PEXCEPTION_RECORD ExceptionRecord
,
101 PEXCEPTION_REGISTRATION_RECORD RegistrationFrame
,
103 PVOID DispatcherContext
,
104 PEXCEPTION_ROUTINE ExceptionHandler
);
106 EXCEPTION_DISPOSITION
108 RtlpExecuteHandlerForUnwind(PEXCEPTION_RECORD ExceptionRecord
,
109 PEXCEPTION_REGISTRATION_RECORD RegistrationFrame
,
111 PVOID DispatcherContext
,
112 PEXCEPTION_ROUTINE ExceptionHandler
);
116 RtlpCheckLogException(IN PEXCEPTION_RECORD ExceptionRecord
,
117 IN PCONTEXT ContextRecord
,
118 IN PVOID ContextData
,
123 RtlpGetExceptionAddress(VOID
);
127 RtlpCaptureContext(OUT PCONTEXT ContextRecord
);
132 DebugService(IN ULONG Service
,
133 IN
const void* Buffer
,
140 DebugService2(IN PVOID Argument1
,
144 /* Tags for the String Allocators */
145 #define TAG_USTR TAG('U', 'S', 'T', 'R')
146 #define TAG_ASTR TAG('A', 'S', 'T', 'R')
147 #define TAG_OSTR TAG('O', 'S', 'T', 'R')
151 extern HANDLE TimerThreadHandle
;
154 RtlpInitializeTimerThread(VOID
);