diff options
author | Matt Fleming <matt.fleming@intel.com> | 2012-01-30 10:17:26 +0000 |
---|---|---|
committer | Matt Fleming <matt.fleming@intel.com> | 2012-02-02 16:21:00 +0000 |
commit | 7a2f23d259bcebae1b4009b4c757770c583accfb (patch) | |
tree | 0b335171af9cce487cd68ae96e66d8f45d649c10 | |
parent | e5b9b7e91515ecf01fa4d6df06e6408ec48da0d2 (diff) | |
download | syslinux-7a2f23d259bcebae1b4009b4c757770c583accfb.tar.gz syslinux-7a2f23d259bcebae1b4009b4c757770c583accfb.tar.xz syslinux-7a2f23d259bcebae1b4009b4c757770c583accfb.zip |
linux: Move linux_header definition to header
We're gonna need to include the 'struct linux_header' definition in
both the BIOS .boot_linux implementation the EFI one so move the
definition into a central header file.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
-rw-r--r-- | com32/include/syslinux/linux.h | 43 | ||||
-rw-r--r-- | com32/lib/syslinux/load_linux.c | 42 |
2 files changed, 43 insertions, 42 deletions
diff --git a/com32/include/syslinux/linux.h b/com32/include/syslinux/linux.h index 754d1b64..6a89c21e 100644 --- a/com32/include/syslinux/linux.h +++ b/com32/include/syslinux/linux.h @@ -36,6 +36,7 @@ #include <stddef.h> #include <stdint.h> +#include <klibc/compiler.h> /* A chunk of an initramfs. These are kept as a doubly-linked circular list with headnode; the headnode is distinguished by @@ -51,6 +52,48 @@ struct initramfs { }; #define INITRAMFS_MAX_ALIGN 4096 +struct linux_header { + uint8_t boot_sector_1[0x0020]; + uint16_t old_cmd_line_magic; + uint16_t old_cmd_line_offset; + uint8_t boot_sector_2[0x01f1 - 0x0024]; + uint8_t setup_sects; + uint16_t root_flags; + uint32_t syssize; + uint16_t ram_size; + uint16_t vid_mode; + uint16_t root_dev; + uint16_t boot_flag; + uint16_t jump; + uint32_t header; + uint16_t version; + uint32_t realmode_swtch; + uint16_t start_sys; + uint16_t kernel_version; + uint8_t type_of_loader; + uint8_t loadflags; + uint16_t setup_move_size; + uint32_t code32_start; + uint32_t ramdisk_image; + uint32_t ramdisk_size; + uint32_t bootsect_kludge; + uint16_t heap_end_ptr; + uint16_t pad1; + uint32_t cmd_line_ptr; + uint32_t initrd_addr_max; + uint32_t kernel_alignment; + uint8_t relocatable_kernel; + uint8_t pad2[3]; + uint32_t cmdline_max_len; + uint32_t hardware_subarch; + uint64_t hardware_subarch_data; + uint32_t payload_offset; + uint32_t payload_length; + uint64_t setup_data; + uint64_t pref_address; + uint32_t init_size; +} __packed; + int syslinux_boot_linux(void *kernel_buf, size_t kernel_size, struct initramfs *initramfs, char *cmdline); diff --git a/com32/lib/syslinux/load_linux.c b/com32/lib/syslinux/load_linux.c index c1ce875c..cd7760f6 100644 --- a/com32/lib/syslinux/load_linux.c +++ b/com32/lib/syslinux/load_linux.c @@ -54,48 +54,6 @@ # define dprintf(f, ...) ((void)0) #endif -struct linux_header { - uint8_t boot_sector_1[0x0020]; - uint16_t old_cmd_line_magic; - uint16_t old_cmd_line_offset; - uint8_t boot_sector_2[0x01f1 - 0x0024]; - uint8_t setup_sects; - uint16_t root_flags; - uint32_t syssize; - uint16_t ram_size; - uint16_t vid_mode; - uint16_t root_dev; - uint16_t boot_flag; - uint16_t jump; - uint32_t header; - uint16_t version; - uint32_t realmode_swtch; - uint16_t start_sys; - uint16_t kernel_version; - uint8_t type_of_loader; - uint8_t loadflags; - uint16_t setup_move_size; - uint32_t code32_start; - uint32_t ramdisk_image; - uint32_t ramdisk_size; - uint32_t bootsect_kludge; - uint16_t heap_end_ptr; - uint16_t pad1; - uint32_t cmd_line_ptr; - uint32_t initrd_addr_max; - uint32_t kernel_alignment; - uint8_t relocatable_kernel; - uint8_t pad2[3]; - uint32_t cmdline_max_len; - uint32_t hardware_subarch; - uint64_t hardware_subarch_data; - uint32_t payload_offset; - uint32_t payload_length; - uint64_t setup_data; - uint64_t pref_address; - uint32_t init_size; -} __packed; - #define BOOT_MAGIC 0xAA55 #define LINUX_MAGIC ('H' + ('d' << 8) + ('r' << 16) + ('S' << 24)) #define OLD_CMDLINE_MAGIC 0xA33F |