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 /* INCLUDES ******************************************************************/ 10 11 /* ARM Bringup Hack */ 12 #ifdef _M_ARM 13 #define DbgPrint DbgPrintEarly 14 #endif 15 16 /* WDK hacks */ 17 #ifdef _M_AMD64 18 #define IoAllocateAdapterChannel _IoAllocateAdapterChannel 19 #define KeGetCurrentThread _KeGetCurrentThread 20 #define RtlFillMemoryUlong _RtlFillMemoryUlong 21 #endif 22 23 /* Version Data */ 24 #undef __MSVCRT__ 25 #include <psdk/ntverp.h> 26 27 /* DDK/IFS/NDK Headers */ 28 #define _REALLY_GET_CALLERS_CALLER 29 #include <excpt.h> 30 #include <ntdef.h> 31 #include <ntifs.h> 32 #include <wdmguid.h> 33 #include <arc/arc.h> 34 #include <mountmgr.h> 35 #undef NTHALAPI 36 #define NTHALAPI __declspec(dllimport) 37 #include <ndk/asm.h> 38 #include <ndk/cctypes.h> 39 #include <ndk/cmfuncs.h> 40 #include <ndk/dbgkfuncs.h> 41 #include <ndk/exfuncs.h> 42 #include <ndk/halfuncs.h> 43 #include <ndk/inbvfuncs.h> 44 #include <ndk/iofuncs.h> 45 #include <ndk/kdfuncs.h> 46 #include <ndk/kefuncs.h> 47 #include <ndk/ldrfuncs.h> 48 #include <ndk/lpcfuncs.h> 49 #include <ndk/mmfuncs.h> 50 #include <ndk/obfuncs.h> 51 #include <ndk/pofuncs.h> 52 #include <ndk/psfuncs.h> 53 #include <ndk/rtlfuncs.h> 54 #include <ndk/sefuncs.h> 55 #include <ndk/vftypes.h> 56 #undef TEXT 57 #define TEXT(s) L##s 58 #include <regstr.h> 59 #include <ntstrsafe.h> 60 #include <ntpoapi.h> 61 62 /* C Headers */ 63 #include <stdlib.h> 64 #include <stdio.h> 65 #include <ctype.h> 66 #include <malloc.h> 67 #include <wchar.h> 68 69 /* SEH support with PSEH */ 70 #include <pseh/pseh2.h> 71 72 /* ReactOS Headers */ 73 #include <reactos/bugcodes.h> 74 75 /* SetupLDR Support */ 76 #include <arc/setupblk.h> 77 78 /* KD Support */ 79 #define NOEXTAPI 80 #include <windbgkd.h> 81 #include <wdbgexts.h> 82 #include <kddll.h> 83 #ifndef _WINKD_ 84 #include <reactos/rossym.h> 85 #endif 86 87 /* PNP GUIDs */ 88 #include <umpnpmgr/sysguid.h> 89 90 // 91 // Define the internal versions of external and public global data 92 // 93 #define IoFileObjectType _IoFileObjectType 94 #define PsThreadType _PsThreadType 95 #define PsProcessType _PsProcessType 96 #define ExEventObjectType _ExEventObjectType 97 #define ExSemaphoreObjectType _ExSemaphoreObjectType 98 #define KdDebuggerEnabled _KdDebuggerEnabled 99 #define KdDebuggerNotPresent _KdDebuggerNotPresent 100 #define NlsOemLeadByteInfo _NlsOemLeadByteInfo 101 extern PUSHORT _NlsOemLeadByteInfo; 102 #define KeNumberProcessors _KeNumberProcessors 103 extern UCHAR _KeNumberProcessors; 104 #define FsRtlLegalAnsiCharacterArray _FsRtlLegalAnsiCharacterArray 105 #undef LEGAL_ANSI_CHARACTER_ARRAY 106 #undef NLS_MB_CODE_PAGE_TAG 107 #undef NLS_OEM_LEAD_BYTE_INFO 108 #define LEGAL_ANSI_CHARACTER_ARRAY FsRtlLegalAnsiCharacterArray 109 #define NLS_MB_CODE_PAGE_TAG NlsMbOemCodePageTag 110 #define NLS_OEM_LEAD_BYTE_INFO _NlsOemLeadByteInfo 111 #undef KD_DEBUGGER_ENABLED 112 #undef KD_DEBUGGER_NOT_PRESENT 113 #define KD_DEBUGGER_ENABLED KdDebuggerEnabled 114 #define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent 115 #define HalDispatchTable _HalDispatchTable 116 #undef HALDISPATCH 117 #define HALDISPATCH (&HalDispatchTable) 118 #define ExRaiseStatus RtlRaiseStatus 119 120 /* Internal Headers */ 121 #include "internal/ntoskrnl.h" 122 #include "config.h" 123 124 #include <reactos/probe.h> 125 #include "internal/probe.h" 126 #include "resource.h" 127 128