ia64/xen-unstable

view tools/libxc/linux_boot_params.h @ 6946:e703abaf6e3d

Add behaviour to the remove methods to remove the transaction's path itself. This allows us to write Remove(path) to remove the specified path rather than having to slice the path ourselves.
author emellor@ewan
date Sun Sep 18 14:42:13 2005 +0100 (2005-09-18)
parents 3233e7ecfa9f
children 06d84bf87159
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__ */