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