diff options
Diffstat (limited to 'apps/t6.c')
-rw-r--r-- | apps/t6.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/apps/t6.c b/apps/t6.c new file mode 100644 index 0000000..f95ea66 --- /dev/null +++ b/apps/t6.c @@ -0,0 +1,43 @@ +#include <efi.h> +#include <efilib.h> + +typedef EFI_STATUS (*foo_t)(EFI_HANDLE, EFI_GUID *, VOID **); +typedef struct { + unsigned long addr; + unsigned long gp; +} fdesc_t; + +EFI_LOADED_IMAGE my_loaded; + +EFI_STATUS +efi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *systab) +{ + EFI_LOADED_IMAGE *loaded_image = NULL; +#if 0 + EFI_DEVICE_PATH *dev_path; +#endif + EFI_STATUS status; + + InitializeLib(image, systab); + status = uefi_call_wrapper(systab->BootServices->HandleProtocol, + 3, + image, + &LoadedImageProtocol, + (void **) &loaded_image); + if (EFI_ERROR(status)) { + Print(L"handleprotocol: %r\n", status); + } + +#if 0 + BS->HandleProtocol(loaded_image->DeviceHandle, &DevicePathProtocol, (void **) &dev_path); + + Print(L"Image device : %s\n", DevicePathToStr(dev_path)); + Print(L"Image file : %s\n", DevicePathToStr(loaded_image->FilePath)); +#endif + Print(L"Image base : %lx\n", loaded_image->ImageBase); + Print(L"Image size : %lx\n", loaded_image->ImageSize); + Print(L"Load options size : %lx\n", loaded_image->LoadOptionsSize); + Print(L"Load options : %s\n", loaded_image->LoadOptions); + + return EFI_SUCCESS; +} |