Warning, cross-references for /kernel/include/boot/multiboot.h need to be fixed.
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 #ifndef _MULTIBOOT_H_
0024 #define _MULTIBOOT_H_
0025
0026 #ifndef _ELF_H_
0027 #include "util/elf.h"
0028 #endif
0029
0030 #include"types.h"
0031
0032
0033
0034
0035 typedef struct memory_map
0036 {
0037 uint32 size;
0038 uint32 base_addr_low;
0039 uint32 base_addr_high;
0040 uint32 length_low;
0041 uint32 length_high;
0042 uint32 type;
0043 } memory_map_t;
0044
0045 typedef struct _multiboot_module
0046 {
0047 Elf32_Ehdr *pe;
0048 void *mod_end;
0049 char *string;
0050 uint32 reserved;
0051 } multiboot_module;
0052
0053 typedef struct _multiboot_drive
0054 {
0055 uint32 size;
0056 uint8 number;
0057 uint8 mode;
0058 uint16 cylinders;
0059 uint8 heads;
0060 uint8 sectors;
0061 uint16 ports[];
0062 } multiboot_drive;
0063
0064 typedef struct _multiboot
0065 {
0066 uint32 flags;
0067 uint32 mem_lower;
0068 uint32 mem_upper;
0069 uint32 boot_device;
0070 char *cmdline;
0071 uint32 mods_count;
0072 multiboot_module *mods_addr;
0073 uint32 elf_num;
0074 uint32 elf_size;
0075 void *elf_addr;
0076 void *elf_shndx;
0077 uint32 mmap_length;
0078 uint32 mmap_addr;
0079 uint32 drives_length;
0080 multiboot_drive *drives_addr;
0081 void *config_table;
0082 char *boot_loader_name;
0083 } multiboot;
0084
0085 #endif
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096