78 lines
1.6 KiB
D
78 lines
1.6 KiB
D
/**
|
|
* HULK boot information.
|
|
*/
|
|
module hulk.bootinfo;
|
|
|
|
/**
|
|
* HULK boot information structure.
|
|
*/
|
|
struct BootInfo
|
|
{
|
|
/**
|
|
* Framebuffer description structure.
|
|
*/
|
|
struct Framebuffer
|
|
{
|
|
/** Framebuffer physical base address. */
|
|
uint * buffer;
|
|
/** Horizontal resolution. */
|
|
uint width;
|
|
/** Vertical resolution. */
|
|
uint height;
|
|
/** Number of pixels per scan line. */
|
|
uint stride;
|
|
/** Pixel format. */
|
|
uint format;
|
|
}
|
|
|
|
/**
|
|
* Memory map entry description structure.
|
|
*/
|
|
struct MemoryRegion
|
|
{
|
|
enum Type
|
|
{
|
|
Reserved,
|
|
Bootloader,
|
|
Conventional,
|
|
Unusable,
|
|
ACPIReclaim,
|
|
ACPINVS,
|
|
MemoryMappedIO,
|
|
MemoryMappedIOPortSpace,
|
|
PalCode,
|
|
}
|
|
|
|
/** Base address of the memory region. */
|
|
ulong base;
|
|
/** Size in bytes of the memory region. */
|
|
size_t size;
|
|
/** Type of the memory region. */
|
|
ubyte type;
|
|
}
|
|
|
|
/* Framebuffer parameters. */
|
|
Framebuffer fb;
|
|
|
|
/* Memory map. */
|
|
MemoryRegion[1000] memory_map;
|
|
|
|
/* Number of memory map entries. */
|
|
size_t memory_map_count;
|
|
|
|
/* Physical address of HULK. */
|
|
ulong hulk_phys;
|
|
|
|
/* Physical address used for HULK bss section. */
|
|
ulong bss_phys;
|
|
|
|
/* Physical address of stack while jumping to HULK. */
|
|
ulong stack_phys;
|
|
|
|
/* Physical address of framebuffer buffer1. */
|
|
ulong fb_buffer1_phys;
|
|
|
|
/* Physical address of ACPI XSDT table. */
|
|
ulong acpi_xsdt_phys;
|
|
}
|