- Removed the Rtlp* string functions from the shared rtl library since they don't...
[reactos.git] / reactos / ntoskrnl / include / internal / ntoskrnl.h
1 #ifndef __INCLUDE_INTERNAL_NTOSKRNL_H
2 #define __INCLUDE_INTERNAL_NTOSKRNL_H
3
4 /*
5 * Use these to place a function in a specific section of the executable
6 */
7 #define PLACE_IN_SECTION(s) __attribute__((section (s)))
8 #define INIT_FUNCTION PLACE_IN_SECTION("init")
9 #define PAGE_LOCKED_FUNCTION PLACE_IN_SECTION("pagelk")
10 #define PAGE_UNLOCKED_FUNCTION PLACE_IN_SECTION("pagepo")
11
12 #ifdef _NTOSKRNL_
13
14 #include "ke.h"
15 #include "i386/mm.h"
16 #include "i386/fpu.h"
17 #include "module.h"
18 #include "ob.h"
19 #include "mm.h"
20 #include "ps.h"
21 #include "cc.h"
22 #include "io.h"
23 #include "po.h"
24 #include "se.h"
25 #include "ldr.h"
26 #include "kd.h"
27 #include "ex.h"
28 #include "xhal.h"
29 #include "v86m.h"
30 #include "fs.h"
31 #include "port.h"
32 #include "nls.h"
33 #ifdef KDBG
34 #include "../kdbg/kdb.h"
35 #endif
36 #include "dbgk.h"
37 #include "tag.h"
38 #include "test.h"
39 #include "inbv.h"
40
41 #include <pshpack1.h>
42 /*
43 * Defines a descriptor as it appears in the processor tables
44 */
45 typedef struct __DESCRIPTOR
46 {
47 ULONG a;
48 ULONG b;
49 } IDT_DESCRIPTOR, GDT_DESCRIPTOR;
50
51 #include <poppack.h>
52
53 extern IDT_DESCRIPTOR KiIdt[256];
54 //extern GDT_DESCRIPTOR KiGdt[256];
55
56 /*
57 * Initalization functions (called once by main())
58 */
59 VOID MmInitSystem(ULONG Phase, PLOADER_PARAMETER_BLOCK LoaderBlock, ULONG LastKernelAddress);
60 VOID IoInit(VOID);
61 VOID IoInit2(BOOLEAN BootLog);
62 VOID STDCALL IoInit3(VOID);
63 VOID ObInit(VOID);
64 VOID PsInit(VOID);
65 VOID CmInitializeRegistry(VOID);
66 VOID STDCALL CmInitHives(BOOLEAN SetupBoot);
67 VOID CmInit2(PCHAR CommandLine);
68 VOID CmShutdownRegistry(VOID);
69 BOOLEAN CmImportSystemHive(PCHAR ChunkBase, ULONG ChunkSize);
70 BOOLEAN CmImportHardwareHive(PCHAR ChunkBase, ULONG ChunkSize);
71 VOID KdInitSystem(ULONG Reserved, PLOADER_PARAMETER_BLOCK LoaderBlock);
72
73 /* FIXME - RtlpCreateUnicodeString is obsolete and should be removed ASAP! */
74 BOOLEAN FASTCALL
75 RtlpCreateUnicodeString(
76 IN OUT PUNICODE_STRING UniDest,
77 IN PCWSTR Source,
78 IN POOL_TYPE PoolType);
79
80 NTSTATUS
81 RtlCaptureUnicodeString(
82 OUT PUNICODE_STRING Dest,
83 IN KPROCESSOR_MODE CurrentMode,
84 IN POOL_TYPE PoolType,
85 IN BOOLEAN CaptureIfKernel,
86 IN PUNICODE_STRING UnsafeSrc
87 );
88
89 VOID
90 RtlReleaseCapturedUnicodeString(
91 IN PUNICODE_STRING CapturedString,
92 IN KPROCESSOR_MODE CurrentMode,
93 IN BOOLEAN CaptureIfKernel
94 );
95
96 #endif
97
98 /*
99 *
100 */
101 #define MM_STACK_SIZE (3*4096)
102
103 #endif /* INCLUDE_INTERNAL_NTOSKRNL_H */