update for HEAD-2003050101
[reactos.git] / ntoskrnl / include / internal / ntoskrnl.h
1 /*
2  * Various useful prototypes
3  */
4
5 #ifndef __INCLUDE_INTERNAL_NTOSKRNL_H
6 #define __INCLUDE_INTERNAL_NTOSKRNL_H
7
8 #ifndef __ASM__
9
10 #include <ddk/ntddk.h>
11
12 #include <stdarg.h>
13
14 /*
15  * Use these to place a function in a specific section of the executable
16  */
17 #define PLACE_IN_SECTION(s) __attribute__((section (s)))
18 #define INIT_FUNCTION (PLACE_IN_SECTION("init"))
19 #define PAGE_LOCKED_FUNCTION (PLACE_IN_SECTION("pagelk"))
20 #define PAGE_UNLOCKED_FUNCTION (PLACE_IN_SECTION("pagepo"))
21
22 /*
23  * Defines a descriptor as it appears in the processor tables
24  */
25 typedef struct _DESCRIPTOR
26 {
27   ULONG a;
28   ULONG b;
29 } __attribute__ ((packed)) IDT_DESCRIPTOR, GDT_DESCRIPTOR;
30
31 extern IDT_DESCRIPTOR KiIdt[256];
32 //extern GDT_DESCRIPTOR KiGdt[256];
33
34
35 VOID NtInitializeEventImplementation(VOID);
36 VOID NtInit(VOID);
37
38 /*
39  * Initalization functions (called once by main())
40  */
41 VOID MmInitSystem(ULONG Phase, PLOADER_PARAMETER_BLOCK LoaderBlock, ULONG LastKernelAddress);
42 VOID IoInit(VOID);
43 VOID ObInit(VOID);
44 VOID PsInit(VOID);
45 VOID CmInitializeRegistry(VOID);
46 VOID CmInit2(PCHAR CommandLine);
47 VOID CmShutdownRegistry(VOID);
48 BOOLEAN CmImportSystemHive(PCHAR ChunkBase, ULONG ChunkSize);
49 BOOLEAN CmImportHardwareHive(PCHAR ChunkBase, ULONG ChunkSize);
50 VOID KdInitSystem(ULONG Reserved, PLOADER_PARAMETER_BLOCK LoaderBlock);
51
52 VOID RtlpInitNlsTables(VOID);
53
54 NTSTATUS RtlpInitNlsSections(ULONG Mod1Start,
55                              ULONG Mod1End,
56                              ULONG Mod2Start,
57                              ULONG Mod2End,
58                              ULONG Mod3Start,
59                              ULONG Mod3End);
60
61 #endif /* __ASM__ */
62
63 /*
64  * 
65  */
66 #define MM_STACK_SIZE             (3*4096)
67
68 #endif /* INCLUDE_INTERNAL_NTOSKRNL_H */