blob: c88c31ecad1231bb2fc45257a8d98bafe7bc519b [file] [log] [blame]
Matt Fleming291f3632011-12-12 21:27:52 +00001#ifndef BOOT_COMPRESSED_EBOOT_H
2#define BOOT_COMPRESSED_EBOOT_H
3
4#define SEG_TYPE_DATA (0 << 3)
5#define SEG_TYPE_READ_WRITE (1 << 1)
6#define SEG_TYPE_CODE (1 << 3)
7#define SEG_TYPE_EXEC_READ (1 << 1)
8#define SEG_TYPE_TSS ((1 << 3) | (1 << 0))
9#define SEG_OP_SIZE_32BIT (1 << 0)
10#define SEG_GRANULARITY_4KB (1 << 0)
11
12#define DESC_TYPE_CODE_DATA (1 << 0)
Matt Fleming291f3632011-12-12 21:27:52 +000013
Matthew Garrett38cb5ef2012-07-26 18:00:27 -040014#define EFI_CONSOLE_OUT_DEVICE_GUID \
15 EFI_GUID(0xd3b36f2c, 0xd551, 0x11d4, 0x9a, 0x46, 0x0, 0x90, 0x27, \
16 0x3f, 0xc1, 0x4d)
17
Matt Fleming291f3632011-12-12 21:27:52 +000018#define PIXEL_RGB_RESERVED_8BIT_PER_COLOR 0
19#define PIXEL_BGR_RESERVED_8BIT_PER_COLOR 1
20#define PIXEL_BIT_MASK 2
21#define PIXEL_BLT_ONLY 3
22#define PIXEL_FORMAT_MAX 4
23
24struct efi_pixel_bitmask {
25 u32 red_mask;
26 u32 green_mask;
27 u32 blue_mask;
28 u32 reserved_mask;
29};
30
31struct efi_graphics_output_mode_info {
32 u32 version;
33 u32 horizontal_resolution;
34 u32 vertical_resolution;
35 int pixel_format;
36 struct efi_pixel_bitmask pixel_information;
37 u32 pixels_per_scan_line;
38} __packed;
39
Matt Fleming677703c2014-01-10 13:47:37 +000040struct efi_graphics_output_protocol_mode_32 {
41 u32 max_mode;
42 u32 mode;
43 u32 info;
44 u32 size_of_info;
45 u64 frame_buffer_base;
46 u32 frame_buffer_size;
47} __packed;
48
49struct efi_graphics_output_protocol_mode_64 {
50 u32 max_mode;
51 u32 mode;
52 u64 info;
53 u64 size_of_info;
54 u64 frame_buffer_base;
55 u64 frame_buffer_size;
56} __packed;
57
Matt Fleming291f3632011-12-12 21:27:52 +000058struct efi_graphics_output_protocol_mode {
59 u32 max_mode;
60 u32 mode;
61 unsigned long info;
62 unsigned long size_of_info;
63 u64 frame_buffer_base;
64 unsigned long frame_buffer_size;
65} __packed;
66
Matt Fleming677703c2014-01-10 13:47:37 +000067struct efi_graphics_output_protocol_32 {
68 u32 query_mode;
69 u32 set_mode;
70 u32 blt;
71 u32 mode;
72};
73
74struct efi_graphics_output_protocol_64 {
75 u64 query_mode;
76 u64 set_mode;
77 u64 blt;
78 u64 mode;
79};
80
Matt Fleming291f3632011-12-12 21:27:52 +000081struct efi_graphics_output_protocol {
82 void *query_mode;
83 unsigned long set_mode;
84 unsigned long blt;
85 struct efi_graphics_output_protocol_mode *mode;
86};
87
Matt Fleming677703c2014-01-10 13:47:37 +000088struct efi_uga_draw_protocol_32 {
89 u32 get_mode;
90 u32 set_mode;
91 u32 blt;
92};
93
94struct efi_uga_draw_protocol_64 {
95 u64 get_mode;
96 u64 set_mode;
97 u64 blt;
98};
99
Matt Fleming291f3632011-12-12 21:27:52 +0000100struct efi_uga_draw_protocol {
101 void *get_mode;
102 void *set_mode;
103 void *blt;
104};
105
Matt Fleming54b52d82014-01-10 15:27:14 +0000106struct efi_config {
107 u64 image_handle;
108 u64 table;
109 u64 allocate_pool;
110 u64 allocate_pages;
111 u64 get_memory_map;
112 u64 free_pool;
113 u64 free_pages;
114 u64 locate_handle;
115 u64 handle_protocol;
116 u64 exit_boot_services;
117 u64 text_output;
118 efi_status_t (*call)(unsigned long, ...);
119 bool is64;
120} __packed;
121
Matt Fleming291f3632011-12-12 21:27:52 +0000122#endif /* BOOT_COMPRESSED_EBOOT_H */