Curle
d588e232c4
This branch has been dedicated to purely the UEFI bootloader. As such, all other code has been removed. This code can be compiled with Visual Studio, gcc or llvm.
44 lines
1.1 KiB
C
44 lines
1.1 KiB
C
#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;
|
|
}
|