52 0xecebcb00, 0xd9c8, 0x11e4,
53 { 0xaf, 0x3d, 0x8c, 0xdc, 0xd4, 0x26, 0xc9, 0x73 }
58 0x86cddf93, 0x4872, 0x4597,
59 { 0x8a, 0xf9, 0xa3, 0x5a, 0xe4, 0xd3, 0x72, 0x5f }
64 0x4579b72d, 0x7ec4, 0x4dd4,
65 { 0x84, 0x86, 0x08, 0x3c, 0x86, 0xb1, 0x82, 0xa7 }
70 0xb95e9fda, 0x26de, 0x48d2,
71 { 0x88, 0x07, 0x1f, 0x91, 0x07, 0xac, 0x5e, 0x3a }
76 0xe4f61863, 0xfe2c, 0x4b56,
77 { 0xa8, 0xf4, 0x08, 0x51, 0x9b, 0xc4, 0x39, 0xdf }
105 "BusSpecificDriverOverride" },
171 "LoadedImageDevicePath"},
175 "ManagedNetworkSb" },
199 "SimpleFileSystem" },
207 "SimpleTextInputEx" },
209 "SimpleTextOutput" },
237 "UnicodeCollation" },
271 sizeof ( *
guid ) ) == 0 ) {
292 switch ( search_type ) {
297 snprintf ( buf,
sizeof ( buf ),
"UNKNOWN<%d>", search_type );
315 static char attribute_chars[] =
"HGTCDX";
316 static char name[
sizeof ( attribute_chars ) ];
320 for ( i = 0 ; i < (
sizeof ( attribute_chars ) - 1 ) ; i++ ) {
321 if ( attributes & ( 1 << i ) )
322 *(
tmp++) = attribute_chars[i];
367 printf (
"HANDLE %s could not retrieve openers for %s\n",
377 printf (
"HANDLE %s could not retrieve openers for %s: %s\n",
384 for ( i = 0 ; i <
count ; i++ )
407 printf (
"HANDLE %s could not identify %s: %s\n",
434 printf (
"HANDLE %p could not retrieve protocols\n",
handle );
442 printf (
"HANDLE %s could not retrieve protocols: %s\n",
448 for ( i = 0 ; i <
count ; i++ ) {
465 static char text[512];
471 DBG (
"[NULL DevicePath]" );
477 DBG (
"[No DevicePathToText]" );
479 base16_encode ( path,
len, text,
sizeof ( text ) );
489 snprintf ( text,
sizeof ( text ),
"%ls", wtext );
504 static char name[64];
510 DBG (
"[NULL ComponentName]" );
515 if ( ( ( efirc =
wtf->GetDriverName (
wtf,
"eng",
516 &driver_name ) ) != 0 ) &&
517 ( ( efirc =
wtf->GetDriverName (
wtf,
wtf->SupportedLanguages,
518 &driver_name ) ) != 0 ) ) {
534 static char name[64];
540 DBG (
"[NULL ComponentName2]" );
545 if ( ( ( efirc =
wtf->GetDriverName (
wtf,
"en",
546 &driver_name ) ) != 0 ) &&
547 ( ( efirc =
wtf->GetDriverName (
wtf,
wtf->SupportedLanguages,
548 &driver_name ) ) != 0 ) ) {
585 DBG (
"[NULL LoadedImage]" );
592 DBG (
"[Missing DOS header]" );
597 DBG (
"[Bad DOS signature %#04x]", dos_magic );
605 DBG (
"[Bad PE signature %#08x]", pe_magic );
610 opt_magic = opt32->
Magic;
616 DBG (
"[Bad optional header signature %#04x]", opt_magic );
622 DBG (
"[Empty debug directory entry]" );
630 DBG (
"[Not a CodeView debug directory entry (type %d)]",
637 codeview_magic = codeview_nb10->
Signature;
641 name = ( (
void * ) ( codeview_nb10 + 1 ) );
643 name = ( (
void * ) ( codeview_rsds + 1 ) );
645 name = ( (
void * ) ( codeview_mtoc + 1 ) );
647 DBG (
"[Bad CodeView signature %#08x]", codeview_magic );
654 DBG (
"[Excessively long or invalid CodeView name]" );
687 DBG (
"[NULL LoadedImage]" );
705 DBG (
"[NULL LoadedImage]" );
768 #define EFI_HANDLE_NAME_TYPE( protocol, name ) { \ 770 ( const char * ( * ) ( void * ) ) (name), \ 813 static char buf[256];
844 DBG2 (
"%c", (
name ? (
name[0] ?
'Y' :
'E' ) :
'N' ) );
862 for ( i = 0 ; i <
count ; i++ ) {
864 (
sizeof ( buf ) - used ),
",%s",
869 used +=
ssnprintf ( ( buf + used ), (
sizeof ( buf ) - used ),
">" );
EFI_GUID efi_nii31_protocol_guid
Network interface identifier protocol GUID (new version)
EFI_GUID efi_mtftp6_service_binding_protocol_guid
MTFTPv6 service binding protocol GUID.
static EFI_GUID efi_iscsi4_dxe_guid
Old IScsi4Dxe module GUID.
EFI_BOOT_SERVICES * BootServices
A pointer to the EFI Boot Services Table.
EFI_GUID efi_ip4_config_protocol_guid
IPv4 configuration protocol GUID.
struct arbelprm_rc_send_wqe rc
EFI_GUID efi_dns4_service_binding_protocol_guid
DNSv4 service binding protocol GUID.
EFI_GUID efi_dhcp4_service_binding_protocol_guid
DHCPv4 service binding protocol GUID.
EFI Oprn Protocol Information Entry.
This protocol is used to retrieve user readable names of drivers and controllers managed by UEFI Driv...
EFI_GUID efi_hii_font_protocol_guid
HII font protocol GUID.
#define EEFI(efirc)
Convert an EFI status code to an iPXE status code.
int printf(const char *fmt,...)
Write a formatted string to the console.
void dbg_efi_openers(EFI_HANDLE handle, EFI_GUID *protocol)
Print list of openers of a given protocol on a given handle.
EFI_GUID efi_tcg_protocol_guid
TCG protocol GUID.
EFI_GUID efi_block_io2_protocol_guid
Block I/O version 2 protocol GUID.
EFI_HANDLE ControllerHandle
This protocol is used to retrieve user readable names of drivers and controllers managed by UEFI Driv...
EFI_GUID efi_ip6_protocol_guid
IPv6 protocol GUID.
EFI_GUID efi_udp6_service_binding_protocol_guid
UDPv6 service binding protocol GUID.
static const char * efi_loaded_image_filepath_name(EFI_LOADED_IMAGE_PROTOCOL *loaded)
Get loaded image name from file path.
char * strrchr(const char *src, int character)
Find rightmost character within a string.
128 bit buffer containing a unique identifier value.
static const char * efi_conin_name(EFI_SIMPLE_TEXT_INPUT_PROTOCOL *input)
Get console input handle name.
EFI_GUID efi_dhcp6_service_binding_protocol_guid
DHCPv6 service binding protocol GUID.
Retrieve all the handles in the handle database.
EFI_GUID efi_pci_io_protocol_guid
PCI I/O protocol GUID.
The EFI_SIMPLE_TEXT_INPUT_PROTOCOL is used on the ConsoleIn device.
EFI_GUID efi_arp_service_binding_protocol_guid
ARP service binding protocol GUID.
EFI_GUID efi_usb_hc_protocol_guid
USB host controller protocol GUID.
static const char * efi_driver_name(EFI_COMPONENT_NAME_PROTOCOL *wtf)
Get driver name.
EFI_GUID efi_usb2_hc_protocol_guid
USB2 host controller protocol GUID.
EFI_GUID efi_graphics_output_protocol_guid
Graphics output protocol GUID.
uint32_t type
Operating system type.
static EFI_GUID efi_http_boot_dxe_guid
HttpBootDxe module GUID.
EFI_GUID efi_simple_pointer_protocol_guid
Simple pointer protocol GUID.
EFI_GUID efi_loaded_image_device_path_protocol_guid
Loaded image device path protocol GUID.
EFI_GUID efi_dhcp4_protocol_guid
DHCPv4 protocol GUID.
EFI_GUID efi_simple_network_protocol_guid
Simple network protocol GUID.
EFI_GUID efi_loaded_image_protocol_guid
Loaded image protocol GUID.
EFI_DEVICE_PATH_PROTOCOL * FilePath
A pointer to the file path portion specific to DeviceHandle that the EFI Image was loaded from.
Retrieve the next handle fron a RegisterProtocolNotify() event.
void dbg_efi_protocol(EFI_HANDLE handle, EFI_GUID *protocol)
Print protocol information on a given handle.
EFI_GUID efi_tcp4_protocol_guid
TCPv4 protocol GUID.
size_t efi_path_len(EFI_DEVICE_PATH_PROTOCOL *path)
Find length of device path (excluding terminator)
#define EFI_HANDLE_NAME_TYPE(protocol, name)
Define an EFI handle name type.
#define EFI_IMAGE_DOS_SIGNATURE
EFI_GUID efi_pxe_base_code_protocol_guid
PXE base code protocol GUID.
EFI_GUID efi_ip4_config2_protocol_guid
IPv4 configuration 2 protocol GUID.
VOID * ImageBase
The base address at which the image was loaded.
This protocol can be used on any device handle to obtain generic path/location information concerning...
EFI_GUID efi_managed_network_service_binding_protocol_guid
Managed network service binding protocol GUID.
EFI_GUID efi_ip6_service_binding_protocol_guid
IPv6 service binding protocol GUID.
static struct efi_well_known_guid efi_well_known_guids[]
Well-known GUIDs.
EFI Component Name Protocol as defined in the EFI 1.1 specification.
EFI_CLOSE_PROTOCOL CloseProtocol
void dbg_efi_opener(EFI_HANDLE handle, EFI_GUID *protocol, EFI_OPEN_PROTOCOL_INFORMATION_ENTRY *opener)
Print opened protocol information.
static const char * efi_driver_name2(EFI_COMPONENT_NAME2_PROTOCOL *wtf)
Get driver name.
EFI_GUID efi_disk_io_protocol_guid
Disk I/O protocol GUID.
EFI_GUID efi_hii_config_access_protocol_guid
HII configuration access protocol GUID.
EFI_GUID efi_console_control_protocol_guid
Console control protocol GUID.
EFI_GUID efi_simple_text_output_protocol_guid
Simple text output protocol GUID.
The SIMPLE_TEXT_OUTPUT protocol is used to control text-based output devices.
EFI_GUID efi_mtftp4_service_binding_protocol_guid
MTFTPv4 service binding protocol GUID.
static void uuid_mangle(union uuid *uuid)
Change UUID endianness.
int ssnprintf(char *buf, ssize_t ssize, const char *fmt,...)
Version of vsnprintf() that accepts a signed buffer size.
static EFI_DEVICE_PATH_TO_TEXT_PROTOCOL * efidpt
Device path to text protocol.
#define EFI_IMAGE_NT_SIGNATURE
EFI_GUID efi_uga_draw_protocol_guid
UGA draw protocol GUID.
void * memcpy(void *dest, const void *src, size_t len) __nonnull
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
Can be used on any image handle to obtain information about the loaded image.
EFI_GUID efi_tcp6_protocol_guid
TCPv6 protocol GUID.
This protocol converts device paths and device nodes to text.
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * ConOut
A pointer to the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL interface that is associated with ConsoleOutHandle.
EFI_DEVICE_PATH_TO_TEXT_PROTOCOL as defined in UEFI 2.0.
#define EFI_IMAGE_DIRECTORY_ENTRY_DEBUG
EFI_GUID efi_tcp4_service_binding_protocol_guid
TCPv4 service binding protocol GUID.
EFI_GUID efi_tree_protocol_guid
TrEE protocol GUID.
char wtf[42]
Authenticator response string.
#define CODEVIEW_SIGNATURE_RSDS
Debug Data Structure defined in Microsoft C++.
EFI_GUID efi_dhcp6_protocol_guid
DHCPv6 protocol GUID.
EFI_GUID efi_simple_file_system_protocol_guid
Simple file system protocol GUID.
EFI_GUID efi_ip4_service_binding_protocol_guid
IPv4 service binding protocol GUID.
EFI_GUID efi_acpi_table_protocol_guid
ACPI table protocol GUID.
UEFI Component Name 2 Protocol as defined in the UEFI 2.1 specification.
static EFI_GUID efi_iscsi_dxe_guid
IScsiDxe module GUID.
uint16_t count
Number of entries.
EFI_SIMPLE_TEXT_INPUT_PROTOCOL * ConIn
A pointer to the EFI_SIMPLE_TEXT_INPUT_PROTOCOL interface that is associated with ConsoleInHandle.
const char * efi_locate_search_type_name(EFI_LOCATE_SEARCH_TYPE search_type)
Name locate search type.
EFI_HANDLE_PROTOCOL HandleProtocol
EFI_GUID efi_vlan_config_protocol_guid
VLAN configuration protocol GUID.
EFI_GUID efi_ip6_config_protocol_guid
IPv6 configuration protocol GUID.
const char * efi_devpath_text(EFI_DEVICE_PATH_PROTOCOL *path)
Get textual representation of device path.
uint64_t debug
Debug area base address.
#define EFI_OPEN_PROTOCOL_GET_PROTOCOL
const char * efi_handle_name(EFI_HANDLE handle)
Get name of an EFI handle.
static struct efi_handle_name_type efi_handle_name_types[]
EFI handle name types.
const char * efi_guid_ntoa(CONST EFI_GUID *guid)
Convert GUID to a printable string.
char * strerror(int errno)
Retrieve string representation of error number.
EFI_GUID efi_usb_io_protocol_guid
USB I/O protocol GUID.
EFI_GUID efi_load_file2_protocol_guid
Load file 2 protocol GUID.
EFI_HANDLE efi_image_handle
Image handle passed to entry point.
char * strchr(const char *src, int character)
Find character within a string.
EFI_GUID efi_serial_io_protocol_guid
Serial I/O protocol GUID.
#define CODEVIEW_SIGNATURE_MTOC
Debug Data Structure defined by Apple Mach-O to Coff utility.
static EFI_GUID efi_vlan_config_dxe_guid
VlanConfigDxe module GUID.
UINT64 UINTN
Unsigned value of native width.
static const char * efi_pecoff_debug_name(EFI_LOADED_IMAGE_PROTOCOL *loaded)
Get PE/COFF debug filename.
size_t strnlen(const char *src, size_t max)
Get length of string.
EFI image format for PE32, PE32+ and TE.
EFI_GUID efi_udp6_protocol_guid
UDPv6 protocol GUID.
EFI_GUID efi_device_path_protocol_guid
Device path protocol GUID.
static EFI_GUID efi_uefi_pxe_bc_dxe_guid
UefiPxeBcDxe module GUID.
EFI_GUID efi_component_name2_protocol_guid
Component name 2 protocol GUID.
#define VOID
Undeclared type.
EFI_GUID efi_simple_text_input_ex_protocol_guid
Simple text input extension protocol GUID.
void dbg_efi_protocols(EFI_HANDLE handle)
Print list of protocol handlers attached to a handle.
const char * uuid_ntoa(const union uuid *uuid)
Convert UUID to printable string.
EFI_GUID efi_simple_text_input_protocol_guid
Simple text input protocol GUID.
EFI_GUID efi_bus_specific_driver_override_protocol_guid
Bus specific driver override protocol GUID.
EFI_GUID efi_mtftp4_protocol_guid
MTFTPv4 protocol GUID.
EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation
#define CODEVIEW_SIGNATURE_NB10
Debug Data Structure defined in Microsoft C++.
static const char * efi_conout_name(EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *output)
Get console output handle name.
EFI_GUID efi_tcp6_service_binding_protocol_guid
TCPv6 service binding protocol GUID.
EFI_GUID efi_nii_protocol_guid
Network interface identifier protocol GUID (old version)
EFI_GUID efi_dns4_protocol_guid
DNSv4 protocol GUID.
EFI_GUID efi_absolute_pointer_protocol_guid
Absolute pointer protocol GUID.
EFI_GUID efi_arp_protocol_guid
ARP protocol GUID.
EFI_GUID efi_apple_net_boot_protocol_guid
Apple NetBoot protocol GUID.
static const char * efi_first_loaded_image_name(EFI_LOADED_IMAGE_PROTOCOL *loaded)
Get initial loaded image name.
EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle
EFI_GUID efi_block_io_protocol_guid
Block I/O protocol GUID.
#define CONST
Datum is read-only.
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
EFI_GUID * protocol
Protocol.
EFI_GUID efi_pci_root_bridge_io_protocol_guid
PCI root bridge I/O protocol GUID.
const char * efi_open_attributes_name(unsigned int attributes)
Name protocol open attributes.
EFI_GUID efi_http_protocol_guid
HTTP protocol GUID.
EFI_GUID efi_ip4_protocol_guid
IPv4 protocol GUID.
EFI_GUID efi_shim_lock_protocol_guid
Shim lock protocol GUID.
int snprintf(char *buf, size_t size, const char *fmt,...)
Write a formatted string to a buffer.
EFI_GUID efi_http_service_binding_protocol_guid
HTTP service binding protocol GUID.
Retrieve the set of handles from the handle database that support a specified protocol.
EFI_GUID efi_dns6_service_binding_protocol_guid
DNSv6 service binding protocol GUID.
EFI_SYSTEM_TABLE * efi_systab
EFI_OPEN_PROTOCOL OpenProtocol
EFI_GUID efi_component_name_protocol_guid
Component name protocol GUID.
EFI_GUID efi_dns6_protocol_guid
DNSv6 protocol GUID.
uint16_t protocol
Protocol ID.
EFI_LOCATE_SEARCH_TYPE
Enumeration of EFI Locate Search Types.
#define EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC
EFI_GUID efi_unicode_collation_protocol_guid
Unicode collation protocol GUID.
EFI_GUID efi_mtftp6_protocol_guid
MTFTPv6 protocol GUID.
#define DBG(...)
Print a debugging message.
EFI_GUID efi_tcg2_protocol_guid
TCG2 protocol GUID.
EFI_GUID efi_load_file_protocol_guid
Load file protocol GUID.
#define EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC
EFI_GUID efi_udp4_protocol_guid
UDPv4 protocol GUID.
EFI_GUID efi_udp4_service_binding_protocol_guid
UDPv4 service binding protocol GUID.
EFI_DEVICE_PATH_TO_TEXT_PATH ConvertDevicePathToText
int memcmp(const void *first, const void *second, size_t len)
Compare memory regions.
EFI_GUID efi_driver_binding_protocol_guid
Driver binding protocol GUID.
#define NULL
NULL pointer (VOID *)
EFI_REQUEST_PROTOCOL(EFI_DEVICE_PATH_TO_TEXT_PROTOCOL, &efidpt)
EFI_HANDLE ParentHandle
Parent image's image handle.
#define EFI_IMAGE_DEBUG_TYPE_CODEVIEW
The Visual C++ debug information.
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * StdErr
A pointer to the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL interface that is associated with StandardErrorHandl...
EFI_GUID efi_managed_network_protocol_guid
Managed network protocol GUID.