ReactOS 0.4.16-dev-1946-g52006dd
rtlp.h
Go to the documentation of this file.
1/*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS System Libraries
4 * FILE: lib/rtl/rtlp.h
5 * PURPOSE: Run-Time Libary Internal Header
6 * PROGRAMMER: Alex Ionescu
7 */
8
9/* INCLUDES ******************************************************************/
10
11/* PAGED_CODE equivalent for user-mode RTL */
12#if DBG
13extern VOID FASTCALL CHECK_PAGED_CODE_RTL(char *file, int line);
14#define PAGED_CODE_RTL() CHECK_PAGED_CODE_RTL(__FILE__, __LINE__)
15#else
16#define PAGED_CODE_RTL()
17#endif
18
19#ifdef _PPC_
20#define SWAPD(x) ((((x)&0xff)<<24)|(((x)&0xff00)<<8)|(((x)>>8)&0xff00)|(((x)>>24)&0xff))
21#define SWAPW(x) ((((x)&0xff)<<8)|(((x)>>8)&0xff))
22#define SWAPQ(x) ((SWAPD((x)&0xffffffff) << 32) | (SWAPD((x)>>32)))
23#else
24#define SWAPD(x) (x)
25#define SWAPW(x) (x)
26#define SWAPQ(x) (x)
27#endif
28
29#define ROUND_DOWN(n, align) \
30 (((ULONG_PTR)(n)) & ~((align) - 1l))
31
32#define ROUND_UP(n, align) \
33 ROUND_DOWN(((ULONG_PTR)(n)) + (align) - 1, (align))
34
35#define RVA(m, b) ((PVOID)((ULONG_PTR)(b) + (ULONG_PTR)(m)))
36
38
45
46#ifndef _BLDR_
47
48VOID
52
53#ifdef _M_IX86
54
57RtlpGetExceptionList(VOID);
58
59VOID
61RtlpSetExceptionList(PEXCEPTION_REGISTRATION_RECORD NewExceptionList);
62
63#endif /* _M_IX86 */
64
65/* For heap.c */
66VOID
69
70/* For vectoreh.c */
74 IN PEXCEPTION_RECORD ExceptionRecord,
76);
77
78VOID
81 IN PEXCEPTION_RECORD ExceptionRecord,
83);
84
85#ifdef _M_IX86
86typedef struct _DISPATCHER_CONTEXT
87{
88 PEXCEPTION_REGISTRATION_RECORD RegistrationPointer;
90#endif
91
92#endif /* !_BLDR_ */
93
94/* These provide support for sharing code between User and Kernel RTL */
99 ULONG Tag);
100
101VOID
102NTAPI
104 PVOID Mem,
105 ULONG Tag);
106
107#ifndef _BLDR_
108
110NTAPI
112
114NTAPI
116 IN ULONG_PTR Ebp,
117 IN ULONG_PTR *StackBegin,
118 IN ULONG_PTR *StackEnd
119);
120
121/* For heap.c and heappage.c */
123NTAPI
125
127NTAPI
129
131NTAPI
133
135NTAPI
137
139NTAPI
141
143NTAPI
145
147NTAPI
149 IN ULONG_PTR RegistrationFrameEnd,
150 IN OUT PULONG_PTR StackLow,
151 IN OUT PULONG_PTR StackHigh);
152
153#endif /* !_BLDR_ */
154
155#define RtlpAllocateStringMemory RtlpAllocateMemory
156#define RtlpFreeStringMemory RtlpFreeMemory
157
158#ifndef _BLDR_
159
160ULONG
161NTAPI
163#define NtGetTickCount RtlGetTickCount
164
166NTAPI
168 VOID
169);
170
171VOID
172NTAPI
174 VOID
175);
176
177/* i386/except.S */
178
179#ifdef _M_IX86
181NTAPI
182RtlpExecuteHandlerForException(PEXCEPTION_RECORD ExceptionRecord,
183 PEXCEPTION_REGISTRATION_RECORD RegistrationFrame,
186 PEXCEPTION_ROUTINE ExceptionHandler);
187
189NTAPI
191 PEXCEPTION_REGISTRATION_RECORD RegistrationFrame,
194 PEXCEPTION_ROUTINE ExceptionHandler);
195#else
197NTAPI
199 _Inout_ struct _EXCEPTION_RECORD *ExceptionRecord,
203
204#endif
205
206VOID
207NTAPI
210 IN PVOID ContextData,
211 IN ULONG Size);
212
213VOID
214NTAPI
216
217//
218// Debug Service calls
219//
220ULONG
221NTAPI
226 IN PVOID Argument3,
228);
229
230VOID
231NTAPI
236);
237
238/* Timer Queue */
240
243
244#endif /* !_BLDR_ */
245
246/* bitmap64.c */
247typedef struct _RTL_BITMAP64
248{
252
253typedef struct _RTL_BITMAP_RUN64
254{
258
259/* Tags for the String Allocators */
260#define TAG_USTR 'RTSU'
261#define TAG_ASTR 'RTSA'
262#define TAG_OSTR 'RTSO'
263
264/* nls.c */
265WCHAR
266NTAPI
268
269WCHAR
270NTAPI
272
273#ifndef _BLDR_
274
275/* ReactOS only */
276VOID
277NTAPI
278LdrpInitializeProcessCompat(PVOID pProcessActctx, PVOID* pOldShimData);
279
280PVOID
281NTAPI
284
285#endif /* !_BLDR_ */
286
287/* EOF */
unsigned char BOOLEAN
LONG NTSTATUS
Definition: precomp.h:26
Definition: bufpool.h:45
_In_ PVOID Argument2
Definition: classpnp.h:721
EXCEPTION_ROUTINE * PEXCEPTION_ROUTINE
Definition: compat.h:709
enum _EXCEPTION_DISPOSITION EXCEPTION_DISPOSITION
__in PWDFDEVICE_INIT __in BOOLEAN Exclusive
InternalIoctlParams Argument4
_In_ UINT Bytes
Definition: mmcopy.h:9
unsigned __int64 * PULONG64
Definition: imports.h:198
unsigned __int64 ULONG64
Definition: imports.h:198
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
Definition: ndis.h:3169
struct _DISPATCHER_CONTEXT * PDISPATCHER_CONTEXT
struct _DISPATCHER_CONTEXT DISPATCHER_CONTEXT
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
Definition: rtlfuncs.h:3051
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _Inout_
Definition: no_sal2.h:162
#define _In_
Definition: no_sal2.h:158
#define _Out_writes_bytes_all_(s)
Definition: no_sal2.h:194
#define FASTCALL
Definition: nt_native.h:50
_IRQL_requires_same_ _In_ PVOID EstablisherFrame
Definition: ntbasedef.h:665
_IRQL_requires_same_ _In_ PVOID _Inout_ struct _CONTEXT * ContextRecord
Definition: ntbasedef.h:666
_IRQL_requires_same_ _In_ PVOID _Inout_ struct _CONTEXT _In_ PVOID DispatcherContext
Definition: ntbasedef.h:667
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
@ Service
Definition: ntsecapi.h:292
#define UNALIGNED
Definition: pecoff.h:347
#define CONST
Definition: pedump.c:81
BOOLEAN NTAPI RtlpCheckForActiveDebugger(VOID)
Definition: libsupp.c:27
NTSTATUS NTAPI RtlpSafeCopyMemory(_Out_writes_bytes_all_(Length) VOID UNALIGNED *Destination, _In_reads_bytes_(Length) CONST VOID UNALIGNED *Source, _In_ SIZE_T Length)
Definition: rtlcompat.c:56
WCHAR NTAPI RtlpUpcaseUnicodeChar(IN WCHAR Source)
Definition: nls.c:695
NTSTATUS NTAPI RtlInitializeHeapLock(IN OUT PHEAP_LOCK *Lock)
Definition: libsupp.c:128
VOID NTAPI RtlpCheckLogException(IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT ContextRecord, IN PVOID ContextData, IN ULONG Size)
Definition: libsupp.c:203
HANDLE TimerThreadHandle
Definition: timerqueue.c:24
VOID NTAPI RtlpCaptureContext(OUT PCONTEXT ContextRecord)
VOID NTAPI RtlCallVectoredContinueHandlers(IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT Context)
Definition: vectoreh.c:284
NTSTATUS NTAPI RtlEnterHeapLock(IN OUT PHEAP_LOCK Lock, IN BOOLEAN Exclusive)
Definition: libsupp.c:110
PVOID NTAPI RtlpAllocateMemory(SIZE_T Bytes, ULONG Tag)
Definition: libsupp.c:35
BOOLEAN NTAPI RtlCallVectoredExceptionHandlers(IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT Context)
Definition: vectoreh.c:273
VOID NTAPI RtlpClearInDbgPrint(VOID)
Definition: libsupp.c:47
struct _RTL_BITMAP_RUN64 * PRTL_BITMAP_RUN64
KPROCESSOR_MODE NTAPI RtlpGetMode(VOID)
Definition: libsupp.c:55
BOOLEAN NTAPI RtlpSetInDbgPrint(VOID)
Definition: libsupp.c:35
BOOLEAN NTAPI RtlpHandleDpcStackException(IN PEXCEPTION_REGISTRATION_RECORD RegistrationFrame, IN ULONG_PTR RegistrationFrameEnd, IN OUT PULONG_PTR StackLow, IN OUT PULONG_PTR StackHigh)
Definition: libsupp.c:192
VOID NTAPI RtlpSetHeapParameters(IN PRTL_HEAP_PARAMETERS Parameters)
Definition: libsupp.c:176
ULONG NTAPI RtlGetTickCount(VOID)
Definition: libsupp.c:1222
BOOLEAN NTAPI RtlTryEnterHeapLock(IN OUT PHEAP_LOCK Lock, IN BOOLEAN Exclusive)
Definition: libsupp.c:119
ULONG NTAPI DebugService(IN ULONG Service, IN PVOID Argument1, IN PVOID Argument2, IN PVOID Argument3, IN PVOID Argument4)
NTSTATUS NTAPI RtlDeleteHeapLock(IN OUT PHEAP_LOCK Lock)
Definition: libsupp.c:103
WCHAR NTAPI RtlpDowncaseUnicodeChar(IN WCHAR Source)
Definition: nls.c:89
struct _RTL_BITMAP64 * PRTL_BITMAP64
PVOID NTAPI RtlpDebugBufferCommit(_Inout_ PRTL_DEBUG_INFORMATION Buffer, _In_ SIZE_T Size)
Definition: dbgbuffer.c:20
VOID NTAPI DebugService2(IN PVOID Argument1, IN PVOID Argument2, IN ULONG Service)
EXCEPTION_DISPOSITION NTAPI RtlpExecuteHandlerForUnwind(_Inout_ struct _EXCEPTION_RECORD *ExceptionRecord, _In_ PVOID EstablisherFrame, _Inout_ struct _CONTEXT *ContextRecord, _In_ PVOID DispatcherContext)
struct _RTL_BITMAP64 RTL_BITMAP64
VOID NTAPI LdrpInitializeProcessCompat(PVOID pProcessActctx, PVOID *pOldShimData)
Definition: ldrinit.c:1589
NTSTATUS NTAPI RtlLeaveHeapLock(IN OUT PHEAP_LOCK Lock)
Definition: libsupp.c:135
struct _RTL_BITMAP_RUN64 RTL_BITMAP_RUN64
NTSTATUS RtlpInitializeTimerThread(VOID)
Definition: timerqueue.c:27
VOID NTAPI RtlpGetStackLimits(PULONG_PTR LowLimit, PULONG_PTR HighLimit)
BOOLEAN NTAPI RtlpCaptureStackLimits(IN ULONG_PTR Ebp, IN ULONG_PTR *StackBegin, IN ULONG_PTR *StackEnd)
Definition: libsupp.c:213
VOID NTAPI RtlpFreeMemory(PVOID Mem, ULONG Tag)
Definition: libsupp.c:44
PVOID MmHighestUserAddress
Definition: rtlcompat.c:29
PULONG64 Buffer
Definition: rtlp.h:250
ULONG64 SizeOfBitMap
Definition: rtlp.h:249
ULONG64 StartingIndex
Definition: rtlp.h:255
ULONG64 NumberOfBits
Definition: rtlp.h:256
Definition: fci.c:127
Definition: parser.c:49
uint32_t * PULONG_PTR
Definition: typedefs.h:65
#define NTAPI
Definition: typedefs.h:36
ULONG_PTR SIZE_T
Definition: typedefs.h:80
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
Definition: wdfdevice.h:4071
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4539
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
Definition: wdfio.h:869
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
Definition: wdfsync.h:127
_IRQL_requires_same_ _In_opt_ PVOID Argument1
Definition: cmtypes.h:696
_Out_ PULONG_PTR HighLimit
Definition: iofuncs.h:2885
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
__wchar_t WCHAR
Definition: xmlstorage.h:180