iPXE
efi_guid.c
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2014 Michael Brown <mbrown@fensystems.co.uk>.
00003  *
00004  * This program is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU General Public License as
00006  * published by the Free Software Foundation; either version 2 of the
00007  * License, or any later version.
00008  *
00009  * This program is distributed in the hope that it will be useful, but
00010  * WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU General Public License
00015  * along with this program; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
00017  * 02110-1301, USA.
00018  *
00019  * You can also choose to distribute this program under the terms of
00020  * the Unmodified Binary Distribution Licence (as given in the file
00021  * COPYING.UBDL), provided that you have satisfied its requirements.
00022  */
00023 
00024 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
00025 
00026 #include <ipxe/efi/efi.h>
00027 #include <ipxe/efi/Protocol/AbsolutePointer.h>
00028 #include <ipxe/efi/Protocol/AcpiTable.h>
00029 #include <ipxe/efi/Protocol/AppleNetBoot.h>
00030 #include <ipxe/efi/Protocol/Arp.h>
00031 #include <ipxe/efi/Protocol/BlockIo.h>
00032 #include <ipxe/efi/Protocol/BlockIo2.h>
00033 #include <ipxe/efi/Protocol/BusSpecificDriverOverride.h>
00034 #include <ipxe/efi/Protocol/ComponentName.h>
00035 #include <ipxe/efi/Protocol/ComponentName2.h>
00036 #include <ipxe/efi/Protocol/ConsoleControl/ConsoleControl.h>
00037 #include <ipxe/efi/Protocol/DevicePath.h>
00038 #include <ipxe/efi/Protocol/DevicePathToText.h>
00039 #include <ipxe/efi/Protocol/Dhcp4.h>
00040 #include <ipxe/efi/Protocol/DiskIo.h>
00041 #include <ipxe/efi/Protocol/DriverBinding.h>
00042 #include <ipxe/efi/Protocol/GraphicsOutput.h>
00043 #include <ipxe/efi/Protocol/HiiConfigAccess.h>
00044 #include <ipxe/efi/Protocol/HiiFont.h>
00045 #include <ipxe/efi/Protocol/Ip4.h>
00046 #include <ipxe/efi/Protocol/Ip4Config.h>
00047 #include <ipxe/efi/Protocol/LoadFile.h>
00048 #include <ipxe/efi/Protocol/LoadFile2.h>
00049 #include <ipxe/efi/Protocol/LoadedImage.h>
00050 #include <ipxe/efi/Protocol/ManagedNetwork.h>
00051 #include <ipxe/efi/Protocol/Mtftp4.h>
00052 #include <ipxe/efi/Protocol/NetworkInterfaceIdentifier.h>
00053 #include <ipxe/efi/Protocol/PciIo.h>
00054 #include <ipxe/efi/Protocol/PciRootBridgeIo.h>
00055 #include <ipxe/efi/Protocol/PxeBaseCode.h>
00056 #include <ipxe/efi/Protocol/SerialIo.h>
00057 #include <ipxe/efi/Protocol/SimpleFileSystem.h>
00058 #include <ipxe/efi/Protocol/SimpleNetwork.h>
00059 #include <ipxe/efi/Protocol/SimplePointer.h>
00060 #include <ipxe/efi/Protocol/SimpleTextIn.h>
00061 #include <ipxe/efi/Protocol/SimpleTextInEx.h>
00062 #include <ipxe/efi/Protocol/SimpleTextOut.h>
00063 #include <ipxe/efi/Protocol/TcgService.h>
00064 #include <ipxe/efi/Protocol/Tcp4.h>
00065 #include <ipxe/efi/Protocol/Udp4.h>
00066 #include <ipxe/efi/Protocol/UgaDraw.h>
00067 #include <ipxe/efi/Protocol/UnicodeCollation.h>
00068 #include <ipxe/efi/Protocol/UsbHostController.h>
00069 #include <ipxe/efi/Protocol/Usb2HostController.h>
00070 #include <ipxe/efi/Protocol/UsbIo.h>
00071 #include <ipxe/efi/Protocol/VlanConfig.h>
00072 #include <ipxe/efi/Guid/FileInfo.h>
00073 #include <ipxe/efi/Guid/FileSystemInfo.h>
00074 
00075 /** @file
00076  *
00077  * EFI GUIDs
00078  *
00079  */
00080 
00081 /* TrEE protocol GUID definition in EDK2 headers is broken (missing braces) */
00082 #define EFI_TREE_PROTOCOL_GUID                                          \
00083         { 0x607f766c, 0x7455, 0x42be,                                   \
00084           { 0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2, 0x72, 0x0f } }
00085 
00086 /** Absolute pointer protocol GUID */
00087 EFI_GUID efi_absolute_pointer_protocol_guid
00088         = EFI_ABSOLUTE_POINTER_PROTOCOL_GUID;
00089 
00090 /** ACPI table protocol GUID */
00091 EFI_GUID efi_acpi_table_protocol_guid
00092         = EFI_ACPI_TABLE_PROTOCOL_GUID;
00093 
00094 /** Apple NetBoot protocol GUID */
00095 EFI_GUID efi_apple_net_boot_protocol_guid
00096         = EFI_APPLE_NET_BOOT_PROTOCOL_GUID;
00097 
00098 /** ARP protocol GUID */
00099 EFI_GUID efi_arp_protocol_guid
00100         = EFI_ARP_PROTOCOL_GUID;
00101 
00102 /** ARP service binding protocol GUID */
00103 EFI_GUID efi_arp_service_binding_protocol_guid
00104         = EFI_ARP_SERVICE_BINDING_PROTOCOL_GUID;
00105 
00106 /** Block I/O protocol GUID */
00107 EFI_GUID efi_block_io_protocol_guid
00108         = EFI_BLOCK_IO_PROTOCOL_GUID;
00109 
00110 /** Block I/O version 2 protocol GUID */
00111 EFI_GUID efi_block_io2_protocol_guid
00112         = EFI_BLOCK_IO2_PROTOCOL_GUID;
00113 
00114 /** Bus specific driver override protocol GUID */
00115 EFI_GUID efi_bus_specific_driver_override_protocol_guid
00116         = EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL_GUID;
00117 
00118 /** Component name protocol GUID */
00119 EFI_GUID efi_component_name_protocol_guid
00120         = EFI_COMPONENT_NAME_PROTOCOL_GUID;
00121 
00122 /** Component name 2 protocol GUID */
00123 EFI_GUID efi_component_name2_protocol_guid
00124         = EFI_COMPONENT_NAME2_PROTOCOL_GUID;
00125 
00126 /** Console control protocol GUID */
00127 EFI_GUID efi_console_control_protocol_guid
00128         = EFI_CONSOLE_CONTROL_PROTOCOL_GUID;
00129 
00130 /** Device path protocol GUID */
00131 EFI_GUID efi_device_path_protocol_guid
00132         = EFI_DEVICE_PATH_PROTOCOL_GUID;
00133 
00134 /** DHCPv4 protocol GUID */
00135 EFI_GUID efi_dhcp4_protocol_guid
00136         = EFI_DHCP4_PROTOCOL_GUID;
00137 
00138 /** DHCPv4 service binding protocol GUID */
00139 EFI_GUID efi_dhcp4_service_binding_protocol_guid
00140         = EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID;
00141 
00142 /** Disk I/O protocol GUID */
00143 EFI_GUID efi_disk_io_protocol_guid
00144         = EFI_DISK_IO_PROTOCOL_GUID;
00145 
00146 /** Driver binding protocol GUID */
00147 EFI_GUID efi_driver_binding_protocol_guid
00148         = EFI_DRIVER_BINDING_PROTOCOL_GUID;
00149 
00150 /** Graphics output protocol GUID */
00151 EFI_GUID efi_graphics_output_protocol_guid
00152         = EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID;
00153 
00154 /** HII configuration access protocol GUID */
00155 EFI_GUID efi_hii_config_access_protocol_guid
00156         = EFI_HII_CONFIG_ACCESS_PROTOCOL_GUID;
00157 
00158 /** HII font protocol GUID */
00159 EFI_GUID efi_hii_font_protocol_guid
00160         = EFI_HII_FONT_PROTOCOL_GUID;
00161 
00162 /** IPv4 protocol GUID */
00163 EFI_GUID efi_ip4_protocol_guid
00164         = EFI_IP4_PROTOCOL_GUID;
00165 
00166 /** IPv4 configuration protocol GUID */
00167 EFI_GUID efi_ip4_config_protocol_guid
00168         = EFI_IP4_CONFIG_PROTOCOL_GUID;
00169 
00170 /** IPv4 service binding protocol GUID */
00171 EFI_GUID efi_ip4_service_binding_protocol_guid
00172         = EFI_IP4_SERVICE_BINDING_PROTOCOL_GUID;
00173 
00174 /** Load file protocol GUID */
00175 EFI_GUID efi_load_file_protocol_guid
00176         = EFI_LOAD_FILE_PROTOCOL_GUID;
00177 
00178 /** Load file 2 protocol GUID */
00179 EFI_GUID efi_load_file2_protocol_guid
00180         = EFI_LOAD_FILE2_PROTOCOL_GUID;
00181 
00182 /** Loaded image protocol GUID */
00183 EFI_GUID efi_loaded_image_protocol_guid
00184         = EFI_LOADED_IMAGE_PROTOCOL_GUID;
00185 
00186 /** Loaded image device path protocol GUID */
00187 EFI_GUID efi_loaded_image_device_path_protocol_guid
00188         = EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL_GUID;
00189 
00190 /** Managed network protocol GUID */
00191 EFI_GUID efi_managed_network_protocol_guid
00192         = EFI_MANAGED_NETWORK_PROTOCOL_GUID;
00193 
00194 /** Managed network service binding protocol GUID */
00195 EFI_GUID efi_managed_network_service_binding_protocol_guid
00196         = EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL_GUID;
00197 
00198 /** MTFTPv4 protocol GUID */
00199 EFI_GUID efi_mtftp4_protocol_guid
00200         = EFI_MTFTP4_PROTOCOL_GUID;
00201 
00202 /** MTFTPv4 service binding protocol GUID */
00203 EFI_GUID efi_mtftp4_service_binding_protocol_guid
00204         = EFI_MTFTP4_SERVICE_BINDING_PROTOCOL_GUID;
00205 
00206 /** Network interface identifier protocol GUID (old version) */
00207 EFI_GUID efi_nii_protocol_guid
00208         = EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID;
00209 
00210 /** Network interface identifier protocol GUID (new version) */
00211 EFI_GUID efi_nii31_protocol_guid
00212         = EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID_31;
00213 
00214 /** PCI I/O protocol GUID */
00215 EFI_GUID efi_pci_io_protocol_guid
00216         = EFI_PCI_IO_PROTOCOL_GUID;
00217 
00218 /** PCI root bridge I/O protocol GUID */
00219 EFI_GUID efi_pci_root_bridge_io_protocol_guid
00220         = EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID;
00221 
00222 /** PXE base code protocol GUID */
00223 EFI_GUID efi_pxe_base_code_protocol_guid
00224         = EFI_PXE_BASE_CODE_PROTOCOL_GUID;
00225 
00226 /** Serial I/O protocol GUID */
00227 EFI_GUID efi_serial_io_protocol_guid
00228         = EFI_SERIAL_IO_PROTOCOL_GUID;
00229 
00230 /** Simple file system protocol GUID */
00231 EFI_GUID efi_simple_file_system_protocol_guid
00232         = EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID;
00233 
00234 /** Simple network protocol GUID */
00235 EFI_GUID efi_simple_network_protocol_guid
00236         = EFI_SIMPLE_NETWORK_PROTOCOL_GUID;
00237 
00238 /** Simple pointer protocol GUID */
00239 EFI_GUID efi_simple_pointer_protocol_guid
00240         = EFI_SIMPLE_POINTER_PROTOCOL_GUID;
00241 
00242 /** Simple text input protocol GUID */
00243 EFI_GUID efi_simple_text_input_protocol_guid
00244         = EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID;
00245 
00246 /** Simple text input extension protocol GUID */
00247 EFI_GUID efi_simple_text_input_ex_protocol_guid
00248         = EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID;
00249 
00250 /** Simple text output protocol GUID */
00251 EFI_GUID efi_simple_text_output_protocol_guid
00252         = EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID;
00253 
00254 /** TCG protocol GUID */
00255 EFI_GUID efi_tcg_protocol_guid
00256         = EFI_TCG_PROTOCOL_GUID;
00257 
00258 /** TCPv4 protocol GUID */
00259 EFI_GUID efi_tcp4_protocol_guid
00260         = EFI_TCP4_PROTOCOL_GUID;
00261 
00262 /** TCPv4 service binding protocol GUID */
00263 EFI_GUID efi_tcp4_service_binding_protocol_guid
00264         = EFI_TCP4_SERVICE_BINDING_PROTOCOL_GUID;
00265 
00266 /** TrEE protocol GUID */
00267 EFI_GUID efi_tree_protocol_guid
00268         = EFI_TREE_PROTOCOL_GUID;
00269 
00270 /** UDPv4 protocol GUID */
00271 EFI_GUID efi_udp4_protocol_guid
00272         = EFI_UDP4_PROTOCOL_GUID;
00273 
00274 /** UDPv4 service binding protocol GUID */
00275 EFI_GUID efi_udp4_service_binding_protocol_guid
00276         = EFI_UDP4_SERVICE_BINDING_PROTOCOL_GUID;
00277 
00278 /** UGA draw protocol GUID */
00279 EFI_GUID efi_uga_draw_protocol_guid
00280         = EFI_UGA_DRAW_PROTOCOL_GUID;
00281 
00282 /** Unicode collation protocol GUID */
00283 EFI_GUID efi_unicode_collation_protocol_guid
00284         = EFI_UNICODE_COLLATION_PROTOCOL_GUID;
00285 
00286 /** USB host controller protocol GUID */
00287 EFI_GUID efi_usb_hc_protocol_guid
00288         = EFI_USB_HC_PROTOCOL_GUID;
00289 
00290 /** USB2 host controller protocol GUID */
00291 EFI_GUID efi_usb2_hc_protocol_guid
00292         = EFI_USB2_HC_PROTOCOL_GUID;
00293 
00294 /** USB I/O protocol GUID */
00295 EFI_GUID efi_usb_io_protocol_guid
00296         = EFI_USB_IO_PROTOCOL_GUID;
00297 
00298 /** VLAN configuration protocol GUID */
00299 EFI_GUID efi_vlan_config_protocol_guid
00300         = EFI_VLAN_CONFIG_PROTOCOL_GUID;
00301 
00302 /** File information GUID */
00303 EFI_GUID efi_file_info_id = EFI_FILE_INFO_ID;
00304 
00305 /** File system information GUID */
00306 EFI_GUID efi_file_system_info_id = EFI_FILE_SYSTEM_INFO_ID;