[HEADERS]
[reactos.git] / reactos / ntoskrnl / include / ntoskrnl.h
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 /* Version Data */
17 #undef __MSVCRT__
18 #include <psdk/ntverp.h>
19
20 /* DDK/IFS/NDK Headers */
21 #define _REALLY_GET_CALLERS_CALLER
22 #define SINGLE_GROUP_LEGACY_API
23 #include <excpt.h>
24 #include <ntdef.h>
25 #include <ntifs.h>
26 #include <wdmguid.h>
27 #include <arc/arc.h>
28 #undef NTHALAPI
29 #define NTHALAPI __declspec(dllimport)
30 #include <ntndk.h>
31 #undef TEXT
32 #define TEXT(s) L##s
33 #include <regstr.h>
34
35 /* FIXME: Temporary until Winldr is used */
36 #include <rosldr.h>
37
38 /* C Headers */
39 #include <stdlib.h>
40 #include <stdio.h>
41 #include <ctype.h>
42 #include <malloc.h>
43 #include <wchar.h>
44
45 /* SEH support with PSEH */
46 #include <pseh/pseh2.h>
47
48 /* ReactOS Headers */
49 #include <reactos/buildno.h>
50 #include <reactos/bugcodes.h>
51
52 /* SetupLDR Support */
53 #include <arc/setupblk.h>
54
55 /* KD Support */
56 #define NOEXTAPI
57 #include <windbgkd.h>
58 #include <wdbgexts.h>
59 #include <kddll.h>
60 #ifndef _WINKD_
61 #include <reactos/rossym.h>
62 #endif
63
64 /* PNP GUIDs */
65 #include <umpnpmgr/sysguid.h>
66
67 /* Internal Headers */
68 #include "internal/ntoskrnl.h"
69 #include "config.h"
70
71 #include <reactos/probe.h>
72 #include "internal/probe.h"
73 #include "resource.h"
74
75 //
76 // Define the internal versions of external and public global data
77 //
78 #define IoFileObjectType _IoFileObjectType
79 #define PsThreadType _PsThreadType
80 #define PsProcessType _PsProcessType
81 #define ExEventObjectType _ExEventObjectType
82 #define ExSemaphoreObjectType _ExSemaphoreObjectType
83 #define KdDebuggerEnabled _KdDebuggerEnabled
84 #define KdDebuggerNotPresent _KdDebuggerNotPresent
85 #define NlsOemLeadByteInfo _NlsOemLeadByteInfo
86 extern PUSHORT _NlsOemLeadByteInfo;
87 #define FsRtlLegalAnsiCharacterArray _FsRtlLegalAnsiCharacterArray
88 #undef LEGAL_ANSI_CHARACTER_ARRAY
89 #undef NLS_MB_CODE_PAGE_TAG
90 #undef NLS_OEM_LEAD_BYTE_INFO
91 #define LEGAL_ANSI_CHARACTER_ARRAY FsRtlLegalAnsiCharacterArray
92 #define NLS_MB_CODE_PAGE_TAG NlsMbOemCodePageTag
93 #define NLS_OEM_LEAD_BYTE_INFO _NlsOemLeadByteInfo
94 #undef KD_DEBUGGER_ENABLED
95 #undef KD_DEBUGGER_NOT_PRESENT
96 #define KD_DEBUGGER_ENABLED KdDebuggerEnabled
97 #define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent
98 #define HalDispatchTable _HalDispatchTable
99 #undef HALDISPATCH
100 #define HALDISPATCH (&HalDispatchTable)
101 #define ExRaiseStatus RtlRaiseStatus