Rev 2726 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2726 | Rev 2782 | ||
---|---|---|---|
1 | #ifndef _EFILIB_INCLUDE_ |
1 | #ifndef _EFILIB_INCLUDE_ |
2 | #define _EFILIB_INCLUDE_ |
2 | #define _EFILIB_INCLUDE_ |
3 | 3 | ||
4 | /*++ |
4 | /*++ |
5 | 5 | ||
6 | Copyright (c) 2000 Intel Corporation |
6 | Copyright (c) 2000 Intel Corporation |
7 | 7 | ||
8 | Module Name: |
8 | Module Name: |
9 | 9 | ||
10 | efilib.h |
10 | efilib.h |
11 | 11 | ||
12 | Abstract: |
12 | Abstract: |
13 | 13 | ||
14 | EFI library functions |
14 | EFI library functions |
15 | 15 | ||
16 | 16 | ||
17 | 17 | ||
18 | Revision History |
18 | Revision History |
19 | 19 | ||
20 | --*/ |
20 | --*/ |
21 | 21 | ||
22 | #include "efidebug.h" |
22 | #include "efidebug.h" |
23 | #include "efipart.h" |
23 | #include "efipart.h" |
24 | #include "efilibplat.h" |
24 | #include "efilibplat.h" |
25 | #include "efilink.h" |
25 | #include "efilink.h" |
26 | #include "efirtlib.h" |
26 | #include "efirtlib.h" |
27 | #include "pci22.h" |
27 | #include "pci22.h" |
28 | #include "libsmbios.h" |
28 | #include "libsmbios.h" |
29 | 29 | ||
30 | // |
30 | // |
31 | // Public read-only data in the EFI library |
31 | // Public read-only data in the EFI library |
32 | // |
32 | // |
33 | 33 | ||
34 | extern EFI_SYSTEM_TABLE *ST; |
34 | extern EFI_SYSTEM_TABLE *ST; |
35 | extern EFI_BOOT_SERVICES *BS; |
35 | extern EFI_BOOT_SERVICES *BS; |
36 | extern EFI_RUNTIME_SERVICES *RT; |
36 | extern EFI_RUNTIME_SERVICES *RT; |
37 | 37 | ||
38 | extern EFI_GUID DevicePathProtocol; |
38 | extern EFI_GUID DevicePathProtocol; |
39 | extern EFI_GUID LoadedImageProtocol; |
39 | extern EFI_GUID LoadedImageProtocol; |
40 | extern EFI_GUID TextInProtocol; |
40 | extern EFI_GUID TextInProtocol; |
41 | extern EFI_GUID TextOutProtocol; |
41 | extern EFI_GUID TextOutProtocol; |
42 | extern EFI_GUID BlockIoProtocol; |
42 | extern EFI_GUID BlockIoProtocol; |
43 | extern EFI_GUID DiskIoProtocol; |
43 | extern EFI_GUID DiskIoProtocol; |
44 | extern EFI_GUID FileSystemProtocol; |
44 | extern EFI_GUID FileSystemProtocol; |
45 | extern EFI_GUID LoadFileProtocol; |
45 | extern EFI_GUID LoadFileProtocol; |
46 | extern EFI_GUID DeviceIoProtocol; |
46 | extern EFI_GUID DeviceIoProtocol; |
47 | extern EFI_GUID VariableStoreProtocol; |
47 | extern EFI_GUID VariableStoreProtocol; |
48 | extern EFI_GUID LegacyBootProtocol; |
48 | extern EFI_GUID LegacyBootProtocol; |
49 | extern EFI_GUID UnicodeCollationProtocol; |
49 | extern EFI_GUID UnicodeCollationProtocol; |
50 | extern EFI_GUID SerialIoProtocol; |
50 | extern EFI_GUID SerialIoProtocol; |
51 | extern EFI_GUID VgaClassProtocol; |
51 | extern EFI_GUID VgaClassProtocol; |
52 | extern EFI_GUID TextOutSpliterProtocol; |
52 | extern EFI_GUID TextOutSpliterProtocol; |
53 | extern EFI_GUID ErrorOutSpliterProtocol; |
53 | extern EFI_GUID ErrorOutSpliterProtocol; |
54 | extern EFI_GUID TextInSpliterProtocol; |
54 | extern EFI_GUID TextInSpliterProtocol; |
55 | extern EFI_GUID SimpleNetworkProtocol; |
55 | extern EFI_GUID SimpleNetworkProtocol; |
56 | extern EFI_GUID PxeBaseCodeProtocol; |
56 | extern EFI_GUID PxeBaseCodeProtocol; |
57 | extern EFI_GUID PxeCallbackProtocol; |
57 | extern EFI_GUID PxeCallbackProtocol; |
58 | extern EFI_GUID NetworkInterfaceIdentifierProtocol; |
58 | extern EFI_GUID NetworkInterfaceIdentifierProtocol; |
59 | extern EFI_GUID UiProtocol; |
59 | extern EFI_GUID UiProtocol; |
60 | extern EFI_GUID InternalShellProtocol; |
60 | extern EFI_GUID InternalShellProtocol; |
61 | 61 | ||
62 | extern EFI_GUID EfiGlobalVariable; |
62 | extern EFI_GUID EfiGlobalVariable; |
63 | extern EFI_GUID GenericFileInfo; |
63 | extern EFI_GUID GenericFileInfo; |
64 | extern EFI_GUID FileSystemInfo; |
64 | extern EFI_GUID FileSystemInfo; |
65 | extern EFI_GUID FileSystemVolumeLabelInfo; |
65 | extern EFI_GUID FileSystemVolumeLabelInfo; |
66 | extern EFI_GUID PcAnsiProtocol; |
66 | extern EFI_GUID PcAnsiProtocol; |
67 | extern EFI_GUID Vt100Protocol; |
67 | extern EFI_GUID Vt100Protocol; |
68 | extern EFI_GUID NullGuid; |
68 | extern EFI_GUID NullGuid; |
69 | extern EFI_GUID UnknownDevice; |
69 | extern EFI_GUID UnknownDevice; |
70 | 70 | ||
71 | extern EFI_GUID EfiPartTypeSystemPartitionGuid; |
71 | extern EFI_GUID EfiPartTypeSystemPartitionGuid; |
72 | extern EFI_GUID EfiPartTypeLegacyMbrGuid; |
72 | extern EFI_GUID EfiPartTypeLegacyMbrGuid; |
73 | 73 | ||
74 | extern EFI_GUID MpsTableGuid; |
74 | extern EFI_GUID MpsTableGuid; |
75 | extern EFI_GUID AcpiTableGuid; |
75 | extern EFI_GUID AcpiTableGuid; |
76 | extern EFI_GUID SMBIOSTableGuid; |
76 | extern EFI_GUID SMBIOSTableGuid; |
77 | extern EFI_GUID SalSystemTableGuid; |
77 | extern EFI_GUID SalSystemTableGuid; |
78 | 78 | ||
79 | // |
79 | // |
80 | // EFI Variable strings |
80 | // EFI Variable strings |
81 | // |
81 | // |
82 | #define LOAD_OPTION_ACTIVE 0x00000001 |
82 | #define LOAD_OPTION_ACTIVE 0x00000001 |
83 | 83 | ||
84 | #define VarLanguageCodes L"LangCodes" |
84 | #define VarLanguageCodes L"LangCodes" |
85 | #define VarLanguage L"Lang" |
85 | #define VarLanguage L"Lang" |
86 | #define VarTimeout L"Timeout" |
86 | #define VarTimeout L"Timeout" |
87 | #define VarConsoleInp L"ConIn" |
87 | #define VarConsoleInp L"ConIn" |
88 | #define VarConsoleOut L"ConOut" |
88 | #define VarConsoleOut L"ConOut" |
89 | #define VarErrorOut L"ErrOut" |
89 | #define VarErrorOut L"ErrOut" |
90 | #define VarBootOption L"Boot%04x" |
90 | #define VarBootOption L"Boot%04x" |
91 | #define VarBootOrder L"BootOrder" |
91 | #define VarBootOrder L"BootOrder" |
92 | #define VarBootNext L"BootNext" |
92 | #define VarBootNext L"BootNext" |
93 | #define VarBootCurrent L"BootCurrent" |
93 | #define VarBootCurrent L"BootCurrent" |
94 | #define VarDriverOption L"Driver%04x" |
94 | #define VarDriverOption L"Driver%04x" |
95 | #define VarDriverOrder L"DriverOrder" |
95 | #define VarDriverOrder L"DriverOrder" |
96 | #define VarConsoleInpDev L"ConInDev" |
96 | #define VarConsoleInpDev L"ConInDev" |
97 | #define VarConsoleOutDev L"ConOutDev" |
97 | #define VarConsoleOutDev L"ConOutDev" |
98 | #define VarErrorOutDev L"ErrOutDev" |
98 | #define VarErrorOutDev L"ErrOutDev" |
99 | 99 | ||
100 | #define LanguageCodeEnglish "eng" |
100 | #define LanguageCodeEnglish "eng" |
101 | 101 | ||
102 | extern EFI_DEVICE_PATH RootDevicePath[]; |
102 | extern EFI_DEVICE_PATH RootDevicePath[]; |
103 | extern EFI_DEVICE_PATH EndDevicePath[]; |
103 | extern EFI_DEVICE_PATH EndDevicePath[]; |
104 | extern EFI_DEVICE_PATH EndInstanceDevicePath[]; |
104 | extern EFI_DEVICE_PATH EndInstanceDevicePath[]; |
105 | 105 | ||
106 | // |
106 | // |
107 | // Other public data in the EFI library |
107 | // Other public data in the EFI library |
108 | // |
108 | // |
109 | 109 | ||
110 | extern EFI_MEMORY_TYPE PoolAllocationType; |
110 | extern EFI_MEMORY_TYPE PoolAllocationType; |
111 | 111 | ||
112 | // |
112 | // |
113 | // STATIC - Name is internal to the module |
113 | // STATIC - Name is internal to the module |
114 | // INTERNAL - Name is internal to the component (i.e., directory) |
114 | // INTERNAL - Name is internal to the component (i.e., directory) |
115 | // BOOTSERVCE - Name of a boot service function |
115 | // BOOTSERVCE - Name of a boot service function |
116 | // |
116 | // |
117 | 117 | ||
118 | #define STATIC |
118 | #define STATIC |
119 | #define INTERNAL |
119 | #define INTERNAL |
120 | #define BOOTSERVICE |
120 | #define BOOTSERVICE |
121 | 121 | ||
122 | // |
122 | // |
123 | // Prototypes |
123 | // Prototypes |
124 | // |
124 | // |
125 | 125 | ||
126 | VOID |
126 | VOID |
127 | InitializeLib ( |
127 | InitializeLib ( |
128 | IN EFI_HANDLE ImageHandle, |
128 | IN EFI_HANDLE ImageHandle, |
129 | IN EFI_SYSTEM_TABLE *SystemTable |
129 | IN EFI_SYSTEM_TABLE *SystemTable |
130 | ); |
130 | ); |
131 | 131 | ||
132 | VOID |
132 | VOID |
133 | InitializeUnicodeSupport ( |
133 | InitializeUnicodeSupport ( |
134 | CHAR8 *LangCode |
134 | CHAR8 *LangCode |
135 | ); |
135 | ); |
136 | 136 | ||
137 | VOID |
137 | VOID |
138 | EFIDebugVariable ( |
138 | EFIDebugVariable ( |
139 | VOID |
139 | VOID |
140 | ); |
140 | ); |
141 | 141 | ||
142 | VOID |
142 | VOID |
143 | SetCrc ( |
143 | SetCrc ( |
144 | IN OUT EFI_TABLE_HEADER *Hdr |
144 | IN OUT EFI_TABLE_HEADER *Hdr |
145 | ); |
145 | ); |
146 | 146 | ||
147 | VOID |
147 | VOID |
148 | SetCrcAltSize ( |
148 | SetCrcAltSize ( |
149 | IN UINTN Size, |
149 | IN UINTN Size, |
150 | IN OUT EFI_TABLE_HEADER *Hdr |
150 | IN OUT EFI_TABLE_HEADER *Hdr |
151 | ); |
151 | ); |
152 | 152 | ||
153 | BOOLEAN |
153 | BOOLEAN |
154 | CheckCrc ( |
154 | CheckCrc ( |
155 | IN UINTN MaxSize, |
155 | IN UINTN MaxSize, |
156 | IN OUT EFI_TABLE_HEADER *Hdr |
156 | IN OUT EFI_TABLE_HEADER *Hdr |
157 | ); |
157 | ); |
158 | 158 | ||
159 | BOOLEAN |
159 | BOOLEAN |
160 | CheckCrcAltSize ( |
160 | CheckCrcAltSize ( |
161 | IN UINTN MaxSize, |
161 | IN UINTN MaxSize, |
162 | IN UINTN Size, |
162 | IN UINTN Size, |
163 | IN OUT EFI_TABLE_HEADER *Hdr |
163 | IN OUT EFI_TABLE_HEADER *Hdr |
164 | ); |
164 | ); |
165 | 165 | ||
166 | UINT32 |
166 | UINT32 |
167 | CalculateCrc ( |
167 | CalculateCrc ( |
168 | UINT8 *pt, |
168 | UINT8 *pt, |
169 | UINTN Size |
169 | UINTN Size |
170 | ); |
170 | ); |
171 | 171 | ||
172 | VOID |
172 | VOID |
173 | ZeroMem ( |
173 | ZeroMem ( |
174 | IN VOID *Buffer, |
174 | IN VOID *Buffer, |
175 | IN UINTN Size |
175 | IN UINTN Size |
176 | ); |
176 | ); |
177 | 177 | ||
178 | VOID |
178 | VOID |
179 | SetMem ( |
179 | SetMem ( |
180 | IN VOID *Buffer, |
180 | IN VOID *Buffer, |
181 | IN UINTN Size, |
181 | IN UINTN Size, |
182 | IN UINT8 Value |
182 | IN UINT8 Value |
183 | ); |
183 | ); |
184 | 184 | ||
185 | VOID |
185 | VOID |
186 | CopyMem ( |
186 | CopyMem ( |
187 | IN VOID *Dest, |
187 | IN VOID *Dest, |
188 | IN VOID *Src, |
188 | IN VOID *Src, |
189 | IN UINTN len |
189 | IN UINTN len |
190 | ); |
190 | ); |
191 | 191 | ||
192 | INTN |
192 | INTN |
193 | CompareMem ( |
193 | CompareMem ( |
194 | IN VOID *Dest, |
194 | IN VOID *Dest, |
195 | IN VOID *Src, |
195 | IN VOID *Src, |
196 | IN UINTN len |
196 | IN UINTN len |
197 | ); |
197 | ); |
198 | 198 | ||
199 | INTN |
199 | INTN |
200 | StrCmp ( |
200 | StrCmp ( |
201 | IN CHAR16 *s1, |
201 | IN CHAR16 *s1, |
202 | IN CHAR16 *s2 |
202 | IN CHAR16 *s2 |
203 | ); |
203 | ); |
204 | 204 | ||
205 | INTN |
205 | INTN |
206 | StrnCmp ( |
206 | StrnCmp ( |
207 | IN CHAR16 *s1, |
207 | IN CHAR16 *s1, |
208 | IN CHAR16 *s2, |
208 | IN CHAR16 *s2, |
209 | IN UINTN len |
209 | IN UINTN len |
210 | ); |
210 | ); |
211 | 211 | ||
212 | INTN |
212 | INTN |
213 | StriCmp ( |
213 | StriCmp ( |
214 | IN CHAR16 *s1, |
214 | IN CHAR16 *s1, |
215 | IN CHAR16 *s2 |
215 | IN CHAR16 *s2 |
216 | ); |
216 | ); |
217 | 217 | ||
218 | VOID |
218 | VOID |
219 | StrLwr ( |
219 | StrLwr ( |
220 | IN CHAR16 *Str |
220 | IN CHAR16 *Str |
221 | ); |
221 | ); |
222 | 222 | ||
223 | VOID |
223 | VOID |
224 | StrUpr ( |
224 | StrUpr ( |
225 | IN CHAR16 *Str |
225 | IN CHAR16 *Str |
226 | ); |
226 | ); |
227 | 227 | ||
228 | VOID |
228 | VOID |
229 | StrCpy ( |
229 | StrCpy ( |
230 | IN CHAR16 *Dest, |
230 | IN CHAR16 *Dest, |
231 | IN CHAR16 *Src |
231 | IN CHAR16 *Src |
232 | ); |
232 | ); |
233 | 233 | ||
234 | VOID |
234 | VOID |
235 | StrCat ( |
235 | StrCat ( |
236 | IN CHAR16 *Dest, |
236 | IN CHAR16 *Dest, |
237 | IN CHAR16 *Src |
237 | IN CHAR16 *Src |
238 | ); |
238 | ); |
239 | 239 | ||
240 | UINTN |
240 | UINTN |
241 | StrLen ( |
241 | StrLen ( |
242 | IN CHAR16 *s1 |
242 | IN CHAR16 *s1 |
243 | ); |
243 | ); |
244 | 244 | ||
245 | UINTN |
245 | UINTN |
246 | StrSize ( |
246 | StrSize ( |
247 | IN CHAR16 *s1 |
247 | IN CHAR16 *s1 |
248 | ); |
248 | ); |
249 | 249 | ||
250 | CHAR16 * |
250 | CHAR16 * |
251 | StrDuplicate ( |
251 | StrDuplicate ( |
252 | IN CHAR16 *Src |
252 | IN CHAR16 *Src |
253 | ); |
253 | ); |
254 | 254 | ||
255 | UINTN |
255 | UINTN |
256 | strlena ( |
256 | strlena ( |
257 | IN CHAR8 *s1 |
257 | IN CHAR8 *s1 |
258 | ); |
258 | ); |
259 | 259 | ||
260 | UINTN |
260 | UINTN |
261 | strcmpa ( |
261 | strcmpa ( |
262 | IN CHAR8 *s1, |
262 | IN CHAR8 *s1, |
263 | IN CHAR8 *s2 |
263 | IN CHAR8 *s2 |
264 | ); |
264 | ); |
265 | 265 | ||
266 | UINTN |
266 | UINTN |
267 | strncmpa ( |
267 | strncmpa ( |
268 | IN CHAR8 *s1, |
268 | IN CHAR8 *s1, |
269 | IN CHAR8 *s2, |
269 | IN CHAR8 *s2, |
270 | IN UINTN len |
270 | IN UINTN len |
271 | ); |
271 | ); |
272 | 272 | ||
273 | UINTN |
273 | UINTN |
274 | xtoi ( |
274 | xtoi ( |
275 | CHAR16 *str |
275 | CHAR16 *str |
276 | ); |
276 | ); |
277 | 277 | ||
278 | UINTN |
278 | UINTN |
279 | Atoi ( |
279 | Atoi ( |
280 | CHAR16 *str |
280 | CHAR16 *str |
281 | ); |
281 | ); |
282 | 282 | ||
283 | BOOLEAN |
283 | BOOLEAN |
284 | MetaMatch ( |
284 | MetaMatch ( |
285 | IN CHAR16 *String, |
285 | IN CHAR16 *String, |
286 | IN CHAR16 *Pattern |
286 | IN CHAR16 *Pattern |
287 | ); |
287 | ); |
288 | 288 | ||
289 | BOOLEAN |
289 | BOOLEAN |
290 | MetaiMatch ( |
290 | MetaiMatch ( |
291 | IN CHAR16 *String, |
291 | IN CHAR16 *String, |
292 | IN CHAR16 *Pattern |
292 | IN CHAR16 *Pattern |
293 | ); |
293 | ); |
294 | 294 | ||
295 | UINT64 |
295 | UINT64 |
296 | LShiftU64 ( |
296 | LShiftU64 ( |
297 | IN UINT64 Operand, |
297 | IN UINT64 Operand, |
298 | IN UINTN Count |
298 | IN UINTN Count |
299 | ); |
299 | ); |
300 | 300 | ||
301 | UINT64 |
301 | UINT64 |
302 | RShiftU64 ( |
302 | RShiftU64 ( |
303 | IN UINT64 Operand, |
303 | IN UINT64 Operand, |
304 | IN UINTN Count |
304 | IN UINTN Count |
305 | ); |
305 | ); |
306 | 306 | ||
307 | UINT64 |
307 | UINT64 |
308 | MultU64x32 ( |
308 | MultU64x32 ( |
309 | IN UINT64 Multiplicand, |
309 | IN UINT64 Multiplicand, |
310 | IN UINTN Multiplier |
310 | IN UINTN Multiplier |
311 | ); |
311 | ); |
312 | 312 | ||
313 | UINT64 |
313 | UINT64 |
314 | DivU64x32 ( |
314 | DivU64x32 ( |
315 | IN UINT64 Dividend, |
315 | IN UINT64 Dividend, |
316 | IN UINTN Divisor, |
316 | IN UINTN Divisor, |
317 | OUT UINTN *Remainder OPTIONAL |
317 | OUT UINTN *Remainder OPTIONAL |
318 | ); |
318 | ); |
319 | 319 | ||
320 | VOID |
320 | VOID |
321 | InitializeLock ( |
321 | InitializeLock ( |
322 | IN OUT FLOCK *Lock, |
322 | IN OUT FLOCK *Lock, |
323 | IN EFI_TPL Priority |
323 | IN EFI_TPL Priority |
324 | ); |
324 | ); |
325 | 325 | ||
326 | VOID |
326 | VOID |
327 | AcquireLock ( |
327 | AcquireLock ( |
328 | IN FLOCK *Lock |
328 | IN FLOCK *Lock |
329 | ); |
329 | ); |
330 | 330 | ||
331 | VOID |
331 | VOID |
332 | ReleaseLock ( |
332 | ReleaseLock ( |
333 | IN FLOCK *Lock |
333 | IN FLOCK *Lock |
334 | ); |
334 | ); |
335 | 335 | ||
336 | 336 | ||
337 | INTN |
337 | INTN |
338 | CompareGuid( |
338 | CompareGuid( |
339 | IN EFI_GUID *Guid1, |
339 | IN EFI_GUID *Guid1, |
340 | IN EFI_GUID *Guid2 |
340 | IN EFI_GUID *Guid2 |
341 | ); |
341 | ); |
342 | 342 | ||
343 | VOID * |
343 | VOID * |
344 | AllocatePool ( |
344 | AllocatePool ( |
345 | IN UINTN Size |
345 | IN UINTN Size |
346 | ); |
346 | ); |
347 | 347 | ||
348 | VOID * |
348 | VOID * |
349 | AllocateZeroPool ( |
349 | AllocateZeroPool ( |
350 | IN UINTN Size |
350 | IN UINTN Size |
351 | ); |
351 | ); |
352 | 352 | ||
353 | VOID * |
353 | VOID * |
354 | ReallocatePool ( |
354 | ReallocatePool ( |
355 | IN VOID *OldPool, |
355 | IN VOID *OldPool, |
356 | IN UINTN OldSize, |
356 | IN UINTN OldSize, |
357 | IN UINTN NewSize |
357 | IN UINTN NewSize |
358 | ); |
358 | ); |
359 | 359 | ||
360 | VOID |
360 | VOID |
361 | FreePool ( |
361 | FreePool ( |
362 | IN VOID *p |
362 | IN VOID *p |
363 | ); |
363 | ); |
364 | 364 | ||
365 | 365 | ||
366 | VOID |
366 | VOID |
367 | Output ( |
367 | Output ( |
368 | IN CHAR16 *Str |
368 | IN CHAR16 *Str |
369 | ); |
369 | ); |
370 | 370 | ||
371 | VOID |
371 | VOID |
372 | Input ( |
372 | Input ( |
373 | IN CHAR16 *Prompt OPTIONAL, |
373 | IN CHAR16 *Prompt OPTIONAL, |
374 | OUT CHAR16 *InStr, |
374 | OUT CHAR16 *InStr, |
375 | IN UINTN StrLen |
375 | IN UINTN StrLen |
376 | ); |
376 | ); |
377 | 377 | ||
378 | VOID |
378 | VOID |
379 | IInput ( |
379 | IInput ( |
380 | IN SIMPLE_TEXT_OUTPUT_INTERFACE *ConOut, |
380 | IN SIMPLE_TEXT_OUTPUT_INTERFACE *ConOut, |
381 | IN SIMPLE_INPUT_INTERFACE *ConIn, |
381 | IN SIMPLE_INPUT_INTERFACE *ConIn, |
382 | IN CHAR16 *Prompt OPTIONAL, |
382 | IN CHAR16 *Prompt OPTIONAL, |
383 | OUT CHAR16 *InStr, |
383 | OUT CHAR16 *InStr, |
384 | IN UINTN StrLen |
384 | IN UINTN StrLen |
385 | ); |
385 | ); |
386 | 386 | ||
387 | UINTN |
387 | UINTN |
388 | Print ( |
388 | Print ( |
389 | IN CHAR16 *fmt, |
389 | IN CHAR16 *fmt, |
390 | ... |
390 | ... |
391 | ); |
391 | ); |
392 | 392 | ||
393 | UINTN |
393 | UINTN |
394 | SPrint ( |
394 | SPrint ( |
395 | OUT CHAR16 *Str, |
395 | OUT CHAR16 *Str, |
396 | IN UINTN StrSize, |
396 | IN UINTN StrSize, |
397 | IN CHAR16 *fmt, |
397 | IN CHAR16 *fmt, |
398 | ... |
398 | ... |
399 | ); |
399 | ); |
400 | 400 | ||
401 | CHAR16 * |
401 | CHAR16 * |
402 | PoolPrint ( |
402 | PoolPrint ( |
403 | IN CHAR16 *fmt, |
403 | IN CHAR16 *fmt, |
404 | ... |
404 | ... |
405 | ); |
405 | ); |
406 | 406 | ||
407 | typedef struct { |
407 | typedef struct { |
408 | CHAR16 *str; |
408 | CHAR16 *str; |
409 | UINTN len; |
409 | UINTN len; |
410 | UINTN maxlen; |
410 | UINTN maxlen; |
411 | } POOL_PRINT; |
411 | } POOL_PRINT; |
412 | 412 | ||
413 | CHAR16 * |
413 | CHAR16 * |
414 | CatPrint ( |
414 | CatPrint ( |
415 | IN OUT POOL_PRINT *Str, |
415 | IN OUT POOL_PRINT *Str, |
416 | IN CHAR16 *fmt, |
416 | IN CHAR16 *fmt, |
417 | ... |
417 | ... |
418 | ); |
418 | ); |
419 | 419 | ||
420 | UINTN |
420 | UINTN |
421 | PrintAt ( |
421 | PrintAt ( |
422 | IN UINTN Column, |
422 | IN UINTN Column, |
423 | IN UINTN Row, |
423 | IN UINTN Row, |
424 | IN CHAR16 *fmt, |
424 | IN CHAR16 *fmt, |
425 | ... |
425 | ... |
426 | ); |
426 | ); |
427 | 427 | ||
428 | UINTN |
428 | UINTN |
429 | IPrint ( |
429 | IPrint ( |
430 | IN SIMPLE_TEXT_OUTPUT_INTERFACE *Out, |
430 | IN SIMPLE_TEXT_OUTPUT_INTERFACE *Out, |
431 | IN CHAR16 *fmt, |
431 | IN CHAR16 *fmt, |
432 | ... |
432 | ... |
433 | ); |
433 | ); |
434 | 434 | ||
435 | UINTN |
435 | UINTN |
436 | IPrintAt ( |
436 | IPrintAt ( |
437 | IN SIMPLE_TEXT_OUTPUT_INTERFACE *Out, |
437 | IN SIMPLE_TEXT_OUTPUT_INTERFACE *Out, |
438 | IN UINTN Column, |
438 | IN UINTN Column, |
439 | IN UINTN Row, |
439 | IN UINTN Row, |
440 | IN CHAR16 *fmt, |
440 | IN CHAR16 *fmt, |
441 | ... |
441 | ... |
442 | ); |
442 | ); |
443 | 443 | ||
444 | UINTN |
444 | UINTN |
445 | APrint ( |
445 | APrint ( |
446 | IN CHAR8 *fmt, |
446 | IN CHAR8 *fmt, |
447 | ... |
447 | ... |
448 | ); |
448 | ); |
449 | 449 | ||
450 | VOID |
450 | VOID |
451 | ValueToHex ( |
451 | ValueToHex ( |
452 | IN CHAR16 *Buffer, |
452 | IN CHAR16 *Buffer, |
453 | IN UINT64 v |
453 | IN UINT64 v |
454 | ); |
454 | ); |
455 | 455 | ||
456 | VOID |
456 | VOID |
457 | ValueToString ( |
457 | ValueToString ( |
458 | IN CHAR16 *Buffer, |
458 | IN CHAR16 *Buffer, |
459 | IN BOOLEAN Comma, |
459 | IN BOOLEAN Comma, |
460 | IN INT64 v |
460 | IN INT64 v |
461 | ); |
461 | ); |
462 | 462 | ||
463 | VOID |
463 | VOID |
464 | TimeToString ( |
464 | TimeToString ( |
465 | OUT CHAR16 *Buffer, |
465 | OUT CHAR16 *Buffer, |
466 | IN EFI_TIME *Time |
466 | IN EFI_TIME *Time |
467 | ); |
467 | ); |
468 | 468 | ||
469 | VOID |
469 | VOID |
470 | GuidToString ( |
470 | GuidToString ( |
471 | OUT CHAR16 *Buffer, |
471 | OUT CHAR16 *Buffer, |
472 | IN EFI_GUID *Guid |
472 | IN EFI_GUID *Guid |
473 | ); |
473 | ); |
474 | 474 | ||
475 | VOID |
475 | VOID |
476 | StatusToString ( |
476 | StatusToString ( |
477 | OUT CHAR16 *Buffer, |
477 | OUT CHAR16 *Buffer, |
478 | EFI_STATUS Status |
478 | EFI_STATUS Status |
479 | ); |
479 | ); |
480 | 480 | ||
481 | VOID |
481 | VOID |
482 | DumpHex ( |
482 | DumpHex ( |
483 | IN UINTN Indent, |
483 | IN UINTN Indent, |
484 | IN UINTN Offset, |
484 | IN UINTN Offset, |
485 | IN UINTN DataSize, |
485 | IN UINTN DataSize, |
486 | IN VOID *UserData |
486 | IN VOID *UserData |
487 | ); |
487 | ); |
488 | 488 | ||
489 | BOOLEAN |
489 | BOOLEAN |
490 | GrowBuffer( |
490 | GrowBuffer( |
491 | IN OUT EFI_STATUS *Status, |
491 | IN OUT EFI_STATUS *Status, |
492 | IN OUT VOID **Buffer, |
492 | IN OUT VOID **Buffer, |
493 | IN UINTN BufferSize |
493 | IN UINTN BufferSize |
494 | ); |
494 | ); |
495 | 495 | ||
496 | EFI_MEMORY_DESCRIPTOR * |
496 | EFI_MEMORY_DESCRIPTOR * |
497 | LibMemoryMap ( |
497 | LibMemoryMap ( |
498 | OUT UINTN *NoEntries, |
498 | OUT UINTN *NoEntries, |
499 | OUT UINTN *MapKey, |
499 | OUT UINTN *MapKey, |
500 | OUT UINTN *DescriptorSize, |
500 | OUT UINTN *DescriptorSize, |
501 | OUT UINT32 *DescriptorVersion |
501 | OUT UINT32 *DescriptorVersion |
502 | ); |
502 | ); |
503 | 503 | ||
504 | VOID * |
504 | VOID * |
505 | LibGetVariable ( |
505 | LibGetVariable ( |
506 | IN CHAR16 *Name, |
506 | IN CHAR16 *Name, |
507 | IN EFI_GUID *VendorGuid |
507 | IN EFI_GUID *VendorGuid |
508 | ); |
508 | ); |
509 | 509 | ||
510 | VOID * |
510 | VOID * |
511 | LibGetVariableAndSize ( |
511 | LibGetVariableAndSize ( |
512 | IN CHAR16 *Name, |
512 | IN CHAR16 *Name, |
513 | IN EFI_GUID *VendorGuid, |
513 | IN EFI_GUID *VendorGuid, |
514 | OUT UINTN *VarSize |
514 | OUT UINTN *VarSize |
515 | ); |
515 | ); |
516 | 516 | ||
517 | EFI_STATUS |
517 | EFI_STATUS |
518 | LibDeleteVariable ( |
518 | LibDeleteVariable ( |
519 | IN CHAR16 *VarName, |
519 | IN CHAR16 *VarName, |
520 | IN EFI_GUID *VarGuid |
520 | IN EFI_GUID *VarGuid |
521 | ); |
521 | ); |
522 | 522 | ||
523 | EFI_STATUS |
523 | EFI_STATUS |
524 | LibInsertToTailOfBootOrder ( |
524 | LibInsertToTailOfBootOrder ( |
525 | IN UINT16 BootOption, |
525 | IN UINT16 BootOption, |
526 | IN BOOLEAN OnlyInsertIfEmpty |
526 | IN BOOLEAN OnlyInsertIfEmpty |
527 | ); |
527 | ); |
528 | 528 | ||
529 | EFI_STATUS |
529 | EFI_STATUS |
530 | LibLocateProtocol ( |
530 | LibLocateProtocol ( |
531 | IN EFI_GUID *ProtocolGuid, |
531 | IN EFI_GUID *ProtocolGuid, |
532 | OUT VOID **Interface |
532 | OUT VOID **Interface |
533 | ); |
533 | ); |
534 | 534 | ||
535 | EFI_STATUS |
535 | EFI_STATUS |
536 | LibLocateHandle ( |
536 | LibLocateHandle ( |
537 | IN EFI_LOCATE_SEARCH_TYPE SearchType, |
537 | IN EFI_LOCATE_SEARCH_TYPE SearchType, |
538 | IN EFI_GUID *Protocol OPTIONAL, |
538 | IN EFI_GUID *Protocol OPTIONAL, |
539 | IN VOID *SearchKey OPTIONAL, |
539 | IN VOID *SearchKey OPTIONAL, |
540 | IN OUT UINTN *NoHandles, |
540 | IN OUT UINTN *NoHandles, |
541 | OUT EFI_HANDLE **Buffer |
541 | OUT EFI_HANDLE **Buffer |
542 | ); |
542 | ); |
543 | 543 | ||
544 | EFI_STATUS |
544 | EFI_STATUS |
545 | LibLocateHandleByDiskSignature ( |
545 | LibLocateHandleByDiskSignature ( |
546 | IN UINT8 MBRType, |
546 | IN UINT8 MBRType, |
547 | IN UINT8 SignatureType, |
547 | IN UINT8 SignatureType, |
548 | IN VOID *Signature, |
548 | IN VOID *Signature, |
549 | IN OUT UINTN *NoHandles, |
549 | IN OUT UINTN *NoHandles, |
550 | OUT EFI_HANDLE **Buffer |
550 | OUT EFI_HANDLE **Buffer |
551 | ); |
551 | ); |
552 | 552 | ||
553 | EFI_STATUS |
553 | EFI_STATUS |
554 | LibInstallProtocolInterfaces ( |
554 | LibInstallProtocolInterfaces ( |
555 | IN OUT EFI_HANDLE *Handle, |
555 | IN OUT EFI_HANDLE *Handle, |
556 | ... |
556 | ... |
557 | ); |
557 | ); |
558 | 558 | ||
559 | VOID |
559 | VOID |
560 | LibUninstallProtocolInterfaces ( |
560 | LibUninstallProtocolInterfaces ( |
561 | IN EFI_HANDLE Handle, |
561 | IN EFI_HANDLE Handle, |
562 | ... |
562 | ... |
563 | ); |
563 | ); |
564 | 564 | ||
565 | EFI_STATUS |
565 | EFI_STATUS |
566 | LibReinstallProtocolInterfaces ( |
566 | LibReinstallProtocolInterfaces ( |
567 | IN OUT EFI_HANDLE *Handle, |
567 | IN OUT EFI_HANDLE *Handle, |
568 | ... |
568 | ... |
569 | ); |
569 | ); |
570 | 570 | ||
571 | EFI_EVENT |
571 | EFI_EVENT |
572 | LibCreateProtocolNotifyEvent ( |
572 | LibCreateProtocolNotifyEvent ( |
573 | IN EFI_GUID *ProtocolGuid, |
573 | IN EFI_GUID *ProtocolGuid, |
574 | IN EFI_TPL NotifyTpl, |
574 | IN EFI_TPL NotifyTpl, |
575 | IN EFI_EVENT_NOTIFY NotifyFunction, |
575 | IN EFI_EVENT_NOTIFY NotifyFunction, |
576 | IN VOID *NotifyContext, |
576 | IN VOID *NotifyContext, |
577 | OUT VOID *Registration |
577 | OUT VOID *Registration |
578 | ); |
578 | ); |
579 | 579 | ||
580 | EFI_STATUS |
580 | EFI_STATUS |
581 | WaitForSingleEvent ( |
581 | WaitForSingleEvent ( |
582 | IN EFI_EVENT Event, |
582 | IN EFI_EVENT Event, |
583 | IN UINT64 Timeout OPTIONAL |
583 | IN UINT64 Timeout OPTIONAL |
584 | ); |
584 | ); |
585 | 585 | ||
586 | VOID |
586 | VOID |
587 | WaitForEventWithTimeout ( |
587 | WaitForEventWithTimeout ( |
588 | IN EFI_EVENT Event, |
588 | IN EFI_EVENT Event, |
589 | IN UINTN Timeout, |
589 | IN UINTN Timeout, |
590 | IN UINTN Row, |
590 | IN UINTN Row, |
591 | IN UINTN Column, |
591 | IN UINTN Column, |
592 | IN CHAR16 *String, |
592 | IN CHAR16 *String, |
593 | IN EFI_INPUT_KEY TimeoutKey, |
593 | IN EFI_INPUT_KEY TimeoutKey, |
594 | OUT EFI_INPUT_KEY *Key |
594 | OUT EFI_INPUT_KEY *Key |
595 | ); |
595 | ); |
596 | 596 | ||
597 | EFI_FILE_HANDLE |
597 | EFI_FILE_HANDLE |
598 | LibOpenRoot ( |
598 | LibOpenRoot ( |
599 | IN EFI_HANDLE DeviceHandle |
599 | IN EFI_HANDLE DeviceHandle |
600 | ); |
600 | ); |
601 | 601 | ||
602 | EFI_FILE_INFO * |
602 | EFI_FILE_INFO * |
603 | LibFileInfo ( |
603 | LibFileInfo ( |
604 | IN EFI_FILE_HANDLE FHand |
604 | IN EFI_FILE_HANDLE FHand |
605 | ); |
605 | ); |
606 | 606 | ||
607 | EFI_FILE_SYSTEM_INFO * |
607 | EFI_FILE_SYSTEM_INFO * |
608 | LibFileSystemInfo ( |
608 | LibFileSystemInfo ( |
609 | IN EFI_FILE_HANDLE FHand |
609 | IN EFI_FILE_HANDLE FHand |
610 | ); |
610 | ); |
611 | 611 | ||
612 | EFI_FILE_SYSTEM_VOLUME_LABEL_INFO * |
612 | EFI_FILE_SYSTEM_VOLUME_LABEL_INFO * |
613 | LibFileSystemVolumeLabelInfo ( |
613 | LibFileSystemVolumeLabelInfo ( |
614 | IN EFI_FILE_HANDLE FHand |
614 | IN EFI_FILE_HANDLE FHand |
615 | ); |
615 | ); |
616 | 616 | ||
617 | BOOLEAN |
617 | BOOLEAN |
618 | ValidMBR( |
618 | ValidMBR( |
619 | IN MASTER_BOOT_RECORD *Mbr, |
619 | IN MASTER_BOOT_RECORD *Mbr, |
620 | IN EFI_BLOCK_IO *BlkIo |
620 | IN EFI_BLOCK_IO *BlkIo |
621 | ); |
621 | ); |
622 | 622 | ||
623 | BOOLEAN |
623 | BOOLEAN |
624 | LibMatchDevicePaths ( |
624 | LibMatchDevicePaths ( |
625 | IN EFI_DEVICE_PATH *Multi, |
625 | IN EFI_DEVICE_PATH *Multi, |
626 | IN EFI_DEVICE_PATH *Single |
626 | IN EFI_DEVICE_PATH *Single |
627 | ); |
627 | ); |
628 | 628 | ||
629 | EFI_DEVICE_PATH * |
629 | EFI_DEVICE_PATH * |
630 | LibDuplicateDevicePathInstance ( |
630 | LibDuplicateDevicePathInstance ( |
631 | IN EFI_DEVICE_PATH *DevPath |
631 | IN EFI_DEVICE_PATH *DevPath |
632 | ); |
632 | ); |
633 | 633 | ||
634 | EFI_DEVICE_PATH * |
634 | EFI_DEVICE_PATH * |
635 | DevicePathFromHandle ( |
635 | DevicePathFromHandle ( |
636 | IN EFI_HANDLE Handle |
636 | IN EFI_HANDLE Handle |
637 | ); |
637 | ); |
638 | 638 | ||
639 | EFI_DEVICE_PATH * |
639 | EFI_DEVICE_PATH * |
640 | DevicePathInstance ( |
640 | DevicePathInstance ( |
641 | IN OUT EFI_DEVICE_PATH **DevicePath, |
641 | IN OUT EFI_DEVICE_PATH **DevicePath, |
642 | OUT UINTN *Size |
642 | OUT UINTN *Size |
643 | ); |
643 | ); |
644 | 644 | ||
645 | UINTN |
645 | UINTN |
646 | DevicePathInstanceCount ( |
646 | DevicePathInstanceCount ( |
647 | IN EFI_DEVICE_PATH *DevicePath |
647 | IN EFI_DEVICE_PATH *DevicePath |
648 | ); |
648 | ); |
649 | 649 | ||
650 | EFI_DEVICE_PATH * |
650 | EFI_DEVICE_PATH * |
651 | AppendDevicePath ( |
651 | AppendDevicePath ( |
652 | IN EFI_DEVICE_PATH *Src1, |
652 | IN EFI_DEVICE_PATH *Src1, |
653 | IN EFI_DEVICE_PATH *Src2 |
653 | IN EFI_DEVICE_PATH *Src2 |
654 | ); |
654 | ); |
655 | 655 | ||
656 | EFI_DEVICE_PATH * |
656 | EFI_DEVICE_PATH * |
657 | AppendDevicePathNode ( |
657 | AppendDevicePathNode ( |
658 | IN EFI_DEVICE_PATH *Src1, |
658 | IN EFI_DEVICE_PATH *Src1, |
659 | IN EFI_DEVICE_PATH *Src2 |
659 | IN EFI_DEVICE_PATH *Src2 |
660 | ); |
660 | ); |
661 | 661 | ||
662 | EFI_DEVICE_PATH* |
662 | EFI_DEVICE_PATH* |
663 | AppendDevicePathInstance ( |
663 | AppendDevicePathInstance ( |
664 | IN EFI_DEVICE_PATH *Src, |
664 | IN EFI_DEVICE_PATH *Src, |
665 | IN EFI_DEVICE_PATH *Instance |
665 | IN EFI_DEVICE_PATH *Instance |
666 | ); |
666 | ); |
667 | 667 | ||
668 | EFI_DEVICE_PATH * |
668 | EFI_DEVICE_PATH * |
669 | FileDevicePath ( |
669 | FileDevicePath ( |
670 | IN EFI_HANDLE Device OPTIONAL, |
670 | IN EFI_HANDLE Device OPTIONAL, |
671 | IN CHAR16 *FileName |
671 | IN CHAR16 *FileName |
672 | ); |
672 | ); |
673 | 673 | ||
674 | UINTN |
674 | UINTN |
675 | DevicePathSize ( |
675 | DevicePathSize ( |
676 | IN EFI_DEVICE_PATH *DevPath |
676 | IN EFI_DEVICE_PATH *DevPath |
677 | ); |
677 | ); |
678 | 678 | ||
679 | EFI_DEVICE_PATH * |
679 | EFI_DEVICE_PATH * |
680 | DuplicateDevicePath ( |
680 | DuplicateDevicePath ( |
681 | IN EFI_DEVICE_PATH *DevPath |
681 | IN EFI_DEVICE_PATH *DevPath |
682 | ); |
682 | ); |
683 | 683 | ||
684 | EFI_DEVICE_PATH * |
684 | EFI_DEVICE_PATH * |
685 | UnpackDevicePath ( |
685 | UnpackDevicePath ( |
686 | IN EFI_DEVICE_PATH *DevPath |
686 | IN EFI_DEVICE_PATH *DevPath |
687 | ); |
687 | ); |
688 | 688 | ||
689 | EFI_STATUS |
689 | EFI_STATUS |
690 | LibDevicePathToInterface ( |
690 | LibDevicePathToInterface ( |
691 | IN EFI_GUID *Protocol, |
691 | IN EFI_GUID *Protocol, |
692 | IN EFI_DEVICE_PATH *FilePath, |
692 | IN EFI_DEVICE_PATH *FilePath, |
693 | OUT VOID **Interface |
693 | OUT VOID **Interface |
694 | ); |
694 | ); |
695 | 695 | ||
696 | CHAR16 * |
696 | CHAR16 * |
697 | DevicePathToStr ( |
697 | DevicePathToStr ( |
698 | EFI_DEVICE_PATH *DevPath |
698 | EFI_DEVICE_PATH *DevPath |
699 | ); |
699 | ); |
700 | 700 | ||
701 | // |
701 | // |
702 | // BugBug: I need my own include files |
702 | // BugBug: I need my own include files |
703 | // |
703 | // |
704 | typedef struct { |
704 | typedef struct { |
705 | UINT8 Register; |
705 | UINT8 Register; |
706 | UINT8 Function; |
706 | UINT8 Function; |
707 | UINT8 Device; |
707 | UINT8 Device; |
708 | UINT8 Bus; |
708 | UINT8 Bus; |
709 | UINT32 Reserved; |
709 | UINT32 Reserved; |
710 | } EFI_ADDRESS; |
710 | } EFI_ADDRESS; |
711 | 711 | ||
712 | typedef union { |
712 | typedef union { |
713 | UINT64 Address; |
713 | UINT64 Address; |
714 | EFI_ADDRESS EfiAddress; |
714 | EFI_ADDRESS EfiAddress; |
715 | } EFI_PCI_ADDRESS_UNION; |
715 | } EFI_PCI_ADDRESS_UNION; |
716 | 716 | ||
717 | 717 | ||
718 | EFI_STATUS |
718 | EFI_STATUS |
719 | PciFindDeviceClass ( |
719 | PciFindDeviceClass ( |
720 | IN OUT EFI_PCI_ADDRESS_UNION *Address, |
720 | IN OUT EFI_PCI_ADDRESS_UNION *Address, |
721 | IN UINT8 BaseClass, |
721 | IN UINT8 BaseClass, |
722 | IN UINT8 SubClass |
722 | IN UINT8 SubClass |
723 | ); |
723 | ); |
724 | 724 | ||
725 | EFI_STATUS |
725 | EFI_STATUS |
726 | PciFindDevice ( |
726 | PciFindDevice ( |
727 | IN OUT EFI_PCI_ADDRESS_UNION *DeviceAddress, |
727 | IN OUT EFI_PCI_ADDRESS_UNION *DeviceAddress, |
728 | IN UINT16 VendorId, |
728 | IN UINT16 VendorId, |
729 | IN UINT16 DeviceId, |
729 | IN UINT16 DeviceId, |
730 | IN OUT PCI_TYPE00 *Pci |
730 | IN OUT PCI_TYPE00 *Pci |
731 | ); |
731 | ); |
732 | 732 | ||
733 | // |
733 | // |
734 | // SIMPLE_READ_FILE object used to access files |
734 | // SIMPLE_READ_FILE object used to access files |
735 | // |
735 | // |
736 | 736 | ||
737 | typedef VOID *SIMPLE_READ_FILE; |
737 | typedef VOID *SIMPLE_READ_FILE; |
738 | 738 | ||
739 | EFI_STATUS |
739 | EFI_STATUS |
740 | OpenSimpleReadFile ( |
740 | OpenSimpleReadFile ( |
741 | IN BOOLEAN BootPolicy, |
741 | IN BOOLEAN BootPolicy, |
742 | IN VOID *SourceBuffer OPTIONAL, |
742 | IN VOID *SourceBuffer OPTIONAL, |
743 | IN UINTN SourceSize, |
743 | IN UINTN SourceSize, |
744 | IN OUT EFI_DEVICE_PATH **FilePath, |
744 | IN OUT EFI_DEVICE_PATH **FilePath, |
745 | OUT EFI_HANDLE *DeviceHandle, |
745 | OUT EFI_HANDLE *DeviceHandle, |
746 | OUT SIMPLE_READ_FILE *SimpleReadHandle |
746 | OUT SIMPLE_READ_FILE *SimpleReadHandle |
747 | ); |
747 | ); |
748 | 748 | ||
749 | EFI_STATUS |
749 | EFI_STATUS |
750 | ReadSimpleReadFile ( |
750 | ReadSimpleReadFile ( |
751 | IN SIMPLE_READ_FILE SimpleReadHandle, |
751 | IN SIMPLE_READ_FILE SimpleReadHandle, |
752 | IN UINTN Offset, |
752 | IN UINTN Offset, |
753 | IN OUT UINTN *ReadSize, |
753 | IN OUT UINTN *ReadSize, |
754 | OUT VOID *Buffer |
754 | OUT VOID *Buffer |
755 | ); |
755 | ); |
756 | 756 | ||
757 | 757 | ||
758 | VOID |
758 | VOID |
759 | CloseSimpleReadFile ( |
759 | CloseSimpleReadFile ( |
760 | IN SIMPLE_READ_FILE SimpleReadHandle |
760 | IN SIMPLE_READ_FILE SimpleReadHandle |
761 | ); |
761 | ); |
762 | 762 | ||
763 | VOID |
763 | VOID |
764 | InitializeGuid ( |
764 | InitializeGuid ( |
765 | VOID |
765 | VOID |
766 | ); |
766 | ); |
767 | 767 | ||
768 | UINT8 |
768 | UINT8 |
769 | DecimaltoBCD( |
769 | DecimaltoBCD( |
770 | IN UINT8 DecValue |
770 | IN UINT8 DecValue |
771 | ); |
771 | ); |
772 | 772 | ||
773 | UINT8 |
773 | UINT8 |
774 | BCDtoDecimal( |
774 | BCDtoDecimal( |
775 | IN UINT8 BcdValue |
775 | IN UINT8 BcdValue |
776 | ); |
776 | ); |
777 | 777 | ||
778 | EFI_STATUS |
778 | EFI_STATUS |
779 | LibGetSystemConfigurationTable( |
779 | LibGetSystemConfigurationTable( |
780 | IN EFI_GUID *TableGuid, |
780 | IN EFI_GUID *TableGuid, |
781 | IN OUT VOID **Table |
781 | IN OUT VOID **Table |
782 | ); |
782 | ); |
783 | 783 | ||
784 | BOOLEAN |
784 | BOOLEAN |
785 | LibIsValidTextGraphics ( |
785 | LibIsValidTextGraphics ( |
786 | IN CHAR16 Graphic, |
786 | IN CHAR16 Graphic, |
787 | OUT CHAR8 *PcAnsi, OPTIONAL |
787 | OUT CHAR8 *PcAnsi, OPTIONAL |
788 | OUT CHAR8 *Ascii OPTIONAL |
788 | OUT CHAR8 *Ascii OPTIONAL |
789 | ); |
789 | ); |
790 | 790 | ||
791 | BOOLEAN |
791 | BOOLEAN |
792 | IsValidAscii ( |
792 | IsValidAscii ( |
793 | IN CHAR16 Ascii |
793 | IN CHAR16 Ascii |
794 | ); |
794 | ); |
795 | 795 | ||
796 | BOOLEAN |
796 | BOOLEAN |
797 | IsValidEfiCntlChar ( |
797 | IsValidEfiCntlChar ( |
798 | IN CHAR16 c |
798 | IN CHAR16 c |
799 | ); |
799 | ); |
800 | 800 | ||
801 | CHAR16 * |
801 | CHAR16 * |
802 | LibGetUiString ( |
802 | LibGetUiString ( |
803 | IN EFI_HANDLE Handle, |
803 | IN EFI_HANDLE Handle, |
804 | IN UI_STRING_TYPE StringType, |
804 | IN UI_STRING_TYPE StringType, |
805 | IN ISO_639_2 *LangCode, |
805 | IN ISO_639_2 *LangCode, |
806 | IN BOOLEAN ReturnDevicePathStrOnMismatch |
806 | IN BOOLEAN ReturnDevicePathStrOnMismatch |
807 | ); |
807 | ); |
808 | 808 | ||
809 | CHAR8* |
809 | CHAR8* |
810 | LibGetSmbiosString ( |
810 | LibGetSmbiosString ( |
811 | IN SMBIOS_STRUCTURE_POINTER *Smbios, |
811 | IN SMBIOS_STRUCTURE_POINTER *Smbios, |
812 | IN UINT16 StringNumber |
812 | IN UINT16 StringNumber |
813 | ); |
813 | ); |
814 | 814 | ||
815 | EFI_STATUS |
815 | EFI_STATUS |
816 | LibGetSmbiosSystemGuidAndSerialNumber ( |
816 | LibGetSmbiosSystemGuidAndSerialNumber ( |
817 | IN EFI_GUID *SystemGuid, |
817 | IN EFI_GUID *SystemGuid, |
818 | OUT CHAR8 **SystemSerialNumber |
818 | OUT CHAR8 **SystemSerialNumber |
819 | ); |
819 | ); |
820 | 820 | ||
821 | 821 | ||
822 | EFI_STATUS |
822 | EFI_STATUS |
823 | InitializeGlobalIoDevice ( |
823 | InitializeGlobalIoDevice ( |
824 | IN EFI_DEVICE_PATH *DevicePath, |
824 | IN EFI_DEVICE_PATH *DevicePath, |
825 | IN EFI_GUID *Protocol, |
825 | IN EFI_GUID *Protocol, |
826 | IN CHAR8 *ErrorStr, |
826 | IN CHAR8 *ErrorStr, |
827 | OUT EFI_DEVICE_IO_INTERFACE **GlobalIoFncs |
827 | OUT EFI_DEVICE_IO_INTERFACE **GlobalIoFncs |
828 | ); |
828 | ); |
829 | 829 | ||
830 | UINT32 |
830 | UINT32 |
831 | ReadPort ( |
831 | ReadPort ( |
832 | IN EFI_DEVICE_IO_INTERFACE *GlobalIoFncs, |
832 | IN EFI_DEVICE_IO_INTERFACE *GlobalIoFncs, |
833 | IN EFI_IO_WIDTH Width, |
833 | IN EFI_IO_WIDTH Width, |
834 | IN UINTN Port |
834 | IN UINTN Port |
835 | ); |
835 | ); |
836 | 836 | ||
837 | UINT32 |
837 | UINT32 |
838 | WritePort ( |
838 | WritePort ( |
839 | IN EFI_DEVICE_IO_INTERFACE *GlobalIoFncs, |
839 | IN EFI_DEVICE_IO_INTERFACE *GlobalIoFncs, |
840 | IN EFI_IO_WIDTH Width, |
840 | IN EFI_IO_WIDTH Width, |
841 | IN UINTN Port, |
841 | IN UINTN Port, |
842 | IN UINTN Data |
842 | IN UINTN Data |
843 | ); |
843 | ); |
844 | 844 | ||
845 | UINT32 |
845 | UINT32 |
846 | ReadPciConfig ( |
846 | ReadPciConfig ( |
847 | IN EFI_DEVICE_IO_INTERFACE *GlobalIoFncs, |
847 | IN EFI_DEVICE_IO_INTERFACE *GlobalIoFncs, |
848 | IN EFI_IO_WIDTH Width, |
848 | IN EFI_IO_WIDTH Width, |
849 | IN UINTN Port |
849 | IN UINTN Port |
850 | ); |
850 | ); |
851 | 851 | ||
852 | UINT32 |
852 | UINT32 |
853 | WritePciConfig ( |
853 | WritePciConfig ( |
854 | IN EFI_DEVICE_IO_INTERFACE *GlobalIoFncs, |
854 | IN EFI_DEVICE_IO_INTERFACE *GlobalIoFncs, |
855 | IN EFI_IO_WIDTH Width, |
855 | IN EFI_IO_WIDTH Width, |
856 | IN UINTN Port, |
856 | IN UINTN Port, |
857 | IN UINTN Data |
857 | IN UINTN Data |
858 | ); |
858 | ); |
859 | 859 | ||
860 | extern EFI_DEVICE_IO_INTERFACE *GlobalIoFncs; |
860 | extern EFI_DEVICE_IO_INTERFACE *GlobalIoFncs; |
861 | 861 | ||
862 | #define outp(_Port, _DataByte) (UINT8)WritePort(GlobalIoFncs, IO_UINT8, (UINTN)_Port, (UINTN)_DataByte) |
862 | #define outp(_Port, _DataByte) (UINT8)WritePort(GlobalIoFncs, IO_UINT8, (UINTN)_Port, (UINTN)_DataByte) |
863 | #define inp(_Port) (UINT8)ReadPort(GlobalIoFncs, IO_UINT8, (UINTN)_Port) |
863 | #define inp(_Port) (UINT8)ReadPort(GlobalIoFncs, IO_UINT8, (UINTN)_Port) |
864 | #define outpw(_Port, _DataByte) (UINT16)WritePort(GlobalIoFncs, IO_UINT16, (UINTN)_Port, (UINTN)_DataByte) |
864 | #define outpw(_Port, _DataByte) (UINT16)WritePort(GlobalIoFncs, IO_UINT16, (UINTN)_Port, (UINTN)_DataByte) |
865 | #define inpw(_Port) (UINT16)ReadPort(GlobalIoFncs, IO_UINT16, (UINTN)_Port) |
865 | #define inpw(_Port) (UINT16)ReadPort(GlobalIoFncs, IO_UINT16, (UINTN)_Port) |
866 | #define outpd(_Port, _DataByte) (UINT32)WritePort(GlobalIoFncs, IO_UINT32, (UINTN)_Port, (UINTN)_DataByte) |
866 | #define outpd(_Port, _DataByte) (UINT32)WritePort(GlobalIoFncs, IO_UINT32, (UINTN)_Port, (UINTN)_DataByte) |
867 | #define inpd(_Port) (UINT32)ReadPort(GlobalIoFncs, IO_UINT32, (UINTN)_Port) |
867 | #define inpd(_Port) (UINT32)ReadPort(GlobalIoFncs, IO_UINT32, (UINTN)_Port) |
868 | 868 | ||
869 | #define writepci8(_Addr, _DataByte) (UINT8)WritePciConfig(GlobalIoFncs, IO_UINT8, (UINTN)_Addr, (UINTN)_DataByte) |
869 | #define writepci8(_Addr, _DataByte) (UINT8)WritePciConfig(GlobalIoFncs, IO_UINT8, (UINTN)_Addr, (UINTN)_DataByte) |
870 | #define readpci8(_Addr) (UINT8)ReadPciConfig(GlobalIoFncs, IO_UINT8, (UINTN)_Addr) |
870 | #define readpci8(_Addr) (UINT8)ReadPciConfig(GlobalIoFncs, IO_UINT8, (UINTN)_Addr) |
871 | #define writepci16(_Addr, _DataByte) (UINT16)WritePciConfig(GlobalIoFncs, IO_UINT16, (UINTN)_Addr, (UINTN)_DataByte) |
871 | #define writepci16(_Addr, _DataByte) (UINT16)WritePciConfig(GlobalIoFncs, IO_UINT16, (UINTN)_Addr, (UINTN)_DataByte) |
872 | #define readpci16(_Addr) (UINT16)ReadPciConfig(GlobalIoFncs, IO_UINT16, (UINTN)_Addr) |
872 | #define readpci16(_Addr) (UINT16)ReadPciConfig(GlobalIoFncs, IO_UINT16, (UINTN)_Addr) |
873 | #define writepci32(_Addr, _DataByte) (UINT32)WritePciConfig(GlobalIoFncs, IO_UINT32, (UINTN)_Addr, (UINTN)_DataByte) |
873 | #define writepci32(_Addr, _DataByte) (UINT32)WritePciConfig(GlobalIoFncs, IO_UINT32, (UINTN)_Addr, (UINTN)_DataByte) |
874 | #define readpci32(_Addr) (UINT32)ReadPciConfig(GlobalIoFncs, IO_UINT32, (UINTN)_Addr) |
874 | #define readpci32(_Addr) (UINT32)ReadPciConfig(GlobalIoFncs, IO_UINT32, (UINTN)_Addr) |
875 | 875 | ||
876 | #define Pause() WaitForSingleEvent (ST->ConIn->WaitForKey, 0) |
876 | #define Pause() WaitForSingleEvent (ST->ConIn->WaitForKey, 0) |
877 | #define Port80(_PostCode) GlobalIoFncs->Io.Write (GlobalIoFncs, IO_UINT16, (UINT64)0x80, 1, &(_PostCode)) |
877 | #define Port80(_PostCode) GlobalIoFncs->Io.Write (GlobalIoFncs, IO_UINT16, (UINT64)0x80, 1, &(_PostCode)) |
878 | 878 | ||
879 | #endif |
879 | #endif |
880 | 880 |