Moved interrupt code from hal into kernel
[reactos.git] / reactos / 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 * Maximum size of the kmalloc area (this is totally arbitary)
24 */
25 #define NONPAGED_POOL_SIZE (4*1024*1024)
26
27 /*
28 * Defines a descriptor as it appears in the processor tables
29 */
30 typedef struct
31 {
32 unsigned int a;
33 unsigned int b;
34 } IDT_DESCRIPTOR, GDT_DESCRIPTOR;
35
36 extern IDT_DESCRIPTOR KiIdt[256];
37 //extern GDT_DESCRIPTOR KiGdt[256];
38
39
40 VOID NtInitializeEventImplementation(VOID);
41 VOID NtInit(VOID);
42
43 /*
44 * Initalization functions (called once by main())
45 */
46 VOID MmInitSystem(ULONG Phase, PLOADER_PARAMETER_BLOCK LoaderBlock, ULONG LastKernelAddress);
47 VOID IoInit(VOID);
48 VOID ObInit(VOID);
49 VOID PsInit(VOID);
50 VOID CmInitializeRegistry(VOID);
51 VOID CmImportHive(PCHAR);
52 VOID KdInitSystem(ULONG Reserved, PLOADER_PARAMETER_BLOCK LoaderBlock);
53
54 #endif /* __ASM__ */
55
56 /*
57 *
58 */
59 #define MM_STACK_SIZE (3*4096)
60
61 #endif /* INCLUDE_INTERNAL_NTOSKRNL_H */