Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenrtlp.h
Go to the documentation of this file.
00001 /* 00002 * COPYRIGHT: See COPYING in the top level directory 00003 * PROJECT: ReactOS System Libraries 00004 * FILE: lib/rtl/rtlp.h 00005 * PURPOSE: Run-Time Libary Internal Header 00006 * PROGRAMMER: Alex Ionescu 00007 */ 00008 00009 /* INCLUDES ******************************************************************/ 00010 00011 /* PAGED_CODE equivalent for user-mode RTL */ 00012 #if DBG 00013 extern VOID FASTCALL CHECK_PAGED_CODE_RTL(char *file, int line); 00014 #define PAGED_CODE_RTL() CHECK_PAGED_CODE_RTL(__FILE__, __LINE__) 00015 #else 00016 #define PAGED_CODE_RTL() 00017 #endif 00018 00019 #ifdef _PPC_ 00020 #define SWAPD(x) ((((x)&0xff)<<24)|(((x)&0xff00)<<8)|(((x)>>8)&0xff00)|(((x)>>24)&0xff)) 00021 #define SWAPW(x) ((((x)&0xff)<<8)|(((x)>>8)&0xff)) 00022 #define SWAPQ(x) ((SWAPD((x)&0xffffffff) << 32) | (SWAPD((x)>>32))) 00023 #else 00024 #define SWAPD(x) (x) 00025 #define SWAPW(x) (x) 00026 #define SWAPQ(x) (x) 00027 #endif 00028 00029 #define ROUND_DOWN(n, align) \ 00030 (((ULONG)(n)) & ~((align) - 1l)) 00031 00032 #define ROUND_UP(n, align) \ 00033 ROUND_DOWN(((ULONG)(n)) + (align) - 1, (align)) 00034 00035 #define RVA(m, b) ((PVOID)((ULONG_PTR)(b) + (ULONG_PTR)(m))) 00036 00037 VOID 00038 NTAPI 00039 RtlpGetStackLimits(PULONG_PTR LowLimit, 00040 PULONG_PTR HighLimit); 00041 00042 PEXCEPTION_REGISTRATION_RECORD 00043 NTAPI 00044 RtlpGetExceptionList(VOID); 00045 00046 VOID 00047 NTAPI 00048 RtlpSetExceptionList(PEXCEPTION_REGISTRATION_RECORD NewExceptionList); 00049 00050 BOOLEAN 00051 NTAPI 00052 RtlCallVectoredExceptionHandlers( 00053 IN PEXCEPTION_RECORD ExceptionRecord, 00054 IN PCONTEXT Context 00055 ); 00056 00057 typedef struct _DISPATCHER_CONTEXT 00058 { 00059 PEXCEPTION_REGISTRATION_RECORD RegistrationPointer; 00060 } DISPATCHER_CONTEXT, *PDISPATCHER_CONTEXT; 00061 00062 /* These provide support for sharing code between User and Kernel RTL */ 00063 PVOID 00064 NTAPI 00065 RtlpAllocateMemory( 00066 SIZE_T Bytes, 00067 ULONG Tag); 00068 00069 VOID 00070 NTAPI 00071 RtlpFreeMemory( 00072 PVOID Mem, 00073 ULONG Tag); 00074 00075 KPROCESSOR_MODE 00076 NTAPI 00077 RtlpGetMode(VOID); 00078 00079 BOOLEAN 00080 NTAPI 00081 RtlpCaptureStackLimits( 00082 IN ULONG_PTR Ebp, 00083 IN ULONG_PTR *StackBegin, 00084 IN ULONG_PTR *StackEnd 00085 ); 00086 00087 NTSTATUS 00088 NTAPI 00089 RtlDeleteHeapLock(IN OUT PHEAP_LOCK Lock); 00090 00091 NTSTATUS 00092 NTAPI 00093 RtlEnterHeapLock(IN OUT PHEAP_LOCK Lock, IN BOOLEAN Exclusive); 00094 00095 NTSTATUS 00096 NTAPI 00097 RtlInitializeHeapLock(IN OUT PHEAP_LOCK *Lock); 00098 00099 NTSTATUS 00100 NTAPI 00101 RtlLeaveHeapLock(IN OUT PHEAP_LOCK Lock); 00102 00103 BOOLEAN 00104 NTAPI 00105 RtlpCheckForActiveDebugger(VOID); 00106 00107 BOOLEAN 00108 NTAPI 00109 RtlpHandleDpcStackException(IN PEXCEPTION_REGISTRATION_RECORD RegistrationFrame, 00110 IN ULONG_PTR RegistrationFrameEnd, 00111 IN OUT PULONG_PTR StackLow, 00112 IN OUT PULONG_PTR StackHigh); 00113 00114 #define RtlpAllocateStringMemory RtlpAllocateMemory 00115 #define RtlpFreeStringMemory RtlpFreeMemory 00116 00117 BOOLEAN 00118 NTAPI 00119 RtlpSetInDbgPrint( 00120 VOID 00121 ); 00122 00123 VOID 00124 NTAPI 00125 RtlpClearInDbgPrint( 00126 VOID 00127 ); 00128 00129 /* i386/except.S */ 00130 00131 EXCEPTION_DISPOSITION 00132 NTAPI 00133 RtlpExecuteHandlerForException(PEXCEPTION_RECORD ExceptionRecord, 00134 PEXCEPTION_REGISTRATION_RECORD RegistrationFrame, 00135 PCONTEXT Context, 00136 PVOID DispatcherContext, 00137 PEXCEPTION_ROUTINE ExceptionHandler); 00138 00139 EXCEPTION_DISPOSITION 00140 NTAPI 00141 RtlpExecuteHandlerForUnwind(PEXCEPTION_RECORD ExceptionRecord, 00142 PEXCEPTION_REGISTRATION_RECORD RegistrationFrame, 00143 PCONTEXT Context, 00144 PVOID DispatcherContext, 00145 PEXCEPTION_ROUTINE ExceptionHandler); 00146 00147 VOID 00148 NTAPI 00149 RtlpCheckLogException(IN PEXCEPTION_RECORD ExceptionRecord, 00150 IN PCONTEXT ContextRecord, 00151 IN PVOID ContextData, 00152 IN ULONG Size); 00153 00154 VOID 00155 NTAPI 00156 RtlpCaptureContext(OUT PCONTEXT ContextRecord); 00157 00158 // 00159 // Debug Service calls 00160 // 00161 ULONG 00162 NTAPI 00163 DebugService( 00164 IN ULONG Service, 00165 IN PVOID Argument1, 00166 IN PVOID Argument2, 00167 IN PVOID Argument3, 00168 IN PVOID Argument4 00169 ); 00170 00171 VOID 00172 NTAPI 00173 DebugService2( 00174 IN PVOID Argument1, 00175 IN PVOID Argument2, 00176 IN ULONG Service 00177 ); 00178 00179 /* Tags for the String Allocators */ 00180 #define TAG_USTR 'RTSU' 00181 #define TAG_ASTR 'RTSA' 00182 #define TAG_OSTR 'RTSO' 00183 00184 /* Timer Queue */ 00185 00186 extern HANDLE TimerThreadHandle; 00187 00188 NTSTATUS 00189 RtlpInitializeTimerThread(VOID); 00190 00191 /* EOF */ Generated on Sat May 26 2012 04:35:22 for ReactOS by
1.7.6.1
|