/** * 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; }