summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorOlaf Hering <olaf@aepfle.de>2013-01-17 19:47:25 +0100
committerSimon Horman <horms@verge.net.au>2013-01-18 08:56:54 +0900
commitd722eba67e5c54645588df8e56b56d7722f29431 (patch)
treefb7e4535dc06dcd77fec86a1957cf75a48bc1cfa /include
parent504914dddcc57fd2099e11c0f5cac22a28ecce2a (diff)
downloadkexec-tools-d722eba67e5c54645588df8e56b56d7722f29431.tar.gz
x86: update x86_linux_header
Update struct x86_linux_header with new fields, based on arch/x86/include/asm/bootparam.h as included in linux-3.7. Upcoming changes will use the payload_offset/payload_length fields. Signed-off-by: Olaf Hering <olaf@aepfle.de> Cc: "H. Peter Anvin" <hpa@zytor.com> Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'include')
-rw-r--r--include/x86/x86-linux.h40
1 files changed, 16 insertions, 24 deletions
diff --git a/include/x86/x86-linux.h b/include/x86/x86-linux.h
index 27af02b4..8f7a7975 100644
--- a/include/x86/x86-linux.h
+++ b/include/x86/x86-linux.h
@@ -198,14 +198,13 @@ struct x86_linux_header {
uint8_t reserved1[0x1f1]; /* 0x000 */
uint8_t setup_sects; /* 0x1f1 */
uint16_t root_flags; /* 0x1f2 */
- uint16_t syssize; /* 0x1f4 */
- uint16_t swapdev; /* 0x1f6 */
- uint16_t ramdisk_flags; /* 0x1f6 */
+ uint32_t syssize; /* 0x1f4 */
+ uint16_t ram_size; /* 0x1f8 */
uint16_t vid_mode; /* 0x1fa */
uint16_t root_dev; /* 0x1fc */
uint16_t boot_sector_magic; /* 0x1fe */
/* 2.00+ */
- uint8_t reserved3[2]; /* 0x200 */
+ uint16_t jump; /* 0x200 */
uint8_t header_magic[4]; /* 0x202 */
uint16_t protocol_version; /* 0x206 */
uint32_t realmode_swtch; /* 0x208 */
@@ -217,35 +216,28 @@ struct x86_linux_header {
uint32_t code32_start; /* 0x214 */
uint32_t ramdisk_image; /* 0x218 */
uint32_t ramdisk_size; /* 0x21c */
- uint8_t reserved4[4]; /* 0x220 */
+ uint32_t bootsect_kludge; /* 0x220 */
/* 2.01+ */
uint16_t heap_end_ptr; /* 0x224 */
- uint8_t reserved5[2]; /* 0x226 */
+ uint8_t ext_loader_ver; /* 0x226 */
+ uint8_t ext_loader_type; /* 0x227 */
/* 2.02+ */
uint32_t cmd_line_ptr; /* 0x228 */
/* 2.03+ */
uint32_t initrd_addr_max; /* 0x22c */
-#if TENATIVE
- /* 2.04+ */
- uint16_t entry32_off; /* 0x230 */
- uint16_t internal_cmdline_off; /* 0x232 */
- uint32_t low_base; /* 0x234 */
- uint32_t low_memsz; /* 0x238 */
- uint32_t low_filesz; /* 0x23c */
- uint32_t real_base; /* 0x240 */
- uint32_t real_memsz; /* 0x244 */
- uint32_t real_filesz; /* 0x248 */
- uint32_t high_base; /* 0x24C */
- uint32_t high_memsz; /* 0x250 */
- uint32_t high_filesz; /* 0x254 */
-#else
+
uint32_t kernel_alignment; /* 0x230 */
uint8_t relocatable_kernel; /* 0x234 */
uint8_t reserved6[3]; /* 0x235 */
- uint32_t cmdline_size; /* 0x238 */
- uint32_t hardware_subarch; /* 0x23C */
- uint64_t hardware_subarch_data; /* 0x240 */
-#endif
+ uint32_t cmdline_size; /* 0x238 */
+ uint32_t hardware_subarch; /* 0x23C */
+ uint64_t hardware_subarch_data; /* 0x240 */
+ uint32_t payload_offset; /* 0x248 */
+ uint32_t payload_size; /* 0x24C */
+ uint64_t setup_data; /* 0x250 */
+ uint64_t pref_address; /* 0x258 */
+ uint32_t init_size; /* 0x260 */
+ uint32_t handover_offset; /* 0x264 */
} PACKED;
#endif /* ASSEMBLY */