- Forgot to add the define which enables _REACTOS_
[reactos.git] / reactos / include / ndk / haltypes.h
1 /*++ NDK Version: 0095
2
3 Copyright (c) Alex Ionescu. All rights reserved.
4
5 Header Name:
6
7 haltypes.h
8
9 Abstract:
10
11 Type definitions for the HAL.
12
13 Author:
14
15 Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
16
17 --*/
18
19 #ifndef _HALTYPES_H
20 #define _HALTYPES_H
21
22 //
23 // Dependencies
24 //
25 #include <umtypes.h>
26
27 #ifndef NTOS_MODE_USER
28
29 //
30 // Multi-Boot Flags (REMOVE ME)
31 //
32 #ifdef _REACTOS_
33 #define MB_FLAGS_MEM_INFO (0x1)
34 #define MB_FLAGS_BOOT_DEVICE (0x2)
35 #define MB_FLAGS_COMMAND_LINE (0x4)
36 #define MB_FLAGS_MODULE_INFO (0x8)
37 #define MB_FLAGS_AOUT_SYMS (0x10)
38 #define MB_FLAGS_ELF_SYMS (0x20)
39 #define MB_FLAGS_MMAP_INFO (0x40)
40 #define MB_FLAGS_DRIVES_INFO (0x80)
41 #define MB_FLAGS_CONFIG_TABLE (0x100)
42 #define MB_FLAGS_BOOT_LOADER_NAME (0x200)
43 #define MB_FLAGS_APM_TABLE (0x400)
44 #define MB_FLAGS_GRAPHICS_TABLE (0x800)
45 #define MB_FLAGS_ACPI_TABLE (0x1000)
46 #endif
47
48 //
49 // HalShutdownSystem Types
50 //
51 typedef enum _FIRMWARE_ENTRY
52 {
53 HalHaltRoutine,
54 HalPowerDownRoutine,
55 HalRestartRoutine,
56 HalRebootRoutine,
57 HalInteractiveModeRoutine,
58 HalMaximumRoutine
59 } FIRMWARE_REENTRY, *PFIRMWARE_REENTRY;
60
61 //
62 // Hal Private dispatch Table
63 //
64 #define HAL_PRIVATE_DISPATCH_VERSION 1
65 typedef struct _HAL_PRIVATE_DISPATCH
66 {
67 ULONG Version;
68 } HAL_PRIVATE_DISPATCH, *PHAL_PRIVATE_DISPATCH;
69
70 //
71 // Loader Parameter Block Structures (FIXME)
72 //
73 typedef struct _LOADER_MODULE
74 {
75 ULONG ModStart;
76 ULONG ModEnd;
77 ULONG String;
78 ULONG Reserved;
79 } LOADER_MODULE, *PLOADER_MODULE;
80
81 typedef struct _LOADER_PARAMETER_BLOCK
82 {
83 ULONG Flags;
84 ULONG MemLower;
85 ULONG MemHigher;
86 ULONG BootDevice;
87 ULONG CommandLine;
88 ULONG ModsCount;
89 ULONG ModsAddr;
90 UCHAR Syms[12];
91 ULONG MmapLength;
92 ULONG MmapAddr;
93 ULONG DrivesCount;
94 ULONG DrivesAddr;
95 ULONG ConfigTable;
96 ULONG BootLoaderName;
97 ULONG PageDirectoryStart;
98 ULONG PageDirectoryEnd;
99 ULONG KernelBase;
100 } LOADER_PARAMETER_BLOCK, *PLOADER_PARAMETER_BLOCK;
101
102 //
103 // Kernel Exports
104 //
105 #ifdef __NTOSKRNL__
106 extern HAL_PRIVATE_DISPATCH NTSYSAPI HalPrivateDispatchTable;
107 #else
108 extern PHAL_PRIVATE_DISPATCH NTSYSAPI HalPrivateDispatchTable;
109 #endif
110 extern ULONG NTSYSAPI KdComPortInUse;
111
112 #endif
113 #endif
114