Subversion Repositories HelenOS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. #include <efi.h>
  2. #include <efilib.h>
  3.  
  4. typedef EFI_STATUS (*foo_t)(EFI_HANDLE, EFI_GUID *, VOID **);
  5. typedef struct {
  6.     unsigned long addr;
  7.     unsigned long gp;
  8. } fdesc_t;
  9.  
  10. EFI_LOADED_IMAGE my_loaded;
  11.  
  12. EFI_STATUS
  13. efi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *systab)
  14. {
  15.     EFI_LOADED_IMAGE *loaded_image = NULL;
  16. #if 0
  17.     EFI_DEVICE_PATH *dev_path;
  18. #endif
  19.     EFI_STATUS status;
  20.  
  21.     InitializeLib(image, systab);
  22.     status = systab->BootServices->HandleProtocol(image, &LoadedImageProtocol, (void **) &loaded_image);
  23.     if (EFI_ERROR(status)) {
  24.         Print(L"handleprotocol: %r\n", status);
  25.     }
  26.  
  27. #if 0
  28.     BS->HandleProtocol(loaded_image->DeviceHandle, &DevicePathProtocol, (void **) &dev_path);
  29.  
  30.     Print(L"Image device      : %s\n", DevicePathToStr(dev_path));
  31.     Print(L"Image file        : %s\n", DevicePathToStr(loaded_image->FilePath));
  32. #endif
  33.     Print(L"Image base        : %lx\n", loaded_image->ImageBase);
  34.     Print(L"Image size        : %lx\n", loaded_image->ImageSize);
  35.     Print(L"Load options size : %lx\n", loaded_image->LoadOptionsSize);
  36.     Print(L"Load options      : %s\n", loaded_image->LoadOptions);
  37.  
  38.     return EFI_SUCCESS;
  39. }
  40.