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