Fix some NDK things and missing w32api defines.
[reactos.git] / reactos / include / ndk / haltypes.h
1 /*
2 * PROJECT: ReactOS Native Headers
3 * FILE: include/ndk/haltypes.h
4 * PURPOSE: Definitions for HAL/BLDR types not defined in DDK/IFS
5 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
6 * UPDATE HISTORY:
7 * Created 06/10/04
8 */
9 #ifndef _HALTYPES_H
10 #define _HALTYPES_H
11
12 /* DEPENDENCIES **************************************************************/
13
14 /* EXPORTED DATA *************************************************************/
15 extern ULONG NTOSAPI KdComPortInUse;
16
17 /* CONSTANTS *****************************************************************/
18
19 /* Boot Flags */
20 #define MB_FLAGS_MEM_INFO (0x1)
21 #define MB_FLAGS_BOOT_DEVICE (0x2)
22 #define MB_FLAGS_COMMAND_LINE (0x4)
23 #define MB_FLAGS_MODULE_INFO (0x8)
24 #define MB_FLAGS_AOUT_SYMS (0x10)
25 #define MB_FLAGS_ELF_SYMS (0x20)
26 #define MB_FLAGS_MMAP_INFO (0x40)
27 #define MB_FLAGS_DRIVES_INFO (0x80)
28 #define MB_FLAGS_CONFIG_TABLE (0x100)
29 #define MB_FLAGS_BOOT_LOADER_NAME (0x200)
30 #define MB_FLAGS_APM_TABLE (0x400)
31 #define MB_FLAGS_GRAPHICS_TABLE (0x800)
32 #define MB_FLAGS_ACPI_TABLE (0x1000)
33
34 /* ENUMERATIONS **************************************************************/
35 typedef enum _FIRMWARE_ENTRY
36 {
37 HalHaltRoutine,
38 HalPowerDownRoutine,
39 HalRestartRoutine,
40 HalRebootRoutine,
41 HalInteractiveModeRoutine,
42 HalMaximumRoutine
43 } FIRMWARE_REENTRY, *PFIRMWARE_REENTRY;
44
45 /* TYPES *********************************************************************/
46
47 typedef struct _HAL_PRIVATE_DISPATCH
48 {
49 ULONG Version;
50 } HAL_PRIVATE_DISPATCH, *PHAL_PRIVATE_DISPATCH;
51
52 #ifdef __NTOSKRNL__
53 extern NTOSAPI HAL_PRIVATE_DISPATCH HalPrivateDispatchTable;
54 #else
55 extern NTOSAPI PHAL_PRIVATE_DISPATCH HalPrivateDispatchTable;
56 #endif
57
58 #define HAL_PRIVATE_DISPATCH_VERSION 1
59
60 typedef struct _LOADER_MODULE
61 {
62 ULONG ModStart;
63 ULONG ModEnd;
64 ULONG String;
65 ULONG Reserved;
66 } LOADER_MODULE, *PLOADER_MODULE;
67
68 typedef struct _LOADER_PARAMETER_BLOCK
69 {
70 ULONG Flags;
71 ULONG MemLower;
72 ULONG MemHigher;
73 ULONG BootDevice;
74 ULONG CommandLine;
75 ULONG ModsCount;
76 ULONG ModsAddr;
77 UCHAR Syms[12];
78 ULONG MmapLength;
79 ULONG MmapAddr;
80 ULONG DrivesCount;
81 ULONG DrivesAddr;
82 ULONG ConfigTable;
83 ULONG BootLoaderName;
84 ULONG PageDirectoryStart;
85 ULONG PageDirectoryEnd;
86 ULONG KernelBase;
87 } LOADER_PARAMETER_BLOCK, *PLOADER_PARAMETER_BLOCK;
88
89 #endif
90