2 * Various useful prototypes
5 #ifndef __INCLUDE_INTERNAL_NTOSKRNL_H
6 #define __INCLUDE_INTERNAL_NTOSKRNL_H
10 #include <ddk/ntddk.h>
15 * Use these to place a function in a specific section of the executable
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"))
23 * Defines a descriptor as it appears in the processor tables
25 typedef struct _DESCRIPTOR
29 } __attribute__ ((packed)) IDT_DESCRIPTOR, GDT_DESCRIPTOR;
31 extern IDT_DESCRIPTOR KiIdt[256];
32 //extern GDT_DESCRIPTOR KiGdt[256];
35 VOID NtInitializeEventImplementation(VOID);
39 * Initalization functions (called once by main())
41 VOID MmInitSystem(ULONG Phase, PLOADER_PARAMETER_BLOCK LoaderBlock, ULONG LastKernelAddress);
45 VOID CmInitializeRegistry(VOID);
46 VOID CmInit2(PCHAR CommandLine);
47 VOID CmShutdownRegistry(VOID);
48 VOID CmImportHive(PCHAR ChunkBase, ULONG ChunkSize);
49 VOID KdInitSystem(ULONG Reserved, PLOADER_PARAMETER_BLOCK LoaderBlock);
51 VOID RtlpInitNlsTables(VOID);
53 NTSTATUS RtlpInitNlsSections(ULONG Mod1Start,
65 #define MM_STACK_SIZE (3*4096)
67 #endif /* INCLUDE_INTERNAL_NTOSKRNL_H */