Imported Upstream version 3.0
[platform/upstream/gnu-efi.git] / apps / t6.c
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 = 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 }