Home | History | Annotate | Line # | Download | only in inc
efilib.h revision 1.1.1.1.36.1
      1  1.1.1.1.36.1  christos /*	$NetBSD: efilib.h,v 1.1.1.1.36.1 2019/06/10 22:08:35 christos 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.1.1.1.36.1  christos #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.1.1.1.36.1  christos #define gST                      ST
     39           1.1  jakllsch extern EFI_BOOT_SERVICES        *BS;
     40  1.1.1.1.36.1  christos #define gBS                      BS
     41           1.1  jakllsch extern EFI_RUNTIME_SERVICES     *RT;
     42  1.1.1.1.36.1  christos #define gRT                      RT
     43           1.1  jakllsch 
     44  1.1.1.1.36.1  christos extern EFI_GUID gEfiDevicePathProtocolGuid;
     45  1.1.1.1.36.1  christos #define DevicePathProtocol gEfiDevicePathProtocolGuid
     46  1.1.1.1.36.1  christos extern EFI_GUID gEfiDevicePathToTextProtocolGuid;
     47  1.1.1.1.36.1  christos #define DevicePathToTextProtocol gEfiDevicePathToTextProtocolGuid
     48  1.1.1.1.36.1  christos extern EFI_GUID gEfiDevicePathFromTextProtocolGuid;
     49  1.1.1.1.36.1  christos #define DevicePathFromTextProtocol gEfiDevicePathFromTextProtocolGuid
     50  1.1.1.1.36.1  christos extern EFI_GUID gEfiLoadedImageProtocolGuid;
     51  1.1.1.1.36.1  christos #define LoadedImageProtocol gEfiLoadedImageProtocolGuid
     52  1.1.1.1.36.1  christos extern EFI_GUID gEfiSimpleTextInProtocolGuid;
     53  1.1.1.1.36.1  christos #define TextInProtocol gEfiSimpleTextInProtocolGuid
     54  1.1.1.1.36.1  christos extern EFI_GUID gEfiSimpleTextOutProtocolGuid;
     55  1.1.1.1.36.1  christos #define TextOutProtocol gEfiSimpleTextOutProtocolGuid
     56  1.1.1.1.36.1  christos extern EFI_GUID gEfiGraphicsOutputProtocolGuid;
     57  1.1.1.1.36.1  christos #define GraphicsOutputProtocol gEfiGraphicsOutputProtocolGuid
     58  1.1.1.1.36.1  christos extern EFI_GUID gEfiEdidDiscoveredProtocolGuid;
     59  1.1.1.1.36.1  christos #define EdidDiscoveredProtocol gEfiEdidDiscoveredProtocolGuid
     60  1.1.1.1.36.1  christos extern EFI_GUID gEfiEdidActiveProtocolGuid;
     61  1.1.1.1.36.1  christos #define EdidActiveProtocol gEfiEdidActiveProtocolGuid
     62  1.1.1.1.36.1  christos extern EFI_GUID gEfiEdidOverrideProtocolGuid;
     63  1.1.1.1.36.1  christos #define EdidOverrideProtocol gEfiEdidOverrideProtocolGuid
     64  1.1.1.1.36.1  christos extern EFI_GUID gEfiBlockIoProtocolGuid;
     65  1.1.1.1.36.1  christos #define BlockIoProtocol gEfiBlockIoProtocolGuid
     66  1.1.1.1.36.1  christos extern EFI_GUID gEfiBlockIo2ProtocolGuid;
     67  1.1.1.1.36.1  christos #define BlockIo2Protocol gEfiBlockIo2ProtocolGuid
     68  1.1.1.1.36.1  christos extern EFI_GUID gEfiDiskIoProtocolGuid;
     69  1.1.1.1.36.1  christos #define DiskIoProtocol gEfiDiskIoProtocolGuid
     70  1.1.1.1.36.1  christos extern EFI_GUID gEfiDiskIo2ProtocolGuid;
     71  1.1.1.1.36.1  christos #define DiskIo2Protocol gEfiDiskIo2ProtocolGuid
     72  1.1.1.1.36.1  christos extern EFI_GUID gEfiSimpleFileSystemProtocolGuid;
     73  1.1.1.1.36.1  christos #define FileSystemProtocol gEfiSimpleFileSystemProtocolGuid
     74  1.1.1.1.36.1  christos extern EFI_GUID gEfiLoadFileProtocolGuid;
     75  1.1.1.1.36.1  christos #define LoadFileProtocol gEfiLoadFileProtocolGuid
     76  1.1.1.1.36.1  christos extern EFI_GUID gEfiDeviceIoProtocolGuid;
     77  1.1.1.1.36.1  christos #define DeviceIoProtocol gEfiDeviceIoProtocolGuid
     78           1.1  jakllsch extern EFI_GUID VariableStoreProtocol;
     79           1.1  jakllsch extern EFI_GUID LegacyBootProtocol;
     80  1.1.1.1.36.1  christos extern EFI_GUID gEfiUnicodeCollationProtocolGuid;
     81  1.1.1.1.36.1  christos #define UnicodeCollationProtocol gEfiUnicodeCollationProtocolGuid
     82  1.1.1.1.36.1  christos extern EFI_GUID gEfiSerialIoProtocolGuid;
     83  1.1.1.1.36.1  christos #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.1.1.1.36.1  christos extern EFI_GUID gEfiSimpleNetworkProtocolGuid;
     89  1.1.1.1.36.1  christos #define SimpleNetworkProtocol gEfiSimpleNetworkProtocolGuid
     90  1.1.1.1.36.1  christos extern EFI_GUID gEfiPxeBaseCodeProtocolGuid;
     91  1.1.1.1.36.1  christos #define PxeBaseCodeProtocol gEfiPxeBaseCodeProtocolGuid
     92  1.1.1.1.36.1  christos extern EFI_GUID gEfiPxeBaseCodeCallbackProtocolGuid;
     93  1.1.1.1.36.1  christos #define PxeCallbackProtocol gEfiPxeBaseCodeCallbackProtocolGuid
     94  1.1.1.1.36.1  christos extern EFI_GUID gEfiNetworkInterfaceIdentifierProtocolGuid;
     95  1.1.1.1.36.1  christos #define NetworkInterfaceIdentifierProtocol gEfiNetworkInterfaceIdentifierProtocolGuid
     96  1.1.1.1.36.1  christos extern EFI_GUID gEFiUiInterfaceProtocolGuid;
     97  1.1.1.1.36.1  christos #define UiProtocol gEFiUiInterfaceProtocolGuid
     98           1.1  jakllsch extern EFI_GUID InternalShellProtocol;
     99  1.1.1.1.36.1  christos extern EFI_GUID gEfiPciIoProtocolGuid;
    100  1.1.1.1.36.1  christos #define PciIoProtocol gEfiPciIoProtocolGuid
    101  1.1.1.1.36.1  christos extern EFI_GUID gEfiPciRootBridgeIoProtocolGuid;
    102  1.1.1.1.36.1  christos extern EFI_GUID gEfiDriverBindingProtocolGuid;
    103  1.1.1.1.36.1  christos #define DriverBindingProtocol gEfiDriverBindingProtocolGuid
    104  1.1.1.1.36.1  christos extern EFI_GUID gEfiComponentNameProtocolGuid;
    105  1.1.1.1.36.1  christos #define ComponentNameProtocol gEfiComponentNameProtocolGuid
    106  1.1.1.1.36.1  christos extern EFI_GUID gEfiComponentName2ProtocolGuid;
    107  1.1.1.1.36.1  christos #define ComponentName2Protocol gEfiComponentName2ProtocolGuid
    108  1.1.1.1.36.1  christos extern EFI_GUID gEfiHashProtocolGuid;
    109  1.1.1.1.36.1  christos #define HashProtocol gEfiHashProtocolGuid
    110  1.1.1.1.36.1  christos extern EFI_GUID gEfiPlatformDriverOverrideProtocolGuid;
    111  1.1.1.1.36.1  christos #define PlatformDriverOverrideProtocol gEfiPlatformDriverOverrideProtocolGuid
    112  1.1.1.1.36.1  christos extern EFI_GUID gEfiBusSpecificDriverOverrideProtocolGuid;
    113  1.1.1.1.36.1  christos #define BusSpecificDriverOverrideProtocol gEfiBusSpecificDriverOverrideProtocolGuid
    114  1.1.1.1.36.1  christos extern EFI_GUID gEfiDriverFamilyOverrideProtocolGuid;
    115  1.1.1.1.36.1  christos #define DriverFamilyOverrideProtocol gEfiDriverFamilyOverrideProtocolGuid
    116  1.1.1.1.36.1  christos extern EFI_GUID gEfiEbcProtocolGuid;
    117  1.1.1.1.36.1  christos 
    118  1.1.1.1.36.1  christos extern EFI_GUID gEfiGlobalVariableGuid;
    119  1.1.1.1.36.1  christos #define EfiGlobalVariable gEfiGlobalVariableGuid
    120  1.1.1.1.36.1  christos extern EFI_GUID gEfiFileInfoGuid;
    121  1.1.1.1.36.1  christos #define GenericFileInfo gEfiFileInfoGuid
    122  1.1.1.1.36.1  christos extern EFI_GUID gEfiFileSystemInfoGuid;
    123  1.1.1.1.36.1  christos #define FileSystemInfo gEfiFileSystemInfoGuid
    124  1.1.1.1.36.1  christos extern EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid;
    125  1.1.1.1.36.1  christos #define FileSystemVolumeLabelInfo gEfiFileSystemVolumeLabelInfoIdGuid
    126  1.1.1.1.36.1  christos extern EFI_GUID gEfiPcAnsiGuid;
    127  1.1.1.1.36.1  christos #define PcAnsiProtocol gEfiPcAnsiGuid
    128  1.1.1.1.36.1  christos extern EFI_GUID gEfiVT100Guid;
    129  1.1.1.1.36.1  christos #define Vt100Protocol gEfiVT100Guid
    130  1.1.1.1.36.1  christos extern EFI_GUID gEfiVT100PlusGuid;
    131  1.1.1.1.36.1  christos 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.1.1.1.36.1  christos extern EFI_GUID SimplePointerProtocol;
    145  1.1.1.1.36.1  christos extern EFI_GUID AbsolutePointerProtocol;
    146  1.1.1.1.36.1  christos 
    147  1.1.1.1.36.1  christos extern EFI_GUID gEfiDebugImageInfoTableGuid;
    148  1.1.1.1.36.1  christos extern EFI_GUID gEfiDebugSupportProtocolGuid;
    149  1.1.1.1.36.1  christos 
    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.1.1.1.36.1  christos Exit(
    215  1.1.1.1.36.1  christos     IN EFI_STATUS   ExitStatus,
    216  1.1.1.1.36.1  christos     IN UINTN        ExitDataSize,
    217  1.1.1.1.36.1  christos     IN CHAR16       *ExitData OPTIONAL
    218  1.1.1.1.36.1  christos     );
    219  1.1.1.1.36.1  christos 
    220  1.1.1.1.36.1  christos INTN
    221  1.1.1.1.36.1  christos GetShellArgcArgv(
    222  1.1.1.1.36.1  christos     EFI_HANDLE ImageHandle,
    223  1.1.1.1.36.1  christos     CHAR16 **Argv[]  /* Statically allocated */
    224  1.1.1.1.36.1  christos     );
    225  1.1.1.1.36.1  christos 
    226  1.1.1.1.36.1  christos 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.1.1.1.36.1  christos     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.1.1.1.36.1  christos     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.1.1.1.36.1  christos     IN CONST VOID     *Dest,
    279  1.1.1.1.36.1  christos     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.1.1.1.36.1  christos     IN CONST CHAR16   *s1,
    286  1.1.1.1.36.1  christos     IN CONST CHAR16   *s2
    287           1.1  jakllsch     );
    288           1.1  jakllsch 
    289           1.1  jakllsch INTN
    290           1.1  jakllsch StrnCmp (
    291  1.1.1.1.36.1  christos     IN CONST CHAR16   *s1,
    292  1.1.1.1.36.1  christos     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.1.1.1.36.1  christos     IN CONST CHAR16   *s1,
    299  1.1.1.1.36.1  christos     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.1.1.1.36.1  christos     IN CONST CHAR16    *Src
    316  1.1.1.1.36.1  christos     );
    317  1.1.1.1.36.1  christos 
    318  1.1.1.1.36.1  christos VOID
    319  1.1.1.1.36.1  christos StrnCpy (
    320  1.1.1.1.36.1  christos     IN CHAR16   *Dest,
    321  1.1.1.1.36.1  christos     IN CONST CHAR16    *Src,
    322  1.1.1.1.36.1  christos     IN UINTN     Len
    323  1.1.1.1.36.1  christos     );
    324  1.1.1.1.36.1  christos 
    325  1.1.1.1.36.1  christos CHAR16 *
    326  1.1.1.1.36.1  christos StpCpy (
    327  1.1.1.1.36.1  christos     IN CHAR16   *Dest,
    328  1.1.1.1.36.1  christos     IN CONST CHAR16    *Src
    329  1.1.1.1.36.1  christos     );
    330  1.1.1.1.36.1  christos 
    331  1.1.1.1.36.1  christos CHAR16 *
    332  1.1.1.1.36.1  christos StpnCpy (
    333  1.1.1.1.36.1  christos     IN CHAR16   *Dest,
    334  1.1.1.1.36.1  christos     IN CONST CHAR16    *Src,
    335  1.1.1.1.36.1  christos     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.1.1.1.36.1  christos     IN CONST CHAR16   *Src
    342  1.1.1.1.36.1  christos     );
    343  1.1.1.1.36.1  christos 
    344  1.1.1.1.36.1  christos VOID
    345  1.1.1.1.36.1  christos StrnCat (
    346  1.1.1.1.36.1  christos     IN CHAR16   *Dest,
    347  1.1.1.1.36.1  christos     IN CONST CHAR16   *Src,
    348  1.1.1.1.36.1  christos     IN UINTN     Len
    349           1.1  jakllsch     );
    350           1.1  jakllsch 
    351           1.1  jakllsch UINTN
    352           1.1  jakllsch StrLen (
    353  1.1.1.1.36.1  christos     IN CONST CHAR16   *s1
    354  1.1.1.1.36.1  christos     );
    355  1.1.1.1.36.1  christos 
    356  1.1.1.1.36.1  christos UINTN
    357  1.1.1.1.36.1  christos StrnLen (
    358  1.1.1.1.36.1  christos     IN CONST CHAR16   *s1,
    359  1.1.1.1.36.1  christos     IN UINTN           Len
    360           1.1  jakllsch     );
    361           1.1  jakllsch 
    362           1.1  jakllsch UINTN
    363           1.1  jakllsch StrSize (
    364  1.1.1.1.36.1  christos     IN CONST CHAR16   *s1
    365           1.1  jakllsch     );
    366           1.1  jakllsch 
    367           1.1  jakllsch CHAR16 *
    368           1.1  jakllsch StrDuplicate (
    369  1.1.1.1.36.1  christos     IN CONST CHAR16   *Src
    370           1.1  jakllsch     );
    371           1.1  jakllsch 
    372           1.1  jakllsch UINTN
    373           1.1  jakllsch strlena (
    374  1.1.1.1.36.1  christos     IN CONST CHAR8    *s1
    375           1.1  jakllsch     );
    376  1.1.1.1.36.1  christos 
    377           1.1  jakllsch UINTN
    378           1.1  jakllsch strcmpa (
    379  1.1.1.1.36.1  christos     IN CONST CHAR8    *s1,
    380  1.1.1.1.36.1  christos     IN CONST CHAR8    *s2
    381           1.1  jakllsch     );
    382           1.1  jakllsch 
    383           1.1  jakllsch UINTN
    384           1.1  jakllsch strncmpa (
    385  1.1.1.1.36.1  christos     IN CONST CHAR8    *s1,
    386  1.1.1.1.36.1  christos     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.1.1.1.36.1  christos     CONST CHAR16      *str
    393           1.1  jakllsch     );
    394           1.1  jakllsch 
    395           1.1  jakllsch UINTN
    396           1.1  jakllsch Atoi (
    397  1.1.1.1.36.1  christos     CONST CHAR16  *str
    398           1.1  jakllsch     );
    399           1.1  jakllsch 
    400  1.1.1.1.36.1  christos 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.1.1.1.36.1  christos 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.1.1.1.36.1  christos     IN CONST CHAR16   *fmt,
    507           1.1  jakllsch     ...
    508           1.1  jakllsch     );
    509           1.1  jakllsch 
    510           1.1  jakllsch UINTN
    511  1.1.1.1.36.1  christos VPrint (
    512  1.1.1.1.36.1  christos     IN CONST CHAR16   *fmt,
    513  1.1.1.1.36.1  christos     va_list           args
    514  1.1.1.1.36.1  christos     );
    515  1.1.1.1.36.1  christos 
    516  1.1.1.1.36.1  christos UINTN
    517           1.1  jakllsch SPrint (
    518  1.1.1.1.36.1  christos     OUT CHAR16        *Str,
    519  1.1.1.1.36.1  christos     IN UINTN          StrSize,
    520  1.1.1.1.36.1  christos     IN CONST CHAR16   *fmt,
    521           1.1  jakllsch     ...
    522           1.1  jakllsch     );
    523           1.1  jakllsch 
    524  1.1.1.1.36.1  christos UINTN
    525  1.1.1.1.36.1  christos VSPrint (
    526  1.1.1.1.36.1  christos     OUT CHAR16        *Str,
    527  1.1.1.1.36.1  christos     IN UINTN          StrSize,
    528  1.1.1.1.36.1  christos     IN CONST CHAR16   *fmt,
    529  1.1.1.1.36.1  christos     va_list           args
    530  1.1.1.1.36.1  christos     );
    531  1.1.1.1.36.1  christos 
    532  1.1.1.1.36.1  christos CHAR16 *
    533  1.1.1.1.36.1  christos VPoolPrint (
    534  1.1.1.1.36.1  christos     IN CONST CHAR16     *fmt,
    535  1.1.1.1.36.1  christos     va_list             args
    536  1.1.1.1.36.1  christos     );
    537  1.1.1.1.36.1  christos 
    538           1.1  jakllsch CHAR16 *
    539           1.1  jakllsch PoolPrint (
    540  1.1.1.1.36.1  christos     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.1.1.1.36.1  christos     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.1.1.1.36.1  christos     IN UINTN         Column,
    560  1.1.1.1.36.1  christos     IN UINTN         Row,
    561  1.1.1.1.36.1  christos     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.1.1.1.36.1  christos     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.1.1.1.36.1  christos     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.1.1.1.36.1  christos     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.1.1.1.36.1  christos #ifndef __NetBSD__
    601  1.1.1.1.36.1  christos VOID
    602  1.1.1.1.36.1  christos FloatToString (
    603  1.1.1.1.36.1  christos     IN CHAR16   *Buffer,
    604  1.1.1.1.36.1  christos     IN BOOLEAN  Comma,
    605  1.1.1.1.36.1  christos     IN double    v
    606  1.1.1.1.36.1  christos     );
    607  1.1.1.1.36.1  christos #endif
    608  1.1.1.1.36.1  christos 
    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.1.1.1.36.1  christos LibSetNVVariable (
    671  1.1.1.1.36.1  christos     IN CHAR16   *VarName,
    672  1.1.1.1.36.1  christos     IN EFI_GUID *VarGuid,
    673  1.1.1.1.36.1  christos     IN UINTN	 DataSize,
    674  1.1.1.1.36.1  christos     IN VOID     *Data
    675  1.1.1.1.36.1  christos     );
    676  1.1.1.1.36.1  christos 
    677  1.1.1.1.36.1  christos EFI_STATUS
    678  1.1.1.1.36.1  christos LibSetVariable (
    679  1.1.1.1.36.1  christos     IN CHAR16   *VarName,
    680  1.1.1.1.36.1  christos     IN EFI_GUID *VarGuid,
    681  1.1.1.1.36.1  christos     IN UINTN	 DataSize,
    682  1.1.1.1.36.1  christos     IN VOID     *Data
    683  1.1.1.1.36.1  christos     );
    684  1.1.1.1.36.1  christos 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.1.1.1.36.1  christos     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.1.1.1.36.1  christos     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.1.1.1.36.1  christos         OUT EFI_DEVICE_IO_INTERFACE     **GlobalIoFncs
    989           1.1  jakllsch         );
    990           1.1  jakllsch 
    991  1.1.1.1.36.1  christos UINT32
    992           1.1  jakllsch ReadPort (
    993  1.1.1.1.36.1  christos         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.1.1.1.36.1  christos UINT32
    999           1.1  jakllsch WritePort (
   1000  1.1.1.1.36.1  christos         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.1.1.1.36.1  christos UINT32
   1007           1.1  jakllsch ReadPciConfig (
   1008  1.1.1.1.36.1  christos         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.1.1.1.36.1  christos UINT32
   1014           1.1  jakllsch WritePciConfig (
   1015  1.1.1.1.36.1  christos         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