]> git.proxmox.com Git - mirror_edk2.git/blame - OvmfPkg/Include/IndustryStandard/LinuxBzimage.h
OvmfPkg: Fix typing errors in header files
[mirror_edk2.git] / OvmfPkg / Include / IndustryStandard / LinuxBzimage.h
CommitLineData
80feb819 1/** @file\r
2\r
25ca06f9 3 Copyright (c) 2011 - 2013, Intel Corporation. All rights reserved.<BR>\r
80feb819 4 This program and the accompanying materials\r
5 are licensed and made available under the terms and conditions of the BSD License\r
6 which accompanies this distribution. The full text of the license may be found at\r
7 http://opensource.org/licenses/bsd-license.php\r
8\r
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11\r
12**/\r
13\r
14#ifndef __LINUX_BZIMAGE_H__\r
15#define __LINUX_BZIMAGE_H__\r
16\r
17#define BOOTSIG 0x1FE\r
80feb819 18#define SETUP_HDR 0x53726448 /* 0x53726448 == "HdrS" */\r
19\r
20#define E820_RAM 1\r
21#define E820_RESERVED 2\r
22#define E820_ACPI 3\r
23#define E820_NVS 4\r
24#define E820_UNUSABLE 5\r
25\r
26#pragma pack(1)\r
27\r
28struct setup_header {\r
29 UINT8 setup_secs; /* Sectors for setup code */\r
30 UINT16 root_flags;\r
31 UINT32 sys_size;\r
32 UINT16 ram_size;\r
33 UINT16 video_mode;\r
34 UINT16 root_dev;\r
35 UINT16 signature; /* Boot signature */\r
36 UINT16 jump;\r
37 UINT32 header;\r
38 UINT16 version;\r
39 UINT16 su_switch;\r
40 UINT16 setup_seg;\r
41 UINT16 start_sys;\r
42 UINT16 kernel_ver;\r
43 UINT8 loader_id;\r
44 UINT8 load_flags;\r
45 UINT16 movesize;\r
46 UINT32 code32_start; /* Start of code loaded high */\r
47 UINT32 ramdisk_start; /* Start of initial ramdisk */\r
b6b33f67 48 UINT32 ramdisk_len; /* Length of initial ramdisk */\r
80feb819 49 UINT32 bootsect_kludge;\r
50 UINT16 heap_end;\r
51 UINT8 ext_loader_ver; /* Extended boot loader version */\r
52 UINT8 ext_loader_type; /* Extended boot loader ID */\r
53 UINT32 cmd_line_ptr; /* 32-bit pointer to the kernel command line */\r
54 UINT32 ramdisk_max; /* Highest legal initrd address */\r
55 UINT32 kernel_alignment; /* Physical addr alignment required for kernel */\r
56 UINT8 relocatable_kernel; /* Whether kernel is relocatable or not */\r
25ca06f9 57 UINT8 min_alignment;\r
58 UINT16 xloadflags;\r
80feb819 59 UINT32 cmdline_size;\r
60 UINT32 hardware_subarch;\r
61 UINT64 hardware_subarch_data;\r
62 UINT32 payload_offset;\r
63 UINT32 payload_length;\r
64 UINT64 setup_data;\r
65 UINT64 pref_address;\r
66 UINT32 init_size;\r
67 UINT32 handover_offset;\r
68};\r
69\r
70struct efi_info {\r
71 UINT32 efi_loader_signature;\r
72 UINT32 efi_systab;\r
73 UINT32 efi_memdesc_size;\r
74 UINT32 efi_memdesc_version;\r
75 UINT32 efi_memmap;\r
76 UINT32 efi_memmap_size;\r
77 UINT32 efi_systab_hi;\r
78 UINT32 efi_memmap_hi;\r
79};\r
80\r
81struct e820_entry {\r
82 UINT64 addr; /* start of memory segment */\r
83 UINT64 size; /* size of memory segment */\r
84 UINT32 type; /* type of memory segment */\r
85};\r
86\r
87struct screen_info {\r
88 UINT8 orig_x; /* 0x00 */\r
89 UINT8 orig_y; /* 0x01 */\r
90 UINT16 ext_mem_k; /* 0x02 */\r
91 UINT16 orig_video_page; /* 0x04 */\r
92 UINT8 orig_video_mode; /* 0x06 */\r
93 UINT8 orig_video_cols; /* 0x07 */\r
94 UINT8 flags; /* 0x08 */\r
95 UINT8 unused2; /* 0x09 */\r
96 UINT16 orig_video_ega_bx;/* 0x0a */\r
97 UINT16 unused3; /* 0x0c */\r
98 UINT8 orig_video_lines; /* 0x0e */\r
99 UINT8 orig_video_isVGA; /* 0x0f */\r
100 UINT16 orig_video_points;/* 0x10 */\r
101\r
102 /* VESA graphic mode -- linear frame buffer */\r
103 UINT16 lfb_width; /* 0x12 */\r
104 UINT16 lfb_height; /* 0x14 */\r
105 UINT16 lfb_depth; /* 0x16 */\r
106 UINT32 lfb_base; /* 0x18 */\r
107 UINT32 lfb_size; /* 0x1c */\r
108 UINT16 cl_magic, cl_offset; /* 0x20 */\r
109 UINT16 lfb_linelength; /* 0x24 */\r
110 UINT8 red_size; /* 0x26 */\r
111 UINT8 red_pos; /* 0x27 */\r
112 UINT8 green_size; /* 0x28 */\r
113 UINT8 green_pos; /* 0x29 */\r
114 UINT8 blue_size; /* 0x2a */\r
115 UINT8 blue_pos; /* 0x2b */\r
116 UINT8 rsvd_size; /* 0x2c */\r
117 UINT8 rsvd_pos; /* 0x2d */\r
118 UINT16 vesapm_seg; /* 0x2e */\r
119 UINT16 vesapm_off; /* 0x30 */\r
120 UINT16 pages; /* 0x32 */\r
121 UINT16 vesa_attributes; /* 0x34 */\r
122 UINT32 capabilities; /* 0x36 */\r
123 UINT8 _reserved[6]; /* 0x3a */\r
124};\r
125\r
126struct boot_params {\r
127 struct screen_info screen_info;\r
128 UINT8 apm_bios_info[0x14];\r
129 UINT8 _pad2[4];\r
130 UINT64 tboot_addr;\r
131 UINT8 ist_info[0x10];\r
132 UINT8 _pad3[16];\r
133 UINT8 hd0_info[16];\r
134 UINT8 hd1_info[16];\r
135 UINT8 sys_desc_table[0x10];\r
136 UINT8 olpc_ofw_header[0x10];\r
137 UINT8 _pad4[128];\r
138 UINT8 edid_info[0x80];\r
139 struct efi_info efi_info;\r
140 UINT32 alt_mem_k;\r
141 UINT32 scratch;\r
142 UINT8 e820_entries;\r
143 UINT8 eddbuf_entries;\r
144 UINT8 edd_mbr_sig_buf_entries;\r
145 UINT8 _pad6[6];\r
146 struct setup_header hdr;\r
147 UINT8 _pad7[0x290-0x1f1-sizeof(struct setup_header)];\r
148 UINT32 edd_mbr_sig_buffer[16];\r
149 struct e820_entry e820_map[128];\r
150 UINT8 _pad8[48];\r
151 UINT8 eddbuf[0x1ec];\r
152 UINT8 _pad9[276];\r
153};\r
154\r
155typedef struct {\r
156 UINT16 limit;\r
157 UINT64 *base;\r
158} dt_addr_t;\r
159\r
160#pragma pack()\r
161\r
162extern EFI_STATUS setup_graphics(struct boot_params *buf);\r
163\r
164#endif /* __LINUX_BZIMAGE_H__ */\r