iPXE
efi_guid.c
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014 Michael Brown <mbrown@fensystems.co.uk>.
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License as
6  * published by the Free Software Foundation; either version 2 of the
7  * License, or any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17  * 02110-1301, USA.
18  *
19  * You can also choose to distribute this program under the terms of
20  * the Unmodified Binary Distribution Licence (as given in the file
21  * COPYING.UBDL), provided that you have satisfied its requirements.
22  */
23 
24 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
25 
26 #include <ipxe/efi/efi.h>
30 #include <ipxe/efi/Protocol/Arp.h>
45 #include <ipxe/efi/Protocol/Ip4.h>
64 #include <ipxe/efi/Protocol/Tcp4.h>
65 #include <ipxe/efi/Protocol/Udp4.h>
72 #include <ipxe/efi/Guid/FileInfo.h>
74 
75 /** @file
76  *
77  * EFI GUIDs
78  *
79  */
80 
81 /* TrEE protocol GUID definition in EDK2 headers is broken (missing braces) */
82 #define EFI_TREE_PROTOCOL_GUID \
83  { 0x607f766c, 0x7455, 0x42be, \
84  { 0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2, 0x72, 0x0f } }
85 
86 /** Absolute pointer protocol GUID */
89 
90 /** ACPI table protocol GUID */
93 
94 /** Apple NetBoot protocol GUID */
97 
98 /** ARP protocol GUID */
101 
102 /** ARP service binding protocol GUID */
105 
106 /** Block I/O protocol GUID */
109 
110 /** Block I/O version 2 protocol GUID */
113 
114 /** Bus specific driver override protocol GUID */
117 
118 /** Component name protocol GUID */
121 
122 /** Component name 2 protocol GUID */
125 
126 /** Console control protocol GUID */
129 
130 /** Device path protocol GUID */
133 
134 /** DHCPv4 protocol GUID */
137 
138 /** DHCPv4 service binding protocol GUID */
141 
142 /** Disk I/O protocol GUID */
145 
146 /** Driver binding protocol GUID */
149 
150 /** Graphics output protocol GUID */
153 
154 /** HII configuration access protocol GUID */
157 
158 /** HII font protocol GUID */
161 
162 /** IPv4 protocol GUID */
165 
166 /** IPv4 configuration protocol GUID */
169 
170 /** IPv4 service binding protocol GUID */
173 
174 /** Load file protocol GUID */
177 
178 /** Load file 2 protocol GUID */
181 
182 /** Loaded image protocol GUID */
185 
186 /** Loaded image device path protocol GUID */
189 
190 /** Managed network protocol GUID */
193 
194 /** Managed network service binding protocol GUID */
197 
198 /** MTFTPv4 protocol GUID */
201 
202 /** MTFTPv4 service binding protocol GUID */
205 
206 /** Network interface identifier protocol GUID (old version) */
209 
210 /** Network interface identifier protocol GUID (new version) */
213 
214 /** PCI I/O protocol GUID */
217 
218 /** PCI root bridge I/O protocol GUID */
221 
222 /** PXE base code protocol GUID */
225 
226 /** Serial I/O protocol GUID */
229 
230 /** Simple file system protocol GUID */
233 
234 /** Simple network protocol GUID */
237 
238 /** Simple pointer protocol GUID */
241 
242 /** Simple text input protocol GUID */
245 
246 /** Simple text input extension protocol GUID */
249 
250 /** Simple text output protocol GUID */
253 
254 /** TCG protocol GUID */
257 
258 /** TCPv4 protocol GUID */
261 
262 /** TCPv4 service binding protocol GUID */
265 
266 /** TrEE protocol GUID */
269 
270 /** UDPv4 protocol GUID */
273 
274 /** UDPv4 service binding protocol GUID */
277 
278 /** UGA draw protocol GUID */
281 
282 /** Unicode collation protocol GUID */
285 
286 /** USB host controller protocol GUID */
289 
290 /** USB2 host controller protocol GUID */
293 
294 /** USB I/O protocol GUID */
297 
298 /** VLAN configuration protocol GUID */
301 
302 /** File information GUID */
304 
305 /** File system information GUID */
EFI_GUID efi_nii31_protocol_guid
Network interface identifier protocol GUID (new version)
Definition: efi_guid.c:212
UEFI DriverBinding Protocol is defined in UEFI specification.
#define EFI_DHCP4_PROTOCOL_GUID
Definition: Dhcp4.h:26
#define EFI_UGA_DRAW_PROTOCOL_GUID
Definition: UgaDraw.h:23
#define EFI_UDP4_SERVICE_BINDING_PROTOCOL_GUID
Definition: Udp4.h:30
#define EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID
#define EFI_USB_IO_PROTOCOL_GUID
Definition: UsbIo.h:29
EFI_GUID efi_ip4_config_protocol_guid
IPv4 configuration protocol GUID.
Definition: efi_guid.c:168
#define EFI_SERIAL_IO_PROTOCOL_GUID
Definition: SerialIo.h:23
EFI_GUID efi_dhcp4_service_binding_protocol_guid
DHCPv4 service binding protocol GUID.
Definition: efi_guid.c:140
Apple Net Boot Protocol.
EFI_GUID efi_hii_font_protocol_guid
HII font protocol GUID.
Definition: efi_guid.c:160
EFI_GUID efi_tcg_protocol_guid
TCG protocol GUID.
Definition: efi_guid.c:256
EFI_GUID efi_block_io2_protocol_guid
Block I/O version 2 protocol GUID.
Definition: efi_guid.c:112
The device path protocol as defined in UEFI 2.0.
#define EFI_TCP4_PROTOCOL_GUID
Definition: Tcp4.h:33
#define EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID
EFI_GUID efi_file_system_info_id
File system information GUID.
Definition: efi_guid.c:306
128 bit buffer containing a unique identifier value.
Definition: Base.h:263
EFI_GUID efi_pci_io_protocol_guid
PCI I/O protocol GUID.
Definition: efi_guid.c:216
EFI_GUID efi_arp_service_binding_protocol_guid
ARP service binding protocol GUID.
Definition: efi_guid.c:104
EFI_GUID efi_usb_hc_protocol_guid
USB host controller protocol GUID.
Definition: efi_guid.c:288
UDP4 Service Binding Protocol as defined in UEFI specification.
EFI_GUID efi_usb2_hc_protocol_guid
USB2 host controller protocol GUID.
Definition: efi_guid.c:292
EFI_GUID efi_graphics_output_protocol_guid
Graphics output protocol GUID.
Definition: efi_guid.c:152
Disk IO protocol as defined in the UEFI 2.0 specification.
Load File protocol as defined in the UEFI 2.0 specification.
#define EFI_PCI_IO_PROTOCOL_GUID
Global ID for the PCI I/O Protocol.
Definition: PciIo.h:24
#define EFI_IP4_CONFIG_PROTOCOL_GUID
Definition: Ip4Config.h:25
This file provides a definition of the EFI IPv4 Configuration Protocol.
EFI_GUID efi_simple_pointer_protocol_guid
Simple pointer protocol GUID.
Definition: efi_guid.c:240
EFI_GUID efi_loaded_image_device_path_protocol_guid
Loaded image device path protocol GUID.
Definition: efi_guid.c:188
EFI_GUID efi_dhcp4_protocol_guid
DHCPv4 protocol GUID.
Definition: efi_guid.c:136
Block IO2 protocol as defined in the UEFI 2.3.1 specification.
EFI_GUID efi_simple_network_protocol_guid
Simple network protocol GUID.
Definition: efi_guid.c:236
EFI_GUID efi_loaded_image_protocol_guid
Loaded image protocol GUID.
Definition: efi_guid.c:184
Unicode Collation protocol that follows the UEFI 2.0 specification.
EFI_GUID efi_tcp4_protocol_guid
TCPv4 protocol GUID.
Definition: efi_guid.c:260
#define EFI_TCP4_SERVICE_BINDING_PROTOCOL_GUID
Definition: Tcp4.h:28
EFI Network Interface Identifier Protocol.
#define EFI_ARP_PROTOCOL_GUID
Definition: Arp.h:34
EFI_GUID efi_pxe_base_code_protocol_guid
PXE base code protocol GUID.
Definition: efi_guid.c:224
EFI PXE Base Code Protocol definitions, which is used to access PXE-compatible devices for network ac...
EFI_GUID efi_managed_network_service_binding_protocol_guid
Managed network service binding protocol GUID.
Definition: efi_guid.c:196
#define EFI_SIMPLE_NETWORK_PROTOCOL_GUID
Definition: SimpleNetwork.h:31
EFI Component Name Protocol as defined in the EFI 1.1 specification.
Bus Specific Driver Override protocol as defined in the UEFI 2.0 specification.
#define EFI_DRIVER_BINDING_PROTOCOL_GUID
The global ID for the ControllerHandle Driver Protocol.
Definition: DriverBinding.h:26
#define EFI_IP4_SERVICE_BINDING_PROTOCOL_GUID
Definition: Ip4.h:34
#define EFI_TCG_PROTOCOL_GUID
Definition: TcgService.h:23
#define EFI_FILE_SYSTEM_INFO_ID
EFI_GUID efi_disk_io_protocol_guid
Disk I/O protocol GUID.
Definition: efi_guid.c:144
EFI_GUID efi_hii_config_access_protocol_guid
HII configuration access protocol GUID.
Definition: efi_guid.c:156
EFI_GUID efi_console_control_protocol_guid
Console control protocol GUID.
Definition: efi_guid.c:128
EFI_GUID efi_simple_text_output_protocol_guid
Simple text output protocol GUID.
Definition: efi_guid.c:252
EFI_GUID efi_mtftp4_service_binding_protocol_guid
MTFTPv4 service binding protocol GUID.
Definition: efi_guid.c:204
#define EFI_ARP_SERVICE_BINDING_PROTOCOL_GUID
Definition: Arp.h:29
UEFI 2.0 Loaded image protocol definition.
#define EFI_ACPI_TABLE_PROTOCOL_GUID
Definition: AcpiTable.h:21
#define EFI_LOAD_FILE2_PROTOCOL_GUID
Definition: LoadFile2.h:26
#define EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID
Definition: Dhcp4.h:31
EFI_GUID efi_uga_draw_protocol_guid
UGA draw protocol GUID.
Definition: efi_guid.c:280
#define EFI_MTFTP4_SERVICE_BINDING_PROTOCOL_GUID
Definition: Mtftp4.h:23
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
#define EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL_GUID
EFI_DEVICE_PATH_TO_TEXT_PROTOCOL as defined in UEFI 2.0.
EFI_GUID efi_tcp4_service_binding_protocol_guid
TCPv4 service binding protocol GUID.
Definition: efi_guid.c:264
#define EFI_PXE_BASE_CODE_PROTOCOL_GUID
PXE Base Code protocol.
Definition: PxeBaseCode.h:26
EFI_GUID efi_tree_protocol_guid
TrEE protocol GUID.
Definition: efi_guid.c:268
#define EFI_UDP4_PROTOCOL_GUID
Definition: Udp4.h:35
SimpleFileSystem protocol as defined in the UEFI 2.0 specification.
#define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID
This file defines the EFI IPv4 (Internet Protocol version 4) Protocol interface.
#define EFI_USB_HC_PROTOCOL_GUID
#define EFI_COMPONENT_NAME_PROTOCOL_GUID
The global ID for the Component Name Protocol.
Definition: ComponentName.h:25
EFI_GUID efi_simple_file_system_protocol_guid
Simple file system protocol GUID.
Definition: efi_guid.c:232
EFI_GUID efi_ip4_service_binding_protocol_guid
IPv4 service binding protocol GUID.
Definition: efi_guid.c:172
EFI_GUID efi_acpi_table_protocol_guid
ACPI table protocol GUID.
Definition: efi_guid.c:92
UEFI Component Name 2 Protocol as defined in the UEFI 2.1 specification.
EFI ARP Protocol Definition.
The EFI_SIMPLE_NETWORK_PROTOCOL provides services to initialize a network interface,...
#define EFI_HII_CONFIG_ACCESS_PROTOCOL_GUID
#define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID_31
EFI TCPv4(Transmission Control Protocol version 4) Protocol Definition The EFI TCPv4 Service Binding ...
EFI_GUID efi_vlan_config_protocol_guid
VLAN configuration protocol GUID.
Definition: efi_guid.c:300
#define EFI_USB2_HC_PROTOCOL_GUID
#define EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID
Definition: SimpleTextIn.h:23
#define EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL_GUID
Definition: LoadedImage.h:28
EFI_DHCP4_PROTOCOL as defined in UEFI 2.0.
EFI_GUID efi_usb_io_protocol_guid
USB I/O protocol GUID.
Definition: efi_guid.c:296
EFI_GUID efi_load_file2_protocol_guid
Load file 2 protocol GUID.
Definition: efi_guid.c:180
#define EFI_TREE_PROTOCOL_GUID
Definition: efi_guid.c:82
Simple Text Input Ex protocol from the UEFI 2.0 specification.
#define EFI_UNICODE_COLLATION_PROTOCOL_GUID
#define EFI_MTFTP4_PROTOCOL_GUID
Definition: Mtftp4.h:28
EFI_GUID efi_serial_io_protocol_guid
Serial I/O protocol GUID.
Definition: efi_guid.c:228
UGA Draw protocol from the EFI 1.10 specification.
#define EFI_APPLE_NET_BOOT_PROTOCOL_GUID
Definition: AppleNetBoot.h:12
The file provides services that allow information about an absolute pointer device to be retrieved.
Simple Text Out protocol from the UEFI 2.0 specification.
#define EFI_CONSOLE_CONTROL_PROTOCOL_GUID
EFI_USB2_HC_PROTOCOL as defined in UEFI 2.0.
EFI VLAN Config protocol is to provide manageability interface for VLAN configuration.
EFI_GUID efi_device_path_protocol_guid
Device path protocol GUID.
Definition: efi_guid.c:132
EFI_GUID efi_component_name2_protocol_guid
Component name 2 protocol GUID.
Definition: efi_guid.c:124
Serial IO protocol as defined in the UEFI 2.0 specification.
EFI_GUID efi_simple_text_input_ex_protocol_guid
Simple text input extension protocol GUID.
Definition: efi_guid.c:248
#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID
#define EFI_DISK_IO_PROTOCOL_GUID
Definition: DiskIo.h:24
TCG Service Protocol as defined in TCG_EFI_Protocol_1_22_Final See http://trustedcomputinggroup....
Provides a GUID and a data structure that can be used with EFI_FILE_PROTOCOL.SetInfo() and EFI_FILE_P...
EFI_GUID efi_simple_text_input_protocol_guid
Simple text input protocol GUID.
Definition: efi_guid.c:244
#define EFI_BLOCK_IO_PROTOCOL_GUID
Definition: BlockIo.h:23
EFI_GUID efi_bus_specific_driver_override_protocol_guid
Bus specific driver override protocol GUID.
Definition: efi_guid.c:116
EFI_GUID efi_mtftp4_protocol_guid
MTFTPv4 protocol GUID.
Definition: efi_guid.c:200
EFI API.
EFI Usb I/O Protocol as defined in UEFI specification.
#define EFI_LOADED_IMAGE_PROTOCOL_GUID
Definition: LoadedImage.h:23
EFI_GUID efi_nii_protocol_guid
Network interface identifier protocol GUID (old version)
Definition: efi_guid.c:208
EFI_GUID efi_absolute_pointer_protocol_guid
Absolute pointer protocol GUID.
Definition: efi_guid.c:88
Simple Text Input protocol from the UEFI 2.0 specification.
EFI_GUID efi_arp_protocol_guid
ARP protocol GUID.
Definition: efi_guid.c:100
Graphics Output Protocol from the UEFI 2.0 specification.
#define EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL_GUID
Global ID for the Bus Specific Driver Override Protocol.
#define EFI_LOAD_FILE_PROTOCOL_GUID
Definition: LoadFile.h:26
EFI_GUID efi_apple_net_boot_protocol_guid
Apple NetBoot protocol GUID.
Definition: efi_guid.c:96
The EFI HII results processing protocol invokes this type of protocol when it needs to forward result...
EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL as defined in UEFI 2.0.
EFI_GUID efi_block_io_protocol_guid
Block I/O protocol GUID.
Definition: efi_guid.c:108
Simple Pointer protocol from the UEFI 2.0 specification.
EFI_GUID efi_file_info_id
File information GUID.
Definition: efi_guid.c:303
#define EFI_FILE_INFO_ID
Definition: FileInfo.h:22
#define EFI_IP4_PROTOCOL_GUID
Definition: Ip4.h:39
#define EFI_HII_FONT_PROTOCOL_GUID
Definition: HiiFont.h:23
PCI Root Bridge I/O protocol as defined in the UEFI 2.0 specification.
EFI Multicast Trivial File Transfer Protocol Definition.
EFI_GUID efi_pci_root_bridge_io_protocol_guid
PCI root bridge I/O protocol GUID.
Definition: efi_guid.c:220
#define EFI_BLOCK_IO2_PROTOCOL_GUID
Definition: BlockIo2.h:26
Block IO protocol as defined in the UEFI 2.0 specification.
#define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID
#define EFI_SIMPLE_POINTER_PROTOCOL_GUID
Definition: SimplePointer.h:22
EFI_USB_HC_PROTOCOL as defined in EFI 1.10.
EFI_GUID efi_ip4_protocol_guid
IPv4 protocol GUID.
Definition: efi_guid.c:164
#define EFI_COMPONENT_NAME2_PROTOCOL_GUID
Global ID for the Component Name Protocol.
EFI_GUID efi_component_name_protocol_guid
Component name protocol GUID.
Definition: efi_guid.c:120
EFI_GUID efi_unicode_collation_protocol_guid
Unicode collation protocol GUID.
Definition: efi_guid.c:284
The file provides the protocol to install or remove an ACPI table from a platform.
#define EFI_VLAN_CONFIG_PROTOCOL_GUID
Definition: VlanConfig.h:24
EFI_GUID efi_load_file_protocol_guid
Load file protocol GUID.
Definition: efi_guid.c:176
EFI_GUID efi_udp4_protocol_guid
UDPv4 protocol GUID.
Definition: efi_guid.c:272
EFI_GUID efi_udp4_service_binding_protocol_guid
UDPv4 service binding protocol GUID.
Definition: efi_guid.c:276
EFI PCI I/O Protocol provides the basic Memory, I/O, PCI configuration, and DMA interfaces that a dri...
The file provides services to retrieve font information.
#define EFI_ABSOLUTE_POINTER_PROTOCOL_GUID
#define EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID
Definition: SimpleTextOut.h:25
Load File protocol as defined in the UEFI 2.0 specification.
EFI_GUID efi_driver_binding_protocol_guid
Driver binding protocol GUID.
Definition: efi_guid.c:148
#define EFI_MANAGED_NETWORK_PROTOCOL_GUID
Provides a GUID and a data structure that can be used with EFI_FILE_PROTOCOL.GetInfo() or EFI_FILE_PR...
#define EFI_DEVICE_PATH_PROTOCOL_GUID
Device Path protocol.
Definition: DevicePath.h:31
EFI_GUID efi_managed_network_protocol_guid
Managed network protocol GUID.
Definition: efi_guid.c:192