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