[efi] Eliminate uses of HandleProtocol()

It is now simpler to use efi_open() than to use HandleProtocol() to
obtain an ephemeral protocol instance.  Remove all remaining uses of
HandleProtocol() to simplify the code.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/34/merge
Michael Brown 2025-03-24 14:22:54 +00:00
parent bac3187439
commit 37897fbd40
2 changed files with 3 additions and 9 deletions

View File

@ -162,15 +162,11 @@ void dbg_efi_openers ( EFI_HANDLE handle, EFI_GUID *protocol ) {
* @v protocol Protocol GUID
*/
void dbg_efi_protocol ( EFI_HANDLE handle, EFI_GUID *protocol ) {
EFI_BOOT_SERVICES *bs = efi_systab->BootServices;
VOID *interface;
EFI_STATUS efirc;
int rc;
/* Get protocol instance */
if ( ( efirc = bs->HandleProtocol ( handle, protocol,
&interface ) ) != 0 ) {
rc = -EEFI ( efirc );
if ( ( rc = efi_open ( handle, protocol, &interface ) ) != 0 ) {
printf ( "HANDLE %s could not identify %s: %s\n",
efi_handle_name ( handle ),
efi_guid_ntoa ( protocol ), strerror ( rc ) );

View File

@ -1000,10 +1000,8 @@ static int efi_file_path_claim ( struct efi_file_path *file ) {
}
/* Locate device path protocol on this handle */
if ( ( ( efirc = bs->HandleProtocol ( handle,
&efi_device_path_protocol_guid,
&old ) ) != 0 ) ) {
rc = -EEFI ( efirc );
if ( ( rc = efi_open ( handle, &efi_device_path_protocol_guid,
&old ) != 0 ) ) {
DBGC ( file, "EFIFILE %s could not locate %s: %s\n",
efi_file_name ( &file->file ),
efi_devpath_text ( file->path ), strerror ( rc ) );