- Update NDK to remove zwfuncs.h and place the native functions in their respective...
[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 (FIXME)
31 //
32 #define MB_FLAGS_MEM_INFO (0x1)
33 #define MB_FLAGS_BOOT_DEVICE (0x2)
34 #define MB_FLAGS_COMMAND_LINE (0x4)
35 #define MB_FLAGS_MODULE_INFO (0x8)
36 #define MB_FLAGS_AOUT_SYMS (0x10)
37 #define MB_FLAGS_ELF_SYMS (0x20)
38 #define MB_FLAGS_MMAP_INFO (0x40)
39 #define MB_FLAGS_DRIVES_INFO (0x80)
40 #define MB_FLAGS_CONFIG_TABLE (0x100)
41 #define MB_FLAGS_BOOT_LOADER_NAME (0x200)
42 #define MB_FLAGS_APM_TABLE (0x400)
43 #define MB_FLAGS_GRAPHICS_TABLE (0x800)
44 #define MB_FLAGS_ACPI_TABLE (0x1000)
45
46 //
47 // HalShutdownSystem Types
48 //
49 typedef enum _FIRMWARE_ENTRY
50 {
51 HalHaltRoutine,
52 HalPowerDownRoutine,
53 HalRestartRoutine,
54 HalRebootRoutine,
55 HalInteractiveModeRoutine,
56 HalMaximumRoutine
57 } FIRMWARE_REENTRY, *PFIRMWARE_REENTRY;
58
59 //
60 // Hal Private dispatch Table
61 //
62 #define HAL_PRIVATE_DISPATCH_VERSION 1
63 typedef struct _HAL_PRIVATE_DISPATCH
64 {
65 ULONG Version;
66 } HAL_PRIVATE_DISPATCH, *PHAL_PRIVATE_DISPATCH;
67
68 //
69 // Loader Parameter Block Structures (FIXME)
70 //
71 typedef struct _LOADER_MODULE
72 {
73 ULONG ModStart;
74 ULONG ModEnd;
75 ULONG String;
76 ULONG Reserved;
77 } LOADER_MODULE, *PLOADER_MODULE;
78
79 typedef struct _LOADER_PARAMETER_BLOCK
80 {
81 ULONG Flags;
82 ULONG MemLower;
83 ULONG MemHigher;
84 ULONG BootDevice;
85 ULONG CommandLine;
86 ULONG ModsCount;
87 ULONG ModsAddr;
88 UCHAR Syms[12];
89 ULONG MmapLength;
90 ULONG MmapAddr;
91 ULONG DrivesCount;
92 ULONG DrivesAddr;
93 ULONG ConfigTable;
94 ULONG BootLoaderName;
95 ULONG PageDirectoryStart;
96 ULONG PageDirectoryEnd;
97 ULONG KernelBase;
98 } LOADER_PARAMETER_BLOCK, *PLOADER_PARAMETER_BLOCK;
99
100 //
101 // Kernel Exports
102 //
103 #ifdef __NTOSKRNL__
104 extern HAL_PRIVATE_DISPATCH NTSYSAPI HalPrivateDispatchTable;
105 #else
106 extern PHAL_PRIVATE_DISPATCH NTSYSAPI HalPrivateDispatchTable;
107 #endif
108 extern ULONG NTSYSAPI KdComPortInUse;
109
110 #endif
111 #endif
112