8c7bb505498c8927d1979dbf9e013c4970a1f491
[reactos.git] / reactos / include / ndk / halfuncs.h
1 /*++ NDK Version: 0095
2
3 Copyright (c) Alex Ionescu. All rights reserved.
4
5 Header Name:
6
7 halfuncs.h
8
9 Abstract:
10
11 Function definitions for the HAL.
12
13 Author:
14
15 Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
16
17 --*/
18
19 #ifndef _HALFUNCS_H
20 #define _HALFUNCS_H
21
22 //
23 // Dependencies
24 //
25 #include <umtypes.h>
26 #include <haltypes.h>
27
28 #ifndef NTOS_MODE_USER
29
30 //
31 // The DDK steals these away from you.
32 //
33 VOID
34 _enable(
35 VOID
36 );
37 VOID
38 _disable(
39 VOID
40 );
41 #ifdef _MSC_VER
42 #pragma intrinsic(_enable)
43 #pragma intrinsic(_disable)
44 #endif
45
46 //
47 // Display Functions
48 //
49 NTHALAPI
50 BOOLEAN
51 NTAPI
52 HalQueryDisplayOwnership(
53 VOID
54 );
55
56 NTHALAPI
57 VOID
58 NTAPI
59 HalDisplayString(
60 IN PCHAR String
61 );
62
63 NTHALAPI
64 BOOLEAN
65 NTAPI
66 HalQueryDisplayOwnership(
67 VOID
68 );
69
70 NTHALAPI
71 VOID
72 NTAPI
73 HalReleaseDisplayOwnership(
74 VOID
75 );
76
77 //
78 // Initialization Functions
79 //
80 NTHALAPI
81 BOOLEAN
82 NTAPI
83 HalAllProcessorsStarted(
84 VOID
85 );
86
87 NTHALAPI
88 VOID
89 NTAPI
90 HalInitializeProcessor(
91 ULONG ProcessorNumber,
92 PLOADER_PARAMETER_BLOCK LoaderBlock
93 );
94
95 NTHALAPI
96 BOOLEAN
97 NTAPI
98 HalInitSystem(
99 ULONG BootPhase,
100 PLOADER_PARAMETER_BLOCK LoaderBlock
101 );
102
103 NTHALAPI
104 VOID
105 NTAPI
106 HalReturnToFirmware(
107 FIRMWARE_REENTRY Action
108 );
109
110 NTHALAPI
111 BOOLEAN
112 NTAPI
113 HalStartNextProcessor(
114 ULONG Unknown1,
115 ULONG Unknown2
116 );
117
118 //
119 // Interrupt Functions
120 //
121 NTHALAPI
122 BOOLEAN
123 NTAPI
124 HalBeginSystemInterrupt(
125 ULONG Vector,
126 KIRQL Irql,
127 PKIRQL OldIrql
128 );
129
130 NTHALAPI
131 BOOLEAN
132 NTAPI
133 HalDisableSystemInterrupt(
134 ULONG Vector,
135 KIRQL Irql
136 );
137
138 NTHALAPI
139 BOOLEAN
140 NTAPI
141 HalEnableSystemInterrupt(
142 ULONG Vector,
143 KIRQL Irql,
144 KINTERRUPT_MODE InterruptMode
145 );
146
147 NTHALAPI
148 VOID
149 NTAPI
150 HalEndSystemInterrupt(
151 KIRQL Irql,
152 ULONG Vector
153 );
154
155 NTHALAPI
156 BOOLEAN
157 NTAPI
158 HalGetEnvironmentVariable(
159 PCH Name,
160 PCH Value,
161 USHORT ValueLength
162 );
163
164 NTHALAPI
165 VOID
166 NTAPI
167 HalReportResourceUsage(
168 VOID
169 );
170
171 NTHALAPI
172 VOID
173 FASTCALL
174 HalRequestSoftwareInterrupt(
175 KIRQL SoftwareInterruptRequested
176 );
177
178 NTHALAPI
179 VOID
180 NTAPI
181 HalRequestIpi(
182 ULONG Unknown
183 );
184
185 NTHALAPI
186 VOID
187 NTAPI
188 HalHandleNMI(
189 ULONG Unknown
190 );
191
192 //
193 // I/O Functions
194 //
195 NTHALAPI
196 VOID
197 NTAPI
198 IoAssignDriveLetters(
199 struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
200 PSTRING NtDeviceName,
201 PUCHAR NtSystemPath,
202 PSTRING NtSystemPathString
203 );
204
205 //
206 // Environment Functions
207 //
208 NTHALAPI
209 BOOLEAN
210 NTAPI
211 HalSetEnvironmentVariable(
212 IN PCH Name,
213 IN PCH Value
214 );
215
216 #endif
217 #endif