man: --nbi, not --NBI
[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 struct highmove {
16         uint32_t dst;
17         uint32_t src;
18         uint32_t len;
19 };
20
21 struct highmove_info {
22         uint32_t mv_entry;
23         struct highmove mv[3];
24 };
25
26 #define LINUX_MAGIC ('H' + ('d' << 8) + ('r' << 16) + ('S' << 24))
27 #define OLD_CMDLINE_MAGIC 0xA33F
28
29 struct setup_header {
30         uint8_t  setup_sects;
31         uint16_t root_flags;
32         uint32_t syssize;
33         uint16_t ram_size;
34 #define RAMDISK_IMAGE_START_MASK        0x07FF
35 #define RAMDISK_PROMPT_FLAG             0x8000
36 #define RAMDISK_LOAD_FLAG               0x4000
37         uint16_t vid_mode;
38         uint16_t root_dev;
39         uint16_t boot_flag;
40         uint16_t jump;
41         uint32_t header;
42         uint16_t version;
43         uint32_t realmode_swtch;
44         uint16_t start_sys;
45         uint16_t kernel_version;
46         uint8_t  type_of_loader;
47         uint8_t  loadflags;
48 #define LOADED_HIGH     (1<<0)
49 #define KEEP_SEGMENTS   (1<<6)
50 #define CAN_USE_HEAP    (1<<7)
51         uint16_t setup_move_size;
52         uint32_t code32_start;
53         uint32_t ramdisk_image;
54         uint32_t ramdisk_size;
55         uint32_t bootsect_kludge;
56         uint16_t heap_end_ptr;
57         uint16_t _pad1;
58         uint32_t cmd_line_ptr;
59         uint32_t initrd_addr_max;
60         uint32_t kernel_alignment;
61         uint8_t  relocatable_kernel;
62         uint8_t  _pad2[3];
63         uint32_t cmdline_size;
64         uint32_t hardware_subarch;
65         uint64_t hardware_subarch_data;
66 } __attribute__((packed));
67
68 #endif  /* SETUP_H */