Handle mem= and vga= in the Linux kernel command line.
[wraplinux.git] / setup.h
1 #ifndef SETUP_H
2 #define SETUP_H
3
4 #include <stdint.h>
5
6 struct startup_info {
7         uint32_t rd_addr;
8         uint32_t rd_len;
9         uint32_t rd_maxaddr;
10         uint32_t setup_addr;
11         uint32_t cmdline_addr;
12         uint32_t reloc_size;
13 };
14
15 #define LINUX_MAGIC ('H' + ('d' << 8) + ('r' << 16) + ('S' << 24))
16 #define OLD_CMDLINE_MAGIC 0xA33F
17
18 struct setup_header {
19         uint8_t  setup_sects;
20         uint16_t root_flags;
21         uint32_t syssize;
22         uint16_t ram_size;
23 #define RAMDISK_IMAGE_START_MASK        0x07FF
24 #define RAMDISK_PROMPT_FLAG             0x8000
25 #define RAMDISK_LOAD_FLAG               0x4000
26         uint16_t vid_mode;
27         uint16_t root_dev;
28         uint16_t boot_flag;
29         uint16_t jump;
30         uint32_t header;
31         uint16_t version;
32         uint32_t realmode_swtch;
33         uint16_t start_sys;
34         uint16_t kernel_version;
35         uint8_t  type_of_loader;
36         uint8_t  loadflags;
37 #define LOADED_HIGH     (1<<0)
38 #define KEEP_SEGMENTS   (1<<6)
39 #define CAN_USE_HEAP    (1<<7)
40         uint16_t setup_move_size;
41         uint32_t code32_start;
42         uint32_t ramdisk_image;
43         uint32_t ramdisk_size;
44         uint32_t bootsect_kludge;
45         uint16_t heap_end_ptr;
46         uint16_t _pad1;
47         uint32_t cmd_line_ptr;
48         uint32_t initrd_addr_max;
49         uint32_t kernel_alignment;
50         uint8_t  relocatable_kernel;
51         uint8_t  _pad2[3];
52         uint32_t cmdline_size;
53         uint32_t hardware_subarch;
54         uint64_t hardware_subarch_data;
55 } __attribute__((packed));
56
57 #endif  /* SETUP_H */