Guest User

Untitled

a guest
Jan 13th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.64 KB | None | 0 0
  1. #ifndef MULTIBOOT_H
  2. #define MULTIBOOT_H
  3.  
  4. #define MB_FLAG_MEMORY 1
  5. #define MB_FLAG_DEVICE 2
  6. #define MB_FLAG_CMDLINE 4
  7. #define MB_FLAG_MODULES 8
  8. #define MB_FLAG_SYM_AOUT 16
  9. #define MB_FLAG_SYM_ELF 32
  10. #define MB_FLAG_MMAP 64
  11. #define MB_FLAG_DRIVES 128
  12. #define MB_FLAG_CFGTABLE 256
  13. #define MB_FLAG_BOOTLOADER_NAME 512
  14. #define MB_FLAG_APM 1024
  15.  
  16. #define MB_MEMORY_AVAILABLE 1
  17. #define MB_MEMORY_RESERVED 2
  18.  
  19. struct mb_aout_symbol_table_t {
  20.     uint32_t tabsize;
  21.     uint32_t strsize;
  22.     uint32_t addr;
  23.     uint32_t reserved;
  24. };
  25.  
  26. struct mb_elf_section_header_table_t {
  27.     uint32_t num;
  28.     uint32_t size;
  29.     uint32_t addr;
  30.     uint32_t shndx;
  31. };
  32.  
  33. struct mb_mmap_entry_t {
  34.     uint32_t size;
  35.     uint64_t addr;
  36.     uint64_t len;
  37.     uint32_t type;
  38. }__attribute__((packed));
  39.  
  40. struct mb_module_t {
  41.     uint32_t mod_start;
  42.     uint32_t mod_end;
  43.     char *cmdline;
  44.     uint32_t reserved;
  45. }__attribute__((packed));
  46.  
  47. struct mb_mmap_t {
  48.     uint32_t size;
  49.     uint64_t base;
  50.     uint64_t length;
  51.     uint32_t type;
  52. }__attribute__((packed));
  53.  
  54. struct mb_info_t {
  55.     uint32_t flags;
  56.     uint32_t mem_lower;
  57.     uint32_t mem_upper;
  58.     uint32_t boot_device;
  59.     uint32_t cmdline;
  60.     uint32_t mods_count;
  61.     uint32_t mods_addr;
  62.     union {
  63.         struct mb_aout_symbol_table_t aout_sym;
  64.         struct mb_elf_section_header_table_t elf_sec;
  65.     } u;
  66.     uint32_t mmap_length;
  67.     uint32_t mmap_addr;
  68.     uint32_t drives_length;
  69.     uint32_t drives_addr;
  70.     uint32_t config_table;
  71.     uint32_t boot_loader_name;
  72.     uint32_t apm_table;
  73.     uint32_t vbe_control_info;
  74.     uint32_t vbe_mode_info;
  75.     uint16_t vbe_mode;
  76.     uint16_t vbe_interface_seg;
  77.     uint16_t vbe_interface_off;
  78.     uint16_t vbe_interface_len;
  79. }__attribute__ ((packed));
  80.  
  81. #endif
Add Comment
Please, Sign In to add comment