1#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)
13
14#define EFI_CONSOLE_OUT_DEVICE_GUID    \
15	EFI_GUID(0xd3b36f2c, 0xd551, 0x11d4, 0x9a, 0x46, 0x0, 0x90, 0x27, \
16		  0x3f, 0xc1, 0x4d)
17
18#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
40struct 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
58struct 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
67struct 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
81struct 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
88struct 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
100struct efi_uga_draw_protocol {
101	void *get_mode;
102	void *set_mode;
103	void *blt;
104};
105
106#endif /* BOOT_COMPRESSED_EBOOT_H */
107