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