Home | History | Annotate | Line # | Download | only in lib
      1 /*	$NetBSD: data.c,v 1.1.1.3 2021/09/30 18:50:09 jmcneill Exp $	*/
      2 
      3 /*++
      4 
      5 Copyright (c) 1998  Intel Corporation
      6 
      7 Module Name:
      8 
      9     data.c
     10 
     11 Abstract:
     12 
     13     EFI library global data
     14 
     15 
     16 
     17 Revision History
     18 
     19 --*/
     20 
     21 #include "lib.h"
     22 
     23 //
     24 // LibInitialized - TRUE once InitializeLib() is called for the first time
     25 //
     26 
     27 BOOLEAN  LibInitialized = FALSE;
     28 
     29 //
     30 // ImageHandle - Current ImageHandle, as passed to InitializeLib
     31 //
     32 EFI_HANDLE LibImageHandle;
     33 
     34 //
     35 // ST - pointer to the EFI system table
     36 //
     37 
     38 EFI_SYSTEM_TABLE        *ST;
     39 
     40 //
     41 // BS - pointer to the boot services table
     42 //
     43 
     44 EFI_BOOT_SERVICES       *BS;
     45 
     46 
     47 //
     48 // Default pool allocation type
     49 //
     50 
     51 EFI_MEMORY_TYPE PoolAllocationType = EfiBootServicesData;
     52 
     53 //
     54 // Unicode collation functions that are in use
     55 //
     56 
     57 EFI_UNICODE_COLLATION_INTERFACE   LibStubUnicodeInterface = {
     58     LibStubStriCmp,
     59     LibStubMetaiMatch,
     60     LibStubStrLwrUpr,
     61     LibStubStrLwrUpr,
     62     NULL,   // FatToStr
     63     NULL,   // StrToFat
     64     NULL    // SupportedLanguages
     65 };
     66 
     67 EFI_UNICODE_COLLATION_INTERFACE   *UnicodeInterface = &LibStubUnicodeInterface;
     68 
     69 //
     70 // Root device path
     71 //
     72 
     73 EFI_DEVICE_PATH RootDevicePath[] = {
     74    {END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE, {END_DEVICE_PATH_LENGTH,0}}
     75 };
     76 
     77 EFI_DEVICE_PATH EndDevicePath[] = {
     78    {END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE, {END_DEVICE_PATH_LENGTH, 0}}
     79 };
     80 
     81 EFI_DEVICE_PATH EndInstanceDevicePath[] = {
     82    {END_DEVICE_PATH_TYPE, END_INSTANCE_DEVICE_PATH_SUBTYPE, {END_DEVICE_PATH_LENGTH, 0}}
     83 };
     84 
     85 
     86 //
     87 // EFI IDs
     88 //
     89 
     90 EFI_GUID gEfiGlobalVariableGuid = EFI_GLOBAL_VARIABLE;
     91 EFI_GUID NullGuid = { 0,0,0,{0,0,0,0,0,0,0,0} };
     92 
     93 //
     94 // Protocol IDs
     95 //
     96 
     97 EFI_GUID gEfiDevicePathProtocolGuid                 = EFI_DEVICE_PATH_PROTOCOL_GUID;
     98 EFI_GUID gEfiDevicePathToTextProtocolGuid           = EFI_DEVICE_PATH_TO_TEXT_PROTOCOL_GUID;
     99 EFI_GUID gEfiDevicePathFromTextProtocolGuid         = EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL_GUID;
    100 EFI_GUID gEfiDevicePathUtilitiesProtocolGuid        = EFI_DEVICE_PATH_UTILITIES_PROTOCOL_GUID;
    101 EFI_GUID gEfiLoadedImageProtocolGuid                = EFI_LOADED_IMAGE_PROTOCOL_GUID;
    102 EFI_GUID gEfiSimpleTextInProtocolGuid               = EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID;
    103 EFI_GUID gEfiSimpleTextOutProtocolGuid              = EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID;
    104 EFI_GUID gEfiBlockIoProtocolGuid                    = EFI_BLOCK_IO_PROTOCOL_GUID;
    105 EFI_GUID gEfiBlockIo2ProtocolGuid                   = EFI_BLOCK_IO2_PROTOCOL_GUID;
    106 EFI_GUID gEfiDiskIoProtocolGuid                     = EFI_DISK_IO_PROTOCOL_GUID;
    107 EFI_GUID gEfiDiskIo2ProtocolGuid                    = EFI_DISK_IO2_PROTOCOL_GUID;
    108 EFI_GUID gEfiSimpleFileSystemProtocolGuid           = EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID;
    109 EFI_GUID gEfiLoadFileProtocolGuid                   = EFI_LOAD_FILE_PROTOCOL_GUID;
    110 EFI_GUID gEfiDeviceIoProtocolGuid                   = EFI_DEVICE_IO_PROTOCOL_GUID;
    111 EFI_GUID gEfiUnicodeCollationProtocolGuid           = EFI_UNICODE_COLLATION_PROTOCOL_GUID;
    112 EFI_GUID gEfiSerialIoProtocolGuid                   = EFI_SERIAL_IO_PROTOCOL_GUID;
    113 EFI_GUID gEfiSimpleNetworkProtocolGuid              = EFI_SIMPLE_NETWORK_PROTOCOL_GUID;
    114 EFI_GUID gEfiPxeBaseCodeProtocolGuid                = EFI_PXE_BASE_CODE_PROTOCOL_GUID;
    115 EFI_GUID gEfiPxeBaseCodeCallbackProtocolGuid        = EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL_GUID;
    116 EFI_GUID gEfiNetworkInterfaceIdentifierProtocolGuid = EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID;
    117 EFI_GUID gEFiUiInterfaceProtocolGuid                = EFI_UI_INTERFACE_PROTOCOL_GUID;
    118 EFI_GUID gEfiPciIoProtocolGuid                      = EFI_PCI_IO_PROTOCOL_GUID;
    119 EFI_GUID gEfiPciRootBridgeIoProtocolGuid            = EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID;
    120 EFI_GUID gEfiDriverBindingProtocolGuid              = EFI_DRIVER_BINDING_PROTOCOL_GUID;
    121 EFI_GUID gEfiComponentNameProtocolGuid              = EFI_COMPONENT_NAME_PROTOCOL_GUID;
    122 EFI_GUID gEfiComponentName2ProtocolGuid             = EFI_COMPONENT_NAME2_PROTOCOL_GUID;
    123 EFI_GUID gEfiHashProtocolGuid                       = EFI_HASH_PROTOCOL_GUID;
    124 EFI_GUID gEfiPlatformDriverOverrideProtocolGuid     = EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL_GUID;
    125 EFI_GUID gEfiBusSpecificDriverOverrideProtocolGuid  = EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL_GUID;
    126 EFI_GUID gEfiDriverFamilyOverrideProtocolGuid       = EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL_GUID;
    127 EFI_GUID gEfiEbcProtocolGuid                        = EFI_EBC_PROTOCOL_GUID;
    128 
    129 //
    130 // File system information IDs
    131 //
    132 
    133 EFI_GUID gEfiFileInfoGuid                           = EFI_FILE_INFO_ID;
    134 EFI_GUID gEfiFileSystemInfoGuid                     = EFI_FILE_SYSTEM_INFO_ID;
    135 EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid        = EFI_FILE_SYSTEM_VOLUME_LABEL_ID;
    136 
    137 //
    138 // Reference implementation public protocol IDs
    139 //
    140 
    141 EFI_GUID InternalShellProtocol = INTERNAL_SHELL_GUID;
    142 EFI_GUID VariableStoreProtocol = VARIABLE_STORE_PROTOCOL;
    143 EFI_GUID LegacyBootProtocol = LEGACY_BOOT_PROTOCOL;
    144 EFI_GUID VgaClassProtocol = VGA_CLASS_DRIVER_PROTOCOL;
    145 
    146 EFI_GUID TextOutSpliterProtocol = TEXT_OUT_SPLITER_PROTOCOL;
    147 EFI_GUID ErrorOutSpliterProtocol = ERROR_OUT_SPLITER_PROTOCOL;
    148 EFI_GUID TextInSpliterProtocol = TEXT_IN_SPLITER_PROTOCOL;
    149 /* Added for GOP support */
    150 EFI_GUID gEfiGraphicsOutputProtocolGuid             = EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID;
    151 EFI_GUID gEfiEdidDiscoveredProtocolGuid             = EFI_EDID_DISCOVERED_PROTOCOL_GUID;
    152 EFI_GUID gEfiEdidActiveProtocolGuid                 = EFI_EDID_ACTIVE_PROTOCOL_GUID;
    153 EFI_GUID gEfiEdidOverrideProtocolGuid               = EFI_EDID_OVERRIDE_PROTOCOL_GUID;
    154 
    155 EFI_GUID AdapterDebugProtocol = ADAPTER_DEBUG_PROTOCOL;
    156 
    157 //
    158 // Device path media protocol IDs
    159 //
    160 EFI_GUID gEfiPcAnsiGuid                             = EFI_PC_ANSI_GUID;
    161 EFI_GUID gEfiVT100Guid                              = EFI_VT_100_GUID;
    162 EFI_GUID gEfiVT100PlusGuid                          = EFI_VT_100_PLUS_GUID;
    163 EFI_GUID gEfiVTUTF8Guid                             = EFI_VT_UTF8_GUID;
    164 
    165 //
    166 // EFI GPT Partition Type GUIDs
    167 //
    168 EFI_GUID EfiPartTypeSystemPartitionGuid = EFI_PART_TYPE_EFI_SYSTEM_PART_GUID;
    169 EFI_GUID EfiPartTypeLegacyMbrGuid = EFI_PART_TYPE_LEGACY_MBR_GUID;
    170 
    171 
    172 //
    173 // Reference implementation Vendor Device Path Guids
    174 //
    175 EFI_GUID UnknownDevice      = UNKNOWN_DEVICE_GUID;
    176 
    177 //
    178 // Configuration Table GUIDs
    179 //
    180 
    181 EFI_GUID MpsTableGuid             = MPS_TABLE_GUID;
    182 EFI_GUID AcpiTableGuid            = ACPI_TABLE_GUID;
    183 EFI_GUID SMBIOSTableGuid          = SMBIOS_TABLE_GUID;
    184 EFI_GUID SMBIOS3TableGuid         = SMBIOS3_TABLE_GUID;
    185 EFI_GUID SalSystemTableGuid       = SAL_SYSTEM_TABLE_GUID;
    186 EFI_GUID EfiDtbTableGuid          = EFI_DTB_TABLE_GUID;
    187 
    188 //
    189 // Network protocol GUIDs
    190 //
    191 EFI_GUID Ip4ServiceBindingProtocol = EFI_IP4_SERVICE_BINDING_PROTOCOL;
    192 EFI_GUID Ip4Protocol = EFI_IP4_PROTOCOL;
    193 EFI_GUID Udp4ServiceBindingProtocol = EFI_UDP4_SERVICE_BINDING_PROTOCOL;
    194 EFI_GUID Udp4Protocol = EFI_UDP4_PROTOCOL;
    195 EFI_GUID Tcp4ServiceBindingProtocol = EFI_TCP4_SERVICE_BINDING_PROTOCOL;
    196 EFI_GUID Tcp4Protocol = EFI_TCP4_PROTOCOL;
    197 
    198 //
    199 // Pointer protocol GUIDs
    200 //
    201 EFI_GUID SimplePointerProtocol   = EFI_SIMPLE_POINTER_PROTOCOL_GUID;
    202 EFI_GUID AbsolutePointerProtocol = EFI_ABSOLUTE_POINTER_PROTOCOL_GUID;
    203 
    204 //
    205 // Debugger protocol GUIDs
    206 //
    207 EFI_GUID gEfiDebugImageInfoTableGuid  = EFI_DEBUG_IMAGE_INFO_TABLE_GUID;
    208 EFI_GUID gEfiDebugSupportProtocolGuid = EFI_DEBUG_SUPPORT_PROTOCOL_GUID;
    209 
    210 //
    211 // Console extension protocol GUIDs
    212 //
    213 EFI_GUID SimpleTextInputExProtocol = EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID;
    214 
    215 //
    216 // Shell protocol GUIDs
    217 //
    218 EFI_GUID ShellProtocolGuid               = EFI_SHELL_PROTOCOL_GUID;
    219 EFI_GUID ShellParametersProtocolGuid     = EFI_SHELL_PARAMETERS_PROTOCOL_GUID;
    220 EFI_GUID ShellDynamicCommandProtocolGuid = EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL_GUID;
    221