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