~galfy/helenos/bird-port-mainline

« back to all changes in this revision

Viewing changes to boot/arch/ia64/loader/gefi/apps/t3.c

  • Committer: Martin Decky
  • Date: 2009-08-04 11:19:19 UTC
  • Revision ID: martin@uranus.dsrg.hide.ms.mff.cuni.cz-20090804111919-evyclddlr3v5lhmp
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <efi.h>
 
2
#include <efilib.h>
 
3
 
 
4
EFI_STATUS
 
5
efi_main(
 
6
        EFI_HANDLE image_handle,
 
7
        EFI_SYSTEM_TABLE *systab
 
8
)
 
9
{
 
10
        EFI_GUID loaded_image_protocol = LOADED_IMAGE_PROTOCOL;
 
11
        EFI_STATUS efi_status;
 
12
        EFI_LOADED_IMAGE *li;
 
13
        UINTN pat = PoolAllocationType;
 
14
        VOID *void_li_p;
 
15
 
 
16
        InitializeLib(image_handle, systab);
 
17
        PoolAllocationType = 2; /* klooj */
 
18
 
 
19
        Print(L"Hello World! (0xd=0x%x, 13=%d)\n", 13, 13);
 
20
 
 
21
        Print(L"before InitializeLib(): PoolAllocationType=%d\n",
 
22
                pat);
 
23
 
 
24
        Print(L" after InitializeLib(): PoolAllocationType=%d\n",
 
25
                PoolAllocationType);
 
26
 
 
27
        /*
 
28
         * Locate loaded_image_handle instance.
 
29
         */
 
30
 
 
31
        Print(L"BS->HandleProtocol()  ");
 
32
 
 
33
        efi_status = BS->HandleProtocol(
 
34
                image_handle,
 
35
                &loaded_image_protocol,
 
36
                &void_li_p);
 
37
        li = void_li_p;
 
38
 
 
39
        Print(L"%xh (%r)\n", efi_status, efi_status);
 
40
 
 
41
        if (efi_status != EFI_SUCCESS) {
 
42
                return efi_status;
 
43
        }
 
44
 
 
45
        Print(L"  li: %xh\n", li);
 
46
 
 
47
        if (!li) {
 
48
                return EFI_UNSUPPORTED;
 
49
        }
 
50
 
 
51
        Print(L"  li->Revision:        %xh\n", li->Revision);
 
52
        Print(L"  li->ParentHandle:    %xh\n", li->ParentHandle);
 
53
        Print(L"  li->SystemTable:     %xh\n", li->SystemTable);
 
54
        Print(L"  li->DeviceHandle:    %xh\n", li->DeviceHandle);
 
55
        Print(L"  li->FilePath:        %xh\n", li->FilePath);
 
56
        Print(L"  li->Reserved:        %xh\n", li->Reserved);
 
57
        Print(L"  li->LoadOptionsSize: %xh\n", li->LoadOptionsSize);
 
58
        Print(L"  li->LoadOptions:     %xh\n", li->LoadOptions);
 
59
        Print(L"  li->ImageBase:       %xh\n", li->ImageBase);
 
60
        Print(L"  li->ImageSize:       %xh\n", li->ImageSize);
 
61
        Print(L"  li->ImageCodeType:   %xh\n", li->ImageCodeType);
 
62
        Print(L"  li->ImageDataType:   %xh\n", li->ImageDataType);
 
63
        Print(L"  li->Unload:          %xh\n", li->Unload);
 
64
 
 
65
#if 0
 
66
typedef struct {
 
67
    UINT32                          Revision;
 
68
    EFI_HANDLE                      ParentHandle;
 
69
    struct _EFI_SYSTEM_TABLE        *SystemTable;
 
70
 
 
71
    // Source location of image
 
72
    EFI_HANDLE                      DeviceHandle;
 
73
    EFI_DEVICE_PATH                 *FilePath;
 
74
    VOID                            *Reserved;
 
75
 
 
76
    // Images load options
 
77
    UINT32                          LoadOptionsSize;
 
78
    VOID                            *LoadOptions;
 
79
 
 
80
    // Location of where image was loaded
 
81
    VOID                            *ImageBase;
 
82
    UINT64                          ImageSize;
 
83
    EFI_MEMORY_TYPE                 ImageCodeType;
 
84
    EFI_MEMORY_TYPE                 ImageDataType;
 
85
 
 
86
    // If the driver image supports a dynamic unload request
 
87
    EFI_IMAGE_UNLOAD                Unload;
 
88
 
 
89
} EFI_LOADED_IMAGE;
 
90
#endif
 
91
 
 
92
        return EFI_SUCCESS;
 
93
}