ia64/xen-unstable

view tools/libxc/linux_boot_params.h @ 6385:f34e732ed4bf

Xenstore testsuite robustness: save output rather than rerun on failure.
"make check" reruns a test which fails with more verbosity. If the test
fails intermittently, that doesn't work well: save the output and simply
dump it if the test fails.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
author cl349@firebug.cl.cam.ac.uk
date Tue Aug 23 19:58:59 2005 +0000 (2005-08-23)
parents 66b81b6c096c
children 8799d14bef77 9312a3e8a6f8 23979fb12c49 84ee014ebd41 99914b54f7bf 81576d3d1ca8 3a8f27c6d56c cc5f88b719d0 fa0754a9f64f 112d44270733
line source
1 #ifndef __LINUX_BOOT_PARAMS_H__
2 #define __LINUX_BOOT_PARAMS_H__
4 #include <asm/types.h>
6 #define E820MAX 32
8 struct mem_map {
9 int nr_map;
10 struct entry {
11 u64 addr; /* start of memory segment */
12 u64 size; /* size of memory segment */
13 u32 type; /* type of memory segment */
14 #define E820_RAM 1
15 #define E820_RESERVED 2
16 #define E820_ACPI 3 /* usable as RAM once ACPI tables have been read */
17 #define E820_NVS 4
18 #define E820_IO 16
19 #define E820_SHARED 17
20 #define E820_XENSTORE 18
22 u32 caching_attr; /* used by hypervisor */
23 #define MEMMAP_UC 0
24 #define MEMMAP_WC 1
25 #define MEMMAP_WT 4
26 #define MEMMAP_WP 5
27 #define MEMMAP_WB 6
29 }map[E820MAX];
30 };
32 struct e820entry {
33 u64 addr; /* start of memory segment */
34 u64 size; /* size of memory segment */
35 u32 type; /* type of memory segment */
36 }__attribute__((packed));
38 struct e820map {
39 u32 nr_map;
40 struct e820entry map[E820MAX];
41 }__attribute__((packed));
43 struct drive_info_struct { __u8 dummy[32]; };
45 struct sys_desc_table {
46 __u16 length;
47 __u8 table[318];
48 };
50 struct screen_info {
51 unsigned char orig_x; /* 0x00 */
52 unsigned char orig_y; /* 0x01 */
53 unsigned short dontuse1; /* 0x02 -- EXT_MEM_K sits here */
54 unsigned short orig_video_page; /* 0x04 */
55 unsigned char orig_video_mode; /* 0x06 */
56 unsigned char orig_video_cols; /* 0x07 */
57 unsigned short unused2; /* 0x08 */
58 unsigned short orig_video_ega_bx; /* 0x0a */
59 unsigned short unused3; /* 0x0c */
60 unsigned char orig_video_lines; /* 0x0e */
61 unsigned char orig_video_isVGA; /* 0x0f */
62 unsigned short orig_video_points; /* 0x10 */
64 /* VESA graphic mode -- linear frame buffer */
65 unsigned short lfb_width; /* 0x12 */
66 unsigned short lfb_height; /* 0x14 */
67 unsigned short lfb_depth; /* 0x16 */
68 unsigned int lfb_base; /* 0x18 */
69 unsigned int lfb_size; /* 0x1c */
70 unsigned short dontuse2, dontuse3; /* 0x20 -- CL_MAGIC and CL_OFFSET here */
71 unsigned short lfb_linelength; /* 0x24 */
72 unsigned char red_size; /* 0x26 */
73 unsigned char red_pos; /* 0x27 */
74 unsigned char green_size; /* 0x28 */
75 unsigned char green_pos; /* 0x29 */
76 unsigned char blue_size; /* 0x2a */
77 unsigned char blue_pos; /* 0x2b */
78 unsigned char rsvd_size; /* 0x2c */
79 unsigned char rsvd_pos; /* 0x2d */
80 unsigned short vesapm_seg; /* 0x2e */
81 unsigned short vesapm_off; /* 0x30 */
82 unsigned short pages; /* 0x32 */
83 /* 0x34 -- 0x3f reserved for future expansion */
84 };
86 struct screen_info_overlap {
87 __u8 reserved1[2]; /* 0x00 */
88 __u16 ext_mem_k; /* 0x02 */
89 __u8 reserved2[0x20 - 0x04]; /* 0x04 */
90 __u16 cl_magic; /* 0x20 */
91 #define CL_MAGIC_VALUE 0xA33F
92 __u16 cl_offset; /* 0x22 */
93 __u8 reserved3[0x40 - 0x24]; /* 0x24 */
94 };
97 struct apm_bios_info {
98 __u16 version;
99 __u16 cseg;
100 __u32 offset;
101 __u16 cseg_16;
102 __u16 dseg;
103 __u16 flags;
104 __u16 cseg_len;
105 __u16 cseg_16_len;
106 __u16 dseg_len;
107 };
109 struct linux_boot_params {
110 union { /* 0x00 */
111 struct screen_info info;
112 struct screen_info_overlap overlap;
113 } screen;
115 struct apm_bios_info apm_bios_info; /* 0x40 */
116 __u8 reserved4[0x80 - 0x54]; /* 0x54 */
117 struct drive_info_struct drive_info; /* 0x80 */
118 struct sys_desc_table sys_desc_table; /* 0xa0 */
119 __u32 alt_mem_k; /* 0x1e0 */
120 __u8 reserved5[4]; /* 0x1e4 */
121 __u8 e820_map_nr; /* 0x1e8 */
122 __u8 reserved6[8]; /* 0x1e9 */
123 __u8 setup_sects; /* 0x1f1 */
124 __u16 mount_root_rdonly; /* 0x1f2 */
125 __u16 syssize; /* 0x1f4 */
126 __u16 swapdev; /* 0x1f6 */
127 __u16 ramdisk_flags; /* 0x1f8 */
128 #define RAMDISK_IMAGE_START_MASK 0x07FF
129 #define RAMDISK_PROMPT_FLAG 0x8000
130 #define RAMDISK_LOAD_FLAG 0x4000
131 __u16 vid_mode; /* 0x1fa */
132 __u16 root_dev; /* 0x1fc */
133 __u8 reserved9[1]; /* 0x1fe */
134 __u8 aux_device_info; /* 0x1ff */
135 /* 2.00+ */
136 __u8 reserved10[2]; /* 0x200 */
137 __u8 header_magic[4]; /* 0x202 */
138 __u16 protocol_version; /* 0x206 */
139 __u8 reserved11[8]; /* 0x208 */
140 __u8 loader_type; /* 0x210 */
141 #define LOADER_TYPE_LOADLIN 1
142 #define LOADER_TYPE_BOOTSECT_LOADER 2
143 #define LOADER_TYPE_SYSLINUX 3
144 #define LOADER_TYPE_ETHERBOOT 4
145 #define LOADER_TYPE_UNKNOWN 0xFF
146 __u8 loader_flags; /* 0x211 */
147 __u8 reserved12[2]; /* 0x212 */
148 __u32 code32_start; /* 0x214 */
149 __u32 initrd_start; /* 0x218 */
150 __u32 initrd_size; /* 0x21c */
151 __u8 reserved13[4]; /* 0x220 */
152 /* 2.01+ */
153 __u16 heap_end_ptr; /* 0x224 */
154 __u8 reserved14[2]; /* 0x226 */
155 /* 2.02+ */
156 __u32 cmd_line_ptr; /* 0x228 */
157 /* 2.03+ */
158 __u32 ramdisk_max; /* 0x22c */
159 __u8 reserved15[0x2d0 - 0x230]; /* 0x230 */
160 struct e820entry e820_map[E820MAX]; /* 0x2d0 */
161 __u64 shared_info; /* 0x550 */
162 __u8 padding[0x800 - 0x558]; /* 0x558 */
163 __u8 cmd_line[0x800]; /* 0x800 */
164 } __attribute__((packed));
166 #endif /* __LINUX_BOOT_PARAMS_H__ */