1 /* 2 * COPYRIGHT: See COPYING in the top level directory 3 * PROJECT: ReactOS Kernel 4 * FILE: ntoskrnl/include/ntoskrnl.h 5 * PURPOSE: Main Kernel Header 6 * PROGRAMMER: Alex Ionescu (alex@relsoft.net) 7 */ 8 9 #ifndef _NTOSKRNL_PCH 10 #define _NTOSKRNL_PCH 11 12 /* INCLUDES ******************************************************************/ 13 14 /* ARM Bringup Hack */ 15 #ifdef _M_ARM 16 #define DbgPrint DbgPrintEarly 17 #endif 18 19 /* WDK hacks */ 20 #ifdef _M_AMD64 21 #define IoAllocateAdapterChannel _IoAllocateAdapterChannel 22 #define KeGetCurrentThread _KeGetCurrentThread 23 #define RtlFillMemoryUlong _RtlFillMemoryUlong 24 #endif 25 26 /* Version Data */ 27 #undef __MSVCRT__ 28 #include <psdk/ntverp.h> 29 30 /* DDK/IFS/NDK Headers */ 31 #define _REALLY_GET_CALLERS_CALLER 32 #include <excpt.h> 33 #include <ntdef.h> 34 #include <ntifs.h> 35 #include <wdmguid.h> 36 #include <diskguid.h> 37 #include <arc/arc.h> 38 #include <mountmgr.h> 39 #undef NTHALAPI 40 #define NTHALAPI __declspec(dllimport) 41 #include <ndk/asm.h> 42 #include <ndk/cctypes.h> 43 #include <ndk/cmfuncs.h> 44 #include <ndk/dbgkfuncs.h> 45 #include <ndk/exfuncs.h> 46 #include <ndk/halfuncs.h> 47 #include <ndk/inbvfuncs.h> 48 #include <ndk/iofuncs.h> 49 #include <ndk/kdfuncs.h> 50 #include <ndk/kefuncs.h> 51 #include <ndk/ldrfuncs.h> 52 #include <ndk/lpcfuncs.h> 53 #include <ndk/mmfuncs.h> 54 #include <ndk/muptypes.h> 55 #include <ndk/obfuncs.h> 56 #include <ndk/pofuncs.h> 57 #include <ndk/psfuncs.h> 58 #include <ndk/rtlfuncs.h> 59 #include <ndk/sefuncs.h> 60 #include <ndk/vftypes.h> 61 #undef TEXT 62 #define TEXT(s) L##s 63 #include <regstr.h> 64 #include <ntstrsafe.h> 65 #include <ntpoapi.h> 66 #define ENABLE_INTSAFE_SIGNED_FUNCTIONS 67 #include <ntintsafe.h> 68 #undef ENABLE_INTSAFE_SIGNED_FUNCTIONS 69 70 /* C Headers */ 71 #include <stdlib.h> 72 #include <stdio.h> 73 #include <ctype.h> 74 #include <malloc.h> 75 #include <wchar.h> 76 77 /* SEH support with PSEH */ 78 #include <pseh/pseh2.h> 79 80 /* SetupLDR Support */ 81 #include <arc/setupblk.h> 82 83 /* KD Support */ 84 #define NOEXTAPI 85 #include <windbgkd.h> 86 #include <wdbgexts.h> 87 #ifdef KDBG 88 #define KdDebuggerInitialize0 KdpDebuggerInitialize0 89 #define KdDebuggerInitialize1 KdpDebuggerInitialize1 90 #define KdSendPacket KdpSendPacket 91 #define KdReceivePacket KdpReceivePacket 92 #endif 93 #include <kddll.h> 94 #ifdef __ROS_ROSSYM__ 95 #include <reactos/rossym.h> 96 #endif 97 98 /* PNP GUIDs */ 99 #include <umpnpmgr/sysguid.h> 100 101 /* SRM header */ 102 #include <srmp.h> 103 104 #define ExRaiseStatus RtlRaiseStatus 105 106 /* Also defined in fltkernel.h, but we don't want the entire header */ 107 #ifndef Add2Ptr 108 #define Add2Ptr(P,I) ((PVOID)((PUCHAR)(P) + (I))) 109 #endif 110 #ifndef PtrOffset 111 #define PtrOffset(B,O) ((ULONG)((ULONG_PTR)(O) - (ULONG_PTR)(B))) 112 #endif 113 114 /* MAX_PATH is a Win32 concept, it doesn't belong in the kernel */ 115 #define MAX_WIN32_PATH 260 116 C_ASSERT(MAX_WIN32_PATH == MAX_PATH); 117 #undef MAX_PATH 118 119 /* Internal Headers */ 120 #include "config.h" 121 #include "internal/ntoskrnl.h" 122 123 #include <reactos/probe.h> 124 #include "internal/probe.h" 125 #include "resource.h" 126 127 /* Internal Ps alignment probing header */ 128 #include "internal/ps_i.h" 129 130 #ifdef _MSC_VER 131 # pragma section("INITDATA", read,write,discard) 132 #endif 133 134 #endif /* _NTOSKRNL_PCH */ 135