File: t.c

package info (click to toggle)
gnu-efi 3.0a-4
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 772 kB
  • ctags: 4,116
  • sloc: ansic: 10,304; asm: 312; makefile: 120
file content (70 lines) | stat: -rw-r--r-- 1,824 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#define EFI_SUCCESS		0

typedef short			CHAR16;
typedef unsigned long		UINTN;
typedef unsigned long long	UINT64;
typedef unsigned int		UINT32;
typedef void *			EFI_HANDLE;
typedef UINTN			EFI_STATUS;

typedef struct _EFI_TABLE_HEARDER {
    UINT64                      Signature;
    UINT32                      Revision;
    UINT32                      HeaderSize;
    UINT32                      CRC32;
    UINT32                      Reserved;
} EFI_TABLE_HEADER;

typedef EFI_STATUS (*EFI_TEXT_STRING) (void *This, CHAR16 *String);

typedef struct _SIMPLE_TEXT_OUTPUT_INTERFACE {
    void *                  Reset;

    EFI_TEXT_STRING                 OutputString;
} SIMPLE_TEXT_OUTPUT_INTERFACE;

typedef struct _EFI_SYSTEM_TABLE {
    EFI_TABLE_HEADER                Hdr;

    CHAR16                          *FirmwareVendor;
    UINT32                          FirmwareRevision;

    EFI_HANDLE                      ConsoleInHandle;
 /*SIMPLE_INPUT_INTERFACE*/ void    *ConIn;

    EFI_HANDLE                      ConsoleOutHandle;
    SIMPLE_TEXT_OUTPUT_INTERFACE    *ConOut;

    EFI_HANDLE                      StandardErrorHandle;
    SIMPLE_TEXT_OUTPUT_INTERFACE    *StdErr;

 /*EFI_RUNTIME_SERVICES*/ void            *RuntimeServices;
 /*EFI_BOOT_SERVICES*/ void               *BootServices;

    UINTN                           NumberOfTableEntries;
 /*EFI_CONFIGURATION_TABLE*/void         *ConfigurationTable;

} EFI_SYSTEM_TABLE;

static CHAR16 *
a2u (char *str)
{
	static CHAR16 mem[2048];
	int i;

	for (i = 0; str[i]; ++i)
		mem[i] = (unsigned char) str[i];
	mem[i] = 0;
	return mem;
}

EFI_STATUS
efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *systab)
{
	SIMPLE_TEXT_OUTPUT_INTERFACE *conout;

	conout = systab->ConOut;
	conout->OutputString(conout, L"Hello World!\n\r");

	return EFI_SUCCESS;
}