xref: /reactos/ntoskrnl/include/ntoskrnl.h (revision e1ef0787)
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