0,0 → 1,39 |
#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 = systab->BootServices->HandleProtocol(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; |
} |