Subversion Repositories HelenOS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2726 vana 1
#define EFI_SUCCESS     0
2
 
3
typedef short           CHAR16;
4
typedef unsigned long       UINTN;
5
typedef unsigned long long  UINT64;
6
typedef unsigned int        UINT32;
7
typedef void *          EFI_HANDLE;
8
typedef UINTN           EFI_STATUS;
9
 
10
typedef struct _EFI_TABLE_HEARDER {
11
    UINT64                      Signature;
12
    UINT32                      Revision;
13
    UINT32                      HeaderSize;
14
    UINT32                      CRC32;
15
    UINT32                      Reserved;
16
} EFI_TABLE_HEADER;
17
 
18
typedef EFI_STATUS (*EFI_TEXT_STRING) (void *This, CHAR16 *String);
19
 
20
typedef struct _SIMPLE_TEXT_OUTPUT_INTERFACE {
21
    void *                  Reset;
22
 
23
    EFI_TEXT_STRING                 OutputString;
24
} SIMPLE_TEXT_OUTPUT_INTERFACE;
25
 
26
typedef struct _EFI_SYSTEM_TABLE {
27
    EFI_TABLE_HEADER                Hdr;
28
 
29
    CHAR16                          *FirmwareVendor;
30
    UINT32                          FirmwareRevision;
31
 
32
    EFI_HANDLE                      ConsoleInHandle;
33
 /*SIMPLE_INPUT_INTERFACE*/ void    *ConIn;
34
 
35
    EFI_HANDLE                      ConsoleOutHandle;
36
    SIMPLE_TEXT_OUTPUT_INTERFACE    *ConOut;
37
 
38
    EFI_HANDLE                      StandardErrorHandle;
39
    SIMPLE_TEXT_OUTPUT_INTERFACE    *StdErr;
40
 
41
 /*EFI_RUNTIME_SERVICES*/ void            *RuntimeServices;
42
 /*EFI_BOOT_SERVICES*/ void               *BootServices;
43
 
44
    UINTN                           NumberOfTableEntries;
45
 /*EFI_CONFIGURATION_TABLE*/void         *ConfigurationTable;
46
 
47
} EFI_SYSTEM_TABLE;
48
 
49
static CHAR16 *
50
a2u (char *str)
51
{
52
    static CHAR16 mem[2048];
53
    int i;
54
 
55
    for (i = 0; str[i]; ++i)
56
        mem[i] = (CHAR16) str[i];
57
    mem[i] = 0;
58
    return mem;
59
}
60
 
61
EFI_STATUS
62
efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *systab)
63
{
64
    SIMPLE_TEXT_OUTPUT_INTERFACE *conout;
65
 
66
    conout = systab->ConOut;
67
    conout->OutputString(conout, (CHAR16 *)L"Hello World!\n\r");
68
    conout->OutputString(conout, a2u("Hello World!\n\r"));
69
 
70
    return EFI_SUCCESS;
71
}