réplica de
https://github.com/Arnau478/quark.git
synced 2024-05-05 09:06:31 +02:00
104 líneas
2,3 KiB
C
104 líneas
2,3 KiB
C
#pragma once
|
|
|
|
#include <stdint.h>
|
|
|
|
typedef struct{
|
|
uint32_t size;
|
|
uint32_t addr_l;
|
|
uint32_t addr_h;
|
|
uint32_t len_l;
|
|
uint32_t len_h;
|
|
uint32_t type;
|
|
} __attribute__((packed)) multiboot_memory_map_t;
|
|
|
|
typedef struct{
|
|
uint32_t tabsize;
|
|
uint32_t strsize;
|
|
uint32_t addr;
|
|
uint32_t reserved;
|
|
} multiboot_aout_symbol_table_t;
|
|
|
|
typedef struct{
|
|
uint32_t num;
|
|
uint32_t size;
|
|
uint32_t addr;
|
|
uint32_t shndx;
|
|
} multiboot_elf_section_header_table_t;
|
|
|
|
typedef struct{
|
|
uint32_t start;
|
|
uint32_t end;
|
|
uint32_t cmdline;
|
|
uint32_t pad; // Padding, alwys zero
|
|
} multiboot_module_t;
|
|
|
|
typedef struct{
|
|
/* Multiboot info version number */
|
|
uint32_t flags;
|
|
|
|
/* Available memory from BIOS */
|
|
uint32_t mem_lower;
|
|
uint32_t mem_upper;
|
|
|
|
/* "root" partition */
|
|
uint32_t boot_device;
|
|
|
|
/* Kernel command line */
|
|
uint32_t cmdline;
|
|
|
|
/* Boot-Module list */
|
|
uint32_t mods_count;
|
|
uint32_t mods_addr;
|
|
|
|
union{
|
|
multiboot_aout_symbol_table_t aout_sym;
|
|
multiboot_elf_section_header_table_t elf_sec;
|
|
} u;
|
|
|
|
/* Memory Mapping buffer */
|
|
uint32_t mmap_length;
|
|
uint32_t mmap_addr;
|
|
|
|
/* Drive Info buffer */
|
|
uint32_t drives_length;
|
|
uint32_t drives_addr;
|
|
|
|
/* ROM configuration table */
|
|
uint32_t config_table;
|
|
|
|
/* Boot Loader Name */
|
|
uint32_t boot_loader_name;
|
|
|
|
/* APM table */
|
|
uint32_t apm_table;
|
|
|
|
/* Video */
|
|
uint32_t vbe_control_info;
|
|
uint32_t vbe_mode_info;
|
|
uint16_t vbe_mode;
|
|
uint16_t vbe_interface_seg;
|
|
uint16_t vbe_interface_off;
|
|
uint16_t vbe_interface_len;
|
|
|
|
uint64_t framebuffer_addr; // FIXME: This may fail, as we are not in 64 bit (long) mode
|
|
uint32_t framebuffer_pitch;
|
|
uint32_t framebuffer_width;
|
|
uint32_t framebuffer_height;
|
|
uint8_t framebuffer_bpp;
|
|
uint8_t framebuffer_type;
|
|
union{
|
|
struct{
|
|
uint32_t framebuffer_palette_addr;
|
|
uint16_t framebuffer_palette_num_colors;
|
|
};
|
|
struct{
|
|
uint8_t framebuffer_red_field_position;
|
|
uint8_t framebuffer_red_mask_size;
|
|
uint8_t framebuffer_green_field_position;
|
|
uint8_t framebuffer_green_mask_size;
|
|
uint8_t framebuffer_blue_field_position;
|
|
uint8_t framebuffer_blue_mask_size;
|
|
};
|
|
};
|
|
} __attribute__((packed)) multiboot_info_t;
|