
Up to now the protocols of an EFI handle where contained in an array of fixed size. With the patch series the protocols are managed in a linked list. This both saves memory and gives more flexibility.
The LocateDevicePath boot service is implemented according to the UEFI specification.
A unit test for the LocateDevicePath boot service and the device path to text protocol are added.
Some bug fixes are provided.
v3 Remove patch efi_loader: efi_bootmgr: do not make hidden assignments (A patch to add device path printing in printf() is pending.) Resubmit efi_loader: helloworld.c: remove superfluous include v2 Enhance the helloworld example to check if the image handle is passed corectly. Adjust the related py test.
Use a helper function to initialize EFI objects.
Further minor bug fixes.
Heinrich Schuchardt (18): efi_loader: helloworld.c: remove superfluous include efi_loader: size of media device path node represenation efi_loader: efi_dp_str should print path not node efi_loader: fix efi_convert_device_node_to_text efi_loader: reimplement LocateDevicePath efi_selftest: test EFI_DEVICE_PATH_TO_TEXT_PROTOCOL efi_loader: efi_disk: use efi_add_protocol efi_loader: efi_net: use efi_add_protocol efi_loader: efi_gop: use efi_add_protocol efi_loader: simplify efi_open_protocol efi_loader: simplify find_obj efi_loader: manage protocols in a linked list efi_selftest: compile without special compiler flags efi_selftest: add missing line feed efi_loader: output load options in helloworld test/py: check return code of helloworld efi_loader: pass handle of loaded image efi_loader: helper function to add EFI object to list
cmd/bootefi.c | 7 +- include/efi_loader.h | 8 +- lib/efi_loader/efi_boottime.c | 287 ++++++++++++--------- lib/efi_loader/efi_device_path.c | 43 ++-- lib/efi_loader/efi_device_path_to_text.c | 167 ++++++------ lib/efi_loader/efi_disk.c | 38 +-- lib/efi_loader/efi_gop.c | 16 +- lib/efi_loader/efi_net.c | 35 +-- lib/efi_loader/helloworld.c | 38 ++- lib/efi_selftest/Makefile | 24 +- lib/efi_selftest/efi_selftest.c | 2 +- lib/efi_selftest/efi_selftest_devicepath.c | 391 +++++++++++++++++++++++++++++ test/py/tests/test_efi_loader.py | 2 + 13 files changed, 770 insertions(+), 288 deletions(-) create mode 100644 lib/efi_selftest/efi_selftest_devicepath.c