You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

efi_guid.c 9.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  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. FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
  24. #include <ipxe/efi/efi.h>
  25. #include <ipxe/efi/Protocol/AbsolutePointer.h>
  26. #include <ipxe/efi/Protocol/AppleNetBoot.h>
  27. #include <ipxe/efi/Protocol/Arp.h>
  28. #include <ipxe/efi/Protocol/BlockIo.h>
  29. #include <ipxe/efi/Protocol/BlockIo2.h>
  30. #include <ipxe/efi/Protocol/BusSpecificDriverOverride.h>
  31. #include <ipxe/efi/Protocol/ComponentName.h>
  32. #include <ipxe/efi/Protocol/ComponentName2.h>
  33. #include <ipxe/efi/Protocol/ConsoleControl/ConsoleControl.h>
  34. #include <ipxe/efi/Protocol/DevicePath.h>
  35. #include <ipxe/efi/Protocol/DevicePathToText.h>
  36. #include <ipxe/efi/Protocol/Dhcp4.h>
  37. #include <ipxe/efi/Protocol/DiskIo.h>
  38. #include <ipxe/efi/Protocol/DriverBinding.h>
  39. #include <ipxe/efi/Protocol/GraphicsOutput.h>
  40. #include <ipxe/efi/Protocol/HiiConfigAccess.h>
  41. #include <ipxe/efi/Protocol/HiiFont.h>
  42. #include <ipxe/efi/Protocol/Ip4.h>
  43. #include <ipxe/efi/Protocol/Ip4Config.h>
  44. #include <ipxe/efi/Protocol/LoadFile.h>
  45. #include <ipxe/efi/Protocol/LoadFile2.h>
  46. #include <ipxe/efi/Protocol/LoadedImage.h>
  47. #include <ipxe/efi/Protocol/ManagedNetwork.h>
  48. #include <ipxe/efi/Protocol/Mtftp4.h>
  49. #include <ipxe/efi/Protocol/NetworkInterfaceIdentifier.h>
  50. #include <ipxe/efi/Protocol/PciIo.h>
  51. #include <ipxe/efi/Protocol/PciRootBridgeIo.h>
  52. #include <ipxe/efi/Protocol/PxeBaseCode.h>
  53. #include <ipxe/efi/Protocol/SerialIo.h>
  54. #include <ipxe/efi/Protocol/SimpleFileSystem.h>
  55. #include <ipxe/efi/Protocol/SimpleNetwork.h>
  56. #include <ipxe/efi/Protocol/SimplePointer.h>
  57. #include <ipxe/efi/Protocol/SimpleTextIn.h>
  58. #include <ipxe/efi/Protocol/SimpleTextInEx.h>
  59. #include <ipxe/efi/Protocol/SimpleTextOut.h>
  60. #include <ipxe/efi/Protocol/TcgService.h>
  61. #include <ipxe/efi/Protocol/Tcp4.h>
  62. #include <ipxe/efi/Protocol/Udp4.h>
  63. #include <ipxe/efi/Protocol/UgaDraw.h>
  64. #include <ipxe/efi/Protocol/UnicodeCollation.h>
  65. #include <ipxe/efi/Protocol/UsbHostController.h>
  66. #include <ipxe/efi/Protocol/Usb2HostController.h>
  67. #include <ipxe/efi/Protocol/UsbIo.h>
  68. #include <ipxe/efi/Protocol/VlanConfig.h>
  69. #include <ipxe/efi/Guid/FileInfo.h>
  70. #include <ipxe/efi/Guid/FileSystemInfo.h>
  71. /** @file
  72. *
  73. * EFI GUIDs
  74. *
  75. */
  76. /* TrEE protocol GUID definition in EDK2 headers is broken (missing braces) */
  77. #define EFI_TREE_PROTOCOL_GUID \
  78. { 0x607f766c, 0x7455, 0x42be, \
  79. { 0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2, 0x72, 0x0f } }
  80. /** Absolute pointer protocol GUID */
  81. EFI_GUID efi_absolute_pointer_protocol_guid
  82. = EFI_ABSOLUTE_POINTER_PROTOCOL_GUID;
  83. /** Apple NetBoot protocol GUID */
  84. EFI_GUID efi_apple_net_boot_protocol_guid
  85. = EFI_APPLE_NET_BOOT_PROTOCOL_GUID;
  86. /** ARP protocol GUID */
  87. EFI_GUID efi_arp_protocol_guid
  88. = EFI_ARP_PROTOCOL_GUID;
  89. /** ARP service binding protocol GUID */
  90. EFI_GUID efi_arp_service_binding_protocol_guid
  91. = EFI_ARP_SERVICE_BINDING_PROTOCOL_GUID;
  92. /** Block I/O protocol GUID */
  93. EFI_GUID efi_block_io_protocol_guid
  94. = EFI_BLOCK_IO_PROTOCOL_GUID;
  95. /** Block I/O version 2 protocol GUID */
  96. EFI_GUID efi_block_io2_protocol_guid
  97. = EFI_BLOCK_IO2_PROTOCOL_GUID;
  98. /** Bus specific driver override protocol GUID */
  99. EFI_GUID efi_bus_specific_driver_override_protocol_guid
  100. = EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL_GUID;
  101. /** Component name protocol GUID */
  102. EFI_GUID efi_component_name_protocol_guid
  103. = EFI_COMPONENT_NAME_PROTOCOL_GUID;
  104. /** Component name 2 protocol GUID */
  105. EFI_GUID efi_component_name2_protocol_guid
  106. = EFI_COMPONENT_NAME2_PROTOCOL_GUID;
  107. /** Console control protocol GUID */
  108. EFI_GUID efi_console_control_protocol_guid
  109. = EFI_CONSOLE_CONTROL_PROTOCOL_GUID;
  110. /** Device path protocol GUID */
  111. EFI_GUID efi_device_path_protocol_guid
  112. = EFI_DEVICE_PATH_PROTOCOL_GUID;
  113. /** DHCPv4 protocol GUID */
  114. EFI_GUID efi_dhcp4_protocol_guid
  115. = EFI_DHCP4_PROTOCOL_GUID;
  116. /** DHCPv4 service binding protocol GUID */
  117. EFI_GUID efi_dhcp4_service_binding_protocol_guid
  118. = EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID;
  119. /** Disk I/O protocol GUID */
  120. EFI_GUID efi_disk_io_protocol_guid
  121. = EFI_DISK_IO_PROTOCOL_GUID;
  122. /** Driver binding protocol GUID */
  123. EFI_GUID efi_driver_binding_protocol_guid
  124. = EFI_DRIVER_BINDING_PROTOCOL_GUID;
  125. /** Graphics output protocol GUID */
  126. EFI_GUID efi_graphics_output_protocol_guid
  127. = EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID;
  128. /** HII configuration access protocol GUID */
  129. EFI_GUID efi_hii_config_access_protocol_guid
  130. = EFI_HII_CONFIG_ACCESS_PROTOCOL_GUID;
  131. /** HII font protocol GUID */
  132. EFI_GUID efi_hii_font_protocol_guid
  133. = EFI_HII_FONT_PROTOCOL_GUID;
  134. /** IPv4 protocol GUID */
  135. EFI_GUID efi_ip4_protocol_guid
  136. = EFI_IP4_PROTOCOL_GUID;
  137. /** IPv4 configuration protocol GUID */
  138. EFI_GUID efi_ip4_config_protocol_guid
  139. = EFI_IP4_CONFIG_PROTOCOL_GUID;
  140. /** IPv4 service binding protocol GUID */
  141. EFI_GUID efi_ip4_service_binding_protocol_guid
  142. = EFI_IP4_SERVICE_BINDING_PROTOCOL_GUID;
  143. /** Load file protocol GUID */
  144. EFI_GUID efi_load_file_protocol_guid
  145. = EFI_LOAD_FILE_PROTOCOL_GUID;
  146. /** Load file 2 protocol GUID */
  147. EFI_GUID efi_load_file2_protocol_guid
  148. = EFI_LOAD_FILE2_PROTOCOL_GUID;
  149. /** Loaded image protocol GUID */
  150. EFI_GUID efi_loaded_image_protocol_guid
  151. = EFI_LOADED_IMAGE_PROTOCOL_GUID;
  152. /** Loaded image device path protocol GUID */
  153. EFI_GUID efi_loaded_image_device_path_protocol_guid
  154. = EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL_GUID;
  155. /** Managed network protocol GUID */
  156. EFI_GUID efi_managed_network_protocol_guid
  157. = EFI_MANAGED_NETWORK_PROTOCOL_GUID;
  158. /** Managed network service binding protocol GUID */
  159. EFI_GUID efi_managed_network_service_binding_protocol_guid
  160. = EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL_GUID;
  161. /** MTFTPv4 protocol GUID */
  162. EFI_GUID efi_mtftp4_protocol_guid
  163. = EFI_MTFTP4_PROTOCOL_GUID;
  164. /** MTFTPv4 service binding protocol GUID */
  165. EFI_GUID efi_mtftp4_service_binding_protocol_guid
  166. = EFI_MTFTP4_SERVICE_BINDING_PROTOCOL_GUID;
  167. /** Network interface identifier protocol GUID (old version) */
  168. EFI_GUID efi_nii_protocol_guid
  169. = EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID;
  170. /** Network interface identifier protocol GUID (new version) */
  171. EFI_GUID efi_nii31_protocol_guid
  172. = EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID_31;
  173. /** PCI I/O protocol GUID */
  174. EFI_GUID efi_pci_io_protocol_guid
  175. = EFI_PCI_IO_PROTOCOL_GUID;
  176. /** PCI root bridge I/O protocol GUID */
  177. EFI_GUID efi_pci_root_bridge_io_protocol_guid
  178. = EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID;
  179. /** PXE base code protocol GUID */
  180. EFI_GUID efi_pxe_base_code_protocol_guid
  181. = EFI_PXE_BASE_CODE_PROTOCOL_GUID;
  182. /** Serial I/O protocol GUID */
  183. EFI_GUID efi_serial_io_protocol_guid
  184. = EFI_SERIAL_IO_PROTOCOL_GUID;
  185. /** Simple file system protocol GUID */
  186. EFI_GUID efi_simple_file_system_protocol_guid
  187. = EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID;
  188. /** Simple network protocol GUID */
  189. EFI_GUID efi_simple_network_protocol_guid
  190. = EFI_SIMPLE_NETWORK_PROTOCOL_GUID;
  191. /** Simple pointer protocol GUID */
  192. EFI_GUID efi_simple_pointer_protocol_guid
  193. = EFI_SIMPLE_POINTER_PROTOCOL_GUID;
  194. /** Simple text input protocol GUID */
  195. EFI_GUID efi_simple_text_input_protocol_guid
  196. = EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID;
  197. /** Simple text input extension protocol GUID */
  198. EFI_GUID efi_simple_text_input_ex_protocol_guid
  199. = EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID;
  200. /** Simple text output protocol GUID */
  201. EFI_GUID efi_simple_text_output_protocol_guid
  202. = EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID;
  203. /** TCG protocol GUID */
  204. EFI_GUID efi_tcg_protocol_guid
  205. = EFI_TCG_PROTOCOL_GUID;
  206. /** TCPv4 protocol GUID */
  207. EFI_GUID efi_tcp4_protocol_guid
  208. = EFI_TCP4_PROTOCOL_GUID;
  209. /** TCPv4 service binding protocol GUID */
  210. EFI_GUID efi_tcp4_service_binding_protocol_guid
  211. = EFI_TCP4_SERVICE_BINDING_PROTOCOL_GUID;
  212. /** TrEE protocol GUID */
  213. EFI_GUID efi_tree_protocol_guid
  214. = EFI_TREE_PROTOCOL_GUID;
  215. /** UDPv4 protocol GUID */
  216. EFI_GUID efi_udp4_protocol_guid
  217. = EFI_UDP4_PROTOCOL_GUID;
  218. /** UDPv4 service binding protocol GUID */
  219. EFI_GUID efi_udp4_service_binding_protocol_guid
  220. = EFI_UDP4_SERVICE_BINDING_PROTOCOL_GUID;
  221. /** UGA draw protocol GUID */
  222. EFI_GUID efi_uga_draw_protocol_guid
  223. = EFI_UGA_DRAW_PROTOCOL_GUID;
  224. /** Unicode collation protocol GUID */
  225. EFI_GUID efi_unicode_collation_protocol_guid
  226. = EFI_UNICODE_COLLATION_PROTOCOL_GUID;
  227. /** USB host controller protocol GUID */
  228. EFI_GUID efi_usb_hc_protocol_guid
  229. = EFI_USB_HC_PROTOCOL_GUID;
  230. /** USB2 host controller protocol GUID */
  231. EFI_GUID efi_usb2_hc_protocol_guid
  232. = EFI_USB2_HC_PROTOCOL_GUID;
  233. /** USB I/O protocol GUID */
  234. EFI_GUID efi_usb_io_protocol_guid
  235. = EFI_USB_IO_PROTOCOL_GUID;
  236. /** VLAN configuration protocol GUID */
  237. EFI_GUID efi_vlan_config_protocol_guid
  238. = EFI_VLAN_CONFIG_PROTOCOL_GUID;
  239. /** File information GUID */
  240. EFI_GUID efi_file_info_id = EFI_FILE_INFO_ID;
  241. /** File system information GUID */
  242. EFI_GUID efi_file_system_info_id = EFI_FILE_SYSTEM_INFO_ID;