summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown2014-07-31 11:44:25 +0200
committerMichael Brown2014-07-31 12:56:44 +0200
commit2e0821b9edc354387687d7c01e18616964ceaeda (patch)
tree7975ea34b0f82ed519363049e20738d97f02b129
parent[efi] Add ability to dump all openers of a given protocol on a handle (diff)
downloadipxe-2e0821b9edc354387687d7c01e18616964ceaeda.tar.gz
ipxe-2e0821b9edc354387687d7c01e18616964ceaeda.tar.xz
ipxe-2e0821b9edc354387687d7c01e18616964ceaeda.zip
[efi] Use efi_handle_name() instead of efi_handle_devpath_text()
Signed-off-by: Michael Brown <mcb30@ipxe.org>
-rw-r--r--src/drivers/net/efi/snp.c6
-rw-r--r--src/drivers/net/efi/snponly.c2
-rw-r--r--src/include/ipxe/efi/efi.h1
-rw-r--r--src/interface/efi/efi_bofm.c9
-rw-r--r--src/interface/efi/efi_debug.c34
-rw-r--r--src/interface/efi/efi_driver.c49
-rw-r--r--src/interface/efi/efi_pci.c20
-rw-r--r--src/interface/efi/efi_wrap.c16
8 files changed, 49 insertions, 88 deletions
diff --git a/src/drivers/net/efi/snp.c b/src/drivers/net/efi/snp.c
index 958db712..0e7f500b 100644
--- a/src/drivers/net/efi/snp.c
+++ b/src/drivers/net/efi/snp.c
@@ -49,7 +49,7 @@ static int snp_supported ( EFI_HANDLE device ) {
/* Check that this is not a device we are providing ourselves */
if ( find_snpdev ( device ) != NULL ) {
DBGCP ( device, "SNP %p %s is provided by this binary\n",
- device, efi_handle_devpath_text ( device ) );
+ device, efi_handle_name ( device ) );
return -ENOTTY;
}
@@ -59,11 +59,11 @@ static int snp_supported ( EFI_HANDLE device ) {
NULL, efi_image_handle, device,
EFI_OPEN_PROTOCOL_TEST_PROTOCOL))!=0){
DBGCP ( device, "SNP %p %s is not an SNP device\n",
- device, efi_handle_devpath_text ( device ) );
+ device, efi_handle_name ( device ) );
return -EEFI ( efirc );
}
DBGC ( device, "SNP %p %s is an SNP device\n",
- device, efi_handle_devpath_text ( device ) );
+ device, efi_handle_name ( device ) );
return 0;
}
diff --git a/src/drivers/net/efi/snponly.c b/src/drivers/net/efi/snponly.c
index de55bd0d..d8dc86ad 100644
--- a/src/drivers/net/efi/snponly.c
+++ b/src/drivers/net/efi/snponly.c
@@ -43,7 +43,7 @@ static int snponly_supported ( EFI_HANDLE device ) {
return -ENOTTY;
DBGC ( device, "SNP %p %s is the SNP chainloading device\n",
- device, efi_handle_devpath_text ( device ) );
+ device, efi_handle_name ( device ) );
return 0;
}
diff --git a/src/include/ipxe/efi/efi.h b/src/include/ipxe/efi/efi.h
index 51b501c1..0e029632 100644
--- a/src/include/ipxe/efi/efi.h
+++ b/src/include/ipxe/efi/efi.h
@@ -150,7 +150,6 @@ extern EFI_SYSTEM_TABLE *efi_systab;
extern const char * efi_guid_ntoa ( EFI_GUID *guid );
extern const char * efi_devpath_text ( EFI_DEVICE_PATH_PROTOCOL *path );
-extern const char * efi_handle_devpath_text ( EFI_HANDLE handle );
extern const char * efi_handle_name ( EFI_HANDLE handle );
extern void dbg_efi_openers ( EFI_HANDLE handle, EFI_GUID *protocol );
diff --git a/src/interface/efi/efi_bofm.c b/src/interface/efi/efi_bofm.c
index e49dbe40..8d277e81 100644
--- a/src/interface/efi/efi_bofm.c
+++ b/src/interface/efi/efi_bofm.c
@@ -175,7 +175,7 @@ static int efi_bofm_supported ( EFI_HANDLE device ) {
/* Look for a BOFM driver */
if ( ( rc = bofm_find_driver ( &pci ) ) != 0 ) {
DBGCP ( device, "EFIBOFM %p %s has no driver\n",
- device, efi_handle_devpath_text ( device ) );
+ device, efi_handle_name ( device ) );
return rc;
}
@@ -184,7 +184,7 @@ static int efi_bofm_supported ( EFI_HANDLE device ) {
&bofm1.interface ) ) != 0 ) {
rc = -EEFI ( efirc );
DBGC ( device, "EFIBOFM %p %s cannot find BOFM protocol\n",
- device, efi_handle_devpath_text ( device ) );
+ device, efi_handle_name ( device ) );
return rc;
}
@@ -195,13 +195,12 @@ static int efi_bofm_supported ( EFI_HANDLE device ) {
0x02 /* Version */ ))!=0){
rc = -EEFI ( efirc );
DBGC ( device, "EFIBOFM %p %s could not register support: %s\n",
- device, efi_handle_devpath_text ( device ),
- strerror ( rc ) );
+ device, efi_handle_name ( device ), strerror ( rc ) );
return rc;
}
DBGC ( device, "EFIBOFM %p %s has driver \"%s\"\n",
- device, efi_handle_devpath_text ( device ), pci.id->name );
+ device, efi_handle_name ( device ), pci.id->name );
return 0;
}
diff --git a/src/interface/efi/efi_debug.c b/src/interface/efi/efi_debug.c
index 21bb5fc6..1c865f82 100644
--- a/src/interface/efi/efi_debug.c
+++ b/src/interface/efi/efi_debug.c
@@ -550,37 +550,3 @@ const char * efi_handle_name ( EFI_HANDLE handle ) {
return "UNKNOWN";
}
-
-/**
- * Get textual representation of device path for a handle
- *
- * @v handle EFI handle
- * @ret text Textual representation of device path, or NULL
- */
-const char * efi_handle_devpath_text ( EFI_HANDLE handle ) {
- EFI_BOOT_SERVICES *bs = efi_systab->BootServices;
- union {
- EFI_DEVICE_PATH_PROTOCOL *path;
- void *interface;
- } path;
- const char *text;
- EFI_STATUS efirc;
-
- /* Obtain device path, if any */
- if ( ( efirc = bs->OpenProtocol ( handle,
- &efi_device_path_protocol_guid,
- &path.interface, efi_image_handle,
- handle,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL ))!=0){
- return NULL;
- }
-
- /* Format device path */
- text = efi_devpath_text ( path.path );
-
- /* Close device path */
- bs->CloseProtocol ( handle, &efi_device_path_protocol_guid,
- efi_image_handle, handle );
-
- return text;
-}
diff --git a/src/interface/efi/efi_driver.c b/src/interface/efi/efi_driver.c
index 6ebfee5b..c67d6d65 100644
--- a/src/interface/efi/efi_driver.c
+++ b/src/interface/efi/efi_driver.c
@@ -134,16 +134,15 @@ int efidev_child_add ( struct efi_device *efidev, EFI_HANDLE device ) {
) ) != 0 ) {
rc = -EEFI ( efirc );
DBGC ( efidev->device, "EFIDRV %p %s could not add child",
- efidev->device, efi_devpath_text ( efidev->path ) );
+ efidev->device, efi_handle_name ( efidev->device ) );
DBGC ( efidev->device, " %p %s: %s\n", device,
- efi_handle_devpath_text ( device ), strerror ( rc ) );
+ efi_handle_name ( device ), strerror ( rc ) );
return rc;
}
DBGC2 ( efidev->device, "EFIDRV %p %s added child",
- efidev->device, efi_devpath_text ( efidev->path ) );
- DBGC2 ( efidev->device, " %p %s\n",
- device, efi_handle_devpath_text ( device ) );
+ efidev->device, efi_handle_name ( efidev->device ) );
+ DBGC2 ( efidev->device, " %p %s\n", device, efi_handle_name ( device ));
return 0;
}
@@ -161,9 +160,9 @@ void efidev_child_del ( struct efi_device *efidev, EFI_HANDLE device ) {
&efi_device_path_protocol_guid,
efi_image_handle, device );
DBGC2 ( efidev->device, "EFIDRV %p %s removed child",
- efidev->device, efi_devpath_text ( efidev->path ) );
+ efidev->device, efi_handle_name ( efidev->device ) );
DBGC2 ( efidev->device, " %p %s\n",
- device, efi_handle_devpath_text ( device ) );
+ device, efi_handle_name ( device ) );
}
/**
@@ -181,7 +180,7 @@ efi_driver_supported ( EFI_DRIVER_BINDING_PROTOCOL *driver __unused,
int rc;
DBGCP ( device, "EFIDRV %p %s DRIVER_SUPPORTED",
- device, efi_handle_devpath_text ( device ) );
+ device, efi_handle_name ( device ) );
if ( child )
DBGCP ( device, " (child %s)", efi_devpath_text ( child ) );
DBGCP ( device, "\n" );
@@ -189,7 +188,7 @@ efi_driver_supported ( EFI_DRIVER_BINDING_PROTOCOL *driver __unused,
/* Do nothing if we are already driving this device */
if ( efidev_find ( device ) != NULL ) {
DBGCP ( device, "EFIDRV %p %s is already started\n",
- device, efi_handle_devpath_text ( device ) );
+ device, efi_handle_name ( device ) );
return EFI_ALREADY_STARTED;
}
@@ -197,13 +196,13 @@ efi_driver_supported ( EFI_DRIVER_BINDING_PROTOCOL *driver __unused,
for_each_table_entry ( efidrv, EFI_DRIVERS ) {
if ( ( rc = efidrv->supported ( device ) ) == 0 ) {
DBGC ( device, "EFIDRV %p %s has driver \"%s\"\n",
- device, efi_handle_devpath_text ( device ),
+ device, efi_handle_name ( device ),
efidrv->name );
return 0;
}
}
DBGCP ( device, "EFIDRV %p %s has no driver\n",
- device, efi_handle_devpath_text ( device ) );
+ device, efi_handle_name ( device ) );
return EFI_UNSUPPORTED;
}
@@ -230,7 +229,7 @@ efi_driver_start ( EFI_DRIVER_BINDING_PROTOCOL *driver __unused,
int rc;
DBGC ( device, "EFIDRV %p %s DRIVER_START",
- device, efi_handle_devpath_text ( device ) );
+ device, efi_handle_name ( device ) );
if ( child )
DBGC ( device, " (child %s)", efi_devpath_text ( child ) );
DBGC ( device, "\n" );
@@ -239,7 +238,7 @@ efi_driver_start ( EFI_DRIVER_BINDING_PROTOCOL *driver __unused,
efidev = efidev_find ( device );
if ( efidev ) {
DBGCP ( device, "EFIDRV %p %s is already started\n",
- device, efi_devpath_text ( efidev->path ) );
+ device, efi_handle_name ( device ) );
efirc = EFI_ALREADY_STARTED;
goto err_already_started;
}
@@ -263,7 +262,7 @@ efi_driver_start ( EFI_DRIVER_BINDING_PROTOCOL *driver __unused,
EFI_OPEN_PROTOCOL_BY_DRIVER ) ) != 0){
rc = -EEFI ( efirc );
DBGC ( device, "EFIDRV %p %s could not open device path: %s\n",
- device, efi_handle_devpath_text ( device ),
+ device, efi_handle_name ( device ),
strerror ( rc ) );
goto err_no_device_path;
}
@@ -273,20 +272,20 @@ efi_driver_start ( EFI_DRIVER_BINDING_PROTOCOL *driver __unused,
for_each_table_entry ( efidrv, EFI_DRIVERS ) {
if ( ( rc = efidrv->supported ( device ) ) != 0 ) {
DBGC ( device, "EFIDEV %p %s is not supported by "
- "driver \"%s\": %s\n",
- device, efi_devpath_text ( efidev->path ),
- efidrv->name, strerror ( rc ) );
+ "driver \"%s\": %s\n", device,
+ efi_handle_name ( device ), efidrv->name,
+ strerror ( rc ) );
continue;
}
if ( ( rc = efidrv->start ( efidev ) ) == 0 ) {
efidev->driver = efidrv;
DBGC ( device, "EFIDRV %p %s using driver \"%s\"\n",
- device, efi_devpath_text ( efidev->path ),
+ device, efi_handle_name ( device ),
efidev->driver->name );
return 0;
}
DBGC ( device, "EFIDRV %p %s could not start driver \"%s\": "
- "%s\n", device, efi_devpath_text ( efidev->path ),
+ "%s\n", device, efi_handle_name ( device ),
efidrv->name, strerror ( rc ) );
}
efirc = EFI_UNSUPPORTED;
@@ -321,10 +320,10 @@ efi_driver_stop ( EFI_DRIVER_BINDING_PROTOCOL *driver __unused,
UINTN i;
DBGC ( device, "EFIDRV %p %s DRIVER_STOP",
- device, efi_handle_devpath_text ( device ) );
+ device, efi_handle_name ( device ) );
for ( i = 0 ; i < num_children ; i++ ) {
DBGC ( device, "%s%p %s", ( i ? ", " : " child " ),
- children[i], efi_handle_devpath_text ( children[i] ) );
+ children[i], efi_handle_name ( children[i] ) );
}
DBGC ( device, "\n" );
@@ -332,7 +331,7 @@ efi_driver_stop ( EFI_DRIVER_BINDING_PROTOCOL *driver __unused,
efidev = efidev_find ( device );
if ( ! efidev ) {
DBGCP ( device, "EFIDRV %p %s is not started\n",
- device, efi_devpath_text ( efidev->path ) );
+ device, efi_handle_name ( device ) );
return 0;
}
@@ -488,17 +487,17 @@ static int efi_driver_connect ( EFI_HANDLE device ) {
/* Disconnect any existing drivers */
DBGC ( device, "EFIDRV %p %s disconnecting existing drivers\n",
- device, efi_handle_devpath_text ( device ) );
+ device, efi_handle_name ( device ) );
bs->DisconnectController ( device, NULL, NULL );
/* Connect our driver */
DBGC ( device, "EFIDRV %p %s connecting new drivers\n",
- device, efi_handle_devpath_text ( device ) );
+ device, efi_handle_name ( device ) );
if ( ( efirc = bs->ConnectController ( device, drivers, NULL,
FALSE ) ) != 0 ) {
rc = -EEFI ( efirc );
DBGC ( device, "EFIDRV %p %s could not connect new drivers: "
- "%s\n", device, efi_handle_devpath_text ( device ),
+ "%s\n", device, efi_handle_name ( device ),
strerror ( rc ) );
return rc;
}
diff --git a/src/interface/efi/efi_pci.c b/src/interface/efi/efi_pci.c
index 7132263b..5b58c9b6 100644
--- a/src/interface/efi/efi_pci.c
+++ b/src/interface/efi/efi_pci.c
@@ -149,8 +149,7 @@ int efipci_open ( EFI_HANDLE device, UINT32 attributes,
device, attributes ) ) != 0 ) {
rc = -EEFI_PCI ( efirc );
DBGCP ( device, "EFIPCI %p %s cannot open PCI protocols: %s\n",
- device, efi_handle_devpath_text ( device ),
- strerror ( rc ) );
+ device, efi_handle_name ( device ), strerror ( rc ) );
goto err_open_protocol;
}
@@ -160,14 +159,13 @@ int efipci_open ( EFI_HANDLE device, UINT32 attributes,
&pci_fn ) ) != 0 ) {
rc = -EEFI ( efirc );
DBGC ( device, "EFIPCI %p %s could not get PCI location: %s\n",
- device, efi_handle_devpath_text ( device ),
- strerror ( rc ) );
+ device, efi_handle_name ( device ), strerror ( rc ) );
goto err_get_location;
}
- DBGC2 ( device, "EFIPCI %p %s is PCI %04lx:%02lx:%02lx.%lx\n",
- device, efi_handle_devpath_text ( device ),
- ( ( unsigned long ) pci_segment ), ( ( unsigned long ) pci_bus),
- ( ( unsigned long ) pci_dev ), ( ( unsigned long ) pci_fn ) );
+ DBGC2 ( device, "EFIPCI %p %s is PCI %04lx:%02lx:%02lx.%lx\n", device,
+ efi_handle_name ( device ), ( ( unsigned long ) pci_segment ),
+ ( ( unsigned long ) pci_bus ), ( ( unsigned long ) pci_dev ),
+ ( ( unsigned long ) pci_fn ) );
/* Try to enable I/O cycles, memory cycles, and bus mastering.
* Some platforms will 'helpfully' report errors if these bits
@@ -189,7 +187,7 @@ int efipci_open ( EFI_HANDLE device, UINT32 attributes,
pci_init ( pci, PCI_BUSDEVFN ( pci_bus, pci_dev, pci_fn ) );
if ( ( rc = pci_read_config ( pci ) ) != 0 ) {
DBGC ( device, "EFIPCI %p %s cannot read PCI configuration: "
- "%s\n", device, efi_handle_devpath_text ( device ),
+ "%s\n", device, efi_handle_name ( device ),
strerror ( rc ) );
goto err_pci_read_config;
}
@@ -261,11 +259,11 @@ static int efipci_supported ( EFI_HANDLE device ) {
/* Look for a driver */
if ( ( rc = pci_find_driver ( &pci ) ) != 0 ) {
DBGCP ( device, "EFIPCI %p %s has no driver\n",
- device, efi_handle_devpath_text ( device ) );
+ device, efi_handle_name ( device ) );
return rc;
}
DBGC ( device, "EFIPCI %p %s has driver \"%s\"\n",
- device, efi_handle_devpath_text ( device ), pci.id->name );
+ device, efi_handle_name ( device ), pci.id->name );
return 0;
}
diff --git a/src/interface/efi/efi_wrap.c b/src/interface/efi/efi_wrap.c
index b9b30118..2108cc2a 100644
--- a/src/interface/efi/efi_wrap.c
+++ b/src/interface/efi/efi_wrap.c
@@ -107,7 +107,7 @@ efi_handle_protocol_wrapper ( EFI_HANDLE handle, EFI_GUID *protocol,
EFI_STATUS efirc;
DBGC ( colour, "HandleProtocol ( %p %s, %s, ... ) ", handle,
- efi_handle_devpath_text ( handle ), efi_guid_ntoa ( protocol ) );
+ efi_handle_name ( handle ), efi_guid_ntoa ( protocol ) );
efirc = bs->HandleProtocol ( handle, protocol, interface );
DBGC ( colour, "= %s ( %p ) -> %p\n",
efi_status ( efirc ), *interface, retaddr );
@@ -153,7 +153,7 @@ efi_locate_device_path_wrapper ( EFI_GUID *protocol,
DBGC ( colour, "= %s ( %p, ",
efi_status ( efirc ), efi_devpath_text ( *device_path ) );
DBGC ( colour, "%p %s ) -> %p\n",
- *device, efi_handle_devpath_text ( *device ), retaddr );
+ *device, efi_handle_name ( *device ), retaddr );
return efirc;
}
@@ -170,11 +170,11 @@ efi_open_protocol_wrapper ( EFI_HANDLE handle, EFI_GUID *protocol,
EFI_STATUS efirc;
DBGC ( colour, "OpenProtocol ( %p %s, %s, ..., ", handle,
- efi_handle_devpath_text ( handle ), efi_guid_ntoa ( protocol ) );
+ efi_handle_name ( handle ), efi_guid_ntoa ( protocol ) );
DBGC ( colour, "%p %s, ", agent_handle,
- efi_handle_devpath_text ( agent_handle ) );
+ efi_handle_name ( agent_handle ) );
DBGC ( colour, "%p %s, %#x ) ", controller_handle,
- efi_handle_devpath_text ( controller_handle ), attributes );
+ efi_handle_name ( controller_handle ), attributes );
efirc = bs->OpenProtocol ( handle, protocol, interface, agent_handle,
controller_handle, attributes );
DBGC ( colour, "= %s ( %p ) -> %p\n",
@@ -228,12 +228,12 @@ void efi_wrap ( EFI_HANDLE handle, EFI_LOADED_IMAGE_PROTOCOL *loaded ) {
/* Provide system table wrapper to image */
loaded->SystemTable = &efi_systab_wrapper;
DBGC ( colour, "Wrapped image %p %s at base %p has protocols:\n",
- handle, efi_handle_devpath_text ( handle ), loaded->ImageBase );
+ handle, efi_handle_name ( handle ), loaded->ImageBase );
DBGC_EFI_PROTOCOLS ( colour, handle );
DBGC ( colour, "Parent image %p %s\n", loaded->ParentHandle,
- efi_handle_devpath_text ( loaded->ParentHandle ) );
+ efi_handle_name ( loaded->ParentHandle ) );
DBGC ( colour, "Device %p %s ", loaded->DeviceHandle,
- efi_handle_devpath_text ( loaded->DeviceHandle ) );
+ efi_handle_name ( loaded->DeviceHandle ) );
DBGC ( colour, "file %p %s\n", loaded->FilePath,
efi_devpath_text ( loaded->FilePath ) );
}