• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
efi_main(EFI_HANDLE image,EFI_SYSTEM_TABLE * systab)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 = uefi_call_wrapper(systab->BootServices->HandleProtocol,
23 				3,
24 				image,
25 				&LoadedImageProtocol,
26 				(void **) &loaded_image);
27 	if (EFI_ERROR(status)) {
28 		Print(L"handleprotocol: %r\n", status);
29 	}
30 
31 #if 0
32 	BS->HandleProtocol(loaded_image->DeviceHandle, &DevicePathProtocol, (void **) &dev_path);
33 
34 	Print(L"Image device      : %s\n", DevicePathToStr(dev_path));
35 	Print(L"Image file        : %s\n", DevicePathToStr(loaded_image->FilePath));
36 #endif
37 	Print(L"Image base        : %lx\n", loaded_image->ImageBase);
38 	Print(L"Image size        : %lx\n", loaded_image->ImageSize);
39 	Print(L"Load options size : %lx\n", loaded_image->LoadOptionsSize);
40 	Print(L"Load options      : %s\n", loaded_image->LoadOptions);
41 
42 	return EFI_SUCCESS;
43 }
44