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_PAGE_SIZE		(1UL << EFI_PAGE_SHIFT)
15 #define EFI_READ_CHUNK_SIZE	(1024 * 1024)
16 
17 #define PIXEL_RGB_RESERVED_8BIT_PER_COLOR		0
18 #define PIXEL_BGR_RESERVED_8BIT_PER_COLOR		1
19 #define PIXEL_BIT_MASK					2
20 #define PIXEL_BLT_ONLY					3
21 #define PIXEL_FORMAT_MAX				4
22 
23 struct efi_pixel_bitmask {
24 	u32 red_mask;
25 	u32 green_mask;
26 	u32 blue_mask;
27 	u32 reserved_mask;
28 };
29 
30 struct efi_graphics_output_mode_info {
31 	u32 version;
32 	u32 horizontal_resolution;
33 	u32 vertical_resolution;
34 	int pixel_format;
35 	struct efi_pixel_bitmask pixel_information;
36 	u32 pixels_per_scan_line;
37 } __packed;
38 
39 struct efi_graphics_output_protocol_mode {
40 	u32 max_mode;
41 	u32 mode;
42 	unsigned long info;
43 	unsigned long size_of_info;
44 	u64 frame_buffer_base;
45 	unsigned long frame_buffer_size;
46 } __packed;
47 
48 struct efi_graphics_output_protocol {
49 	void *query_mode;
50 	unsigned long set_mode;
51 	unsigned long blt;
52 	struct efi_graphics_output_protocol_mode *mode;
53 };
54 
55 struct efi_uga_draw_protocol {
56 	void *get_mode;
57 	void *set_mode;
58 	void *blt;
59 };
60 
61 #endif /* BOOT_COMPRESSED_EBOOT_H */
62