[PATCH] x86: update x86_linux_header
Olaf Hering
olaf at aepfle.de
Thu Jan 17 13:47:25 EST 2013
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 at aepfle.de>
Cc: "H. Peter Anvin" <hpa at zytor.com>
---
Compile tested only!
include/x86/x86-linux.h | 40 ++++++++++++++++------------------------
1 file changed, 16 insertions(+), 24 deletions(-)
diff --git a/include/x86/x86-linux.h b/include/x86/x86-linux.h
index 27af02b..8f7a797 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 */
--
1.8.0.1
More information about the kexec
mailing list