Implement IoRegisterDeviceInterface
[reactos.git] / reactos / ntoskrnl / include / ntoskrnl.h
1 #ifndef __INCLUDE_NTOSKRNL_H
2 #define __INCLUDE_NTOSKRNL_H
3
4 #define __NO_CTYPE_INLINES
5
6 /* include the ntoskrnl config.h file */
7 #include "config.h"
8
9 #include <roscfg.h>
10 #include <reactos/version.h>
11 #include <reactos/resource.h>
12 #include <reactos/bugcodes.h>
13 #include <limits.h>
14 #include <stdarg.h>
15 #include <stdlib.h>
16 #include <string.h>
17 #include <wchar.h>
18 #include <roskrnl.h>
19 #include <ntos/minmax.h>
20 #include <ntos/synch.h>
21 #include <ntos/keyboard.h>
22 #include <ntos/ntdef.h>
23 #include <ntos/ntpnp.h>
24 #include <rosrtl/minmax.h>
25 #include <rosrtl/string.h>
26 #include <ddk/halfuncs.h>
27 #include <ddk/kefuncs.h>
28 #include <ddk/pnptypes.h>
29 #include <ddk/pnpfuncs.h>
30 #include <ntdll/ldr.h>
31 #include <internal/ctype.h>
32 #include <internal/ntoskrnl.h>
33 #include <internal/ke.h>
34 #include <internal/i386/segment.h>
35 #include <internal/i386/mm.h>
36 #include <internal/i386/fpu.h>
37 #include <internal/module.h>
38 #include <internal/handle.h>
39 #include <internal/pool.h>
40 #include <internal/ps.h>
41 #include <internal/mm.h>
42 #include <internal/cc.h>
43 #include <internal/io.h>
44 #include <internal/po.h>
45 #include <internal/ob.h>
46 #include <internal/se.h>
47 #include <internal/ldr.h>
48 #include <internal/kd.h>
49 #include <internal/ex.h>
50 #include <internal/ob.h>
51 #include "internal/xhal.h"
52 #include <internal/v86m.h>
53 #include <internal/ifs.h>
54 #include <internal/port.h>
55 #include <internal/nls.h>
56 #include <internal/dbg.h>
57 #include <internal/trap.h>
58 #include <internal/safe.h>
59 #include <internal/test.h>
60 #include <napi/core.h>
61 #include <napi/dbg.h>
62 #include <napi/teb.h>
63 #include <napi/win32.h>
64
65 #include <pseh.h>
66
67 #ifndef RTL_CONSTANT_STRING
68 #define RTL_CONSTANT_STRING(__SOURCE_STRING__) \
69 { \
70 sizeof(__SOURCE_STRING__) - sizeof((__SOURCE_STRING__)[0]), \
71 sizeof(__SOURCE_STRING__), \
72 (__SOURCE_STRING__) \
73 }
74 #endif
75
76 #ifdef DBG
77 #ifndef PAGED_CODE
78 #define PAGED_CODE() \
79 do { \
80 if(KeGetCurrentIrql() > APC_LEVEL) { \
81 DbgPrint("%s:%i: Pagable code called at IRQL > APC_LEVEL (%d)\n", \
82 __FILE__, __LINE__, KeGetCurrentIrql()); \
83 KEBUGCHECK(0); \
84 } \
85 } while(0)
86 #endif
87 #define PAGED_CODE_RTL PAGED_CODE
88 #else
89 #ifndef PAGED_CODE
90 #define PAGED_CODE()
91 #endif
92 #define PAGED_CODE_RTL()
93 #endif
94
95 #endif /* INCLUDE_NTOSKRNL_H */