Page MenuHomeFreeBSD

loader.efi: replace HandleProtocol() with OpenProtocol()
ClosedPublic

Authored by tsoome on Aug 4 2019, 9:11 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Dec 15, 11:40 AM
Unknown Object (File)
Sun, Dec 15, 11:40 AM
Unknown Object (File)
Sun, Dec 15, 11:37 AM
Unknown Object (File)
Sun, Dec 15, 11:29 AM
Unknown Object (File)
Sun, Dec 15, 11:26 AM
Unknown Object (File)
Sun, Dec 8, 10:20 AM
Unknown Object (File)
Sun, Dec 8, 10:20 AM
Unknown Object (File)
Sun, Dec 8, 10:20 AM
Subscribers

Details

Summary

The HandleProtocol() is deprecated interface and we should use OpenProtocol() instead. Moreover, in some firmware implementation(s), the HandleProtocol() does return device path using static storage, so we can not keep the value returned there. With same firmware, the OpenProtocol() does return data we do not need to clone.

Test Plan

Tested by network and disk boot.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

love the idea, but think it would be better to create a centralized location where we wrap this.
Call me paranoid, but I fear there may be a EFI bios we need to do this for :(
But also, it will make the code easier to read, so win/win.

stand/efi/boot1/proto.c
64 ↗(On Diff #60452)

maybe we should create wrappers for this stuff to make it less verbose everywhere we use it.

This revision is now accepted and ready to land.Aug 5 2019, 1:54 AM
In D21162#459738, @imp wrote:

love the idea, but think it would be better to create a centralized location where we wrap this.
Call me paranoid, but I fear there may be a EFI bios we need to do this for :(
But also, it will make the code easier to read, so win/win.

hm, I got some idea about it, I'll think a bit...

Implement OpenProtocolByHandle()

This revision now requires review to proceed.Aug 5 2019, 10:11 AM
This revision is now accepted and ready to land.Aug 6 2019, 5:29 PM