finix/kernel/include/arch/i686/mboot.h

35 lines
661 B
C
Raw Permalink Normal View History

2023-07-16 06:54:32 +00:00
#pragma once
#include <stdbool.h>
#include <stdint.h>
2023-07-17 23:34:52 +00:00
#include <arch/i686/mboot.h>
#include <arch/i686/memory.h>
2023-07-16 06:54:32 +00:00
#define CMDLINE_MAX 32
struct BootTag {
uint8_t valid;
uint32_t type;
uint32_t size;
union {
2023-07-22 15:05:30 +00:00
char cmdline[CMDLINE_MAX + 1];
2023-07-16 06:54:32 +00:00
struct MemoryMap *memory_map;
struct RootSystemDescriptionPointer *rsdp;
} data;
};
struct BootInfo {
uint32_t total_size;
uint32_t reserved;
struct BootTag tags[21];
};
enum BootTagID {
ID_CMDLINE = 0,
2023-07-22 15:05:30 +00:00
ID_MEMORYMAP = 6,
2023-07-16 06:54:32 +00:00
ID_RSDP = 14
};
2023-07-22 15:05:30 +00:00
extern void load_boot_info(void* boot_info);
extern bool get_boot_tag(enum BootTagID id, struct BootTag **tag);