Move address constants into Hurl struct
This commit is contained in:
parent
25ee1775f0
commit
103205bff2
@ -29,9 +29,9 @@ private __gshared HulkHeader hulk_header = {
|
|||||||
&_hulk_bss_size, /* hulk_bss_size */
|
&_hulk_bss_size, /* hulk_bss_size */
|
||||||
&hulk_start, /* entry */
|
&hulk_start, /* entry */
|
||||||
16u * 1024u, /* stack_size */
|
16u * 1024u, /* stack_size */
|
||||||
HULK_VIRTUAL_BASE_ADDRESS, /* virt_base */
|
Hurl.HULK_BASE, /* virt_base */
|
||||||
HULK_VIRTUAL_STACK_TOP_ADDRESS, /* virt_stack_top */
|
Hurl.HULK_STACK_TOP, /* virt_stack_top */
|
||||||
HULK_VIRTUAL_FRAMEBUFFER_ADDRESS, /* virt_fb_buffer */
|
Hurl.HULK_FRAMEBUFFER, /* virt_fb_buffer */
|
||||||
};
|
};
|
||||||
|
|
||||||
private void initialize_cpu()
|
private void initialize_cpu()
|
||||||
@ -58,7 +58,7 @@ void hulk_start()
|
|||||||
initialize_cpu();
|
initialize_cpu();
|
||||||
Gdt.initialize();
|
Gdt.initialize();
|
||||||
Idt.initialize();
|
Idt.initialize();
|
||||||
Fb.initialize(cast(uint *)HULK_VIRTUAL_FRAMEBUFFER_ADDRESS,
|
Fb.initialize(cast(uint *)Hurl.HULK_FRAMEBUFFER,
|
||||||
cast(uint *)hulk_header.bootinfo.fb_buffer1_phys,
|
cast(uint *)hulk_header.bootinfo.fb_buffer1_phys,
|
||||||
hulk_header.bootinfo.fb.width,
|
hulk_header.bootinfo.fb.width,
|
||||||
hulk_header.bootinfo.fb.height,
|
hulk_header.bootinfo.fb.height,
|
||||||
|
@ -14,17 +14,17 @@ import hulk.bootinfo;
|
|||||||
import hulk.header;
|
import hulk.header;
|
||||||
import hulk.linker_addresses;
|
import hulk.linker_addresses;
|
||||||
|
|
||||||
/** HULK virtual base address. */
|
|
||||||
enum ulong HULK_VIRTUAL_BASE_ADDRESS = 0xFFFF_8000_0000_0000u;
|
|
||||||
|
|
||||||
/** HULK virtual stack top address. */
|
|
||||||
enum ulong HULK_VIRTUAL_STACK_TOP_ADDRESS = 0xFFFF_A000_0000_0000u;
|
|
||||||
|
|
||||||
/** HULK virtual framebuffer address. */
|
|
||||||
enum ulong HULK_VIRTUAL_FRAMEBUFFER_ADDRESS = 0xFFFF_A000_0000_0000u;
|
|
||||||
|
|
||||||
struct Hurl
|
struct Hurl
|
||||||
{
|
{
|
||||||
|
/** HULK base address. */
|
||||||
|
enum ulong HULK_BASE = 0xFFFF_8000_0000_0000u;
|
||||||
|
|
||||||
|
/** HULK stack top address. */
|
||||||
|
enum ulong HULK_STACK_TOP = 0xFFFF_8001_0000_0000u;
|
||||||
|
|
||||||
|
/** HULK framebuffer address. */
|
||||||
|
enum ulong HULK_FRAMEBUFFER = 0xFFFF_8001_0000_0000u;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pointer to the base page table.
|
* Pointer to the base page table.
|
||||||
*/
|
*/
|
||||||
@ -45,7 +45,7 @@ struct Hurl
|
|||||||
physical_address_limit,
|
physical_address_limit,
|
||||||
PT_WRITABLE | PT_NO_EXECUTE);
|
PT_WRITABLE | PT_NO_EXECUTE);
|
||||||
ulong phys_address = header.bootinfo.hulk_phys;
|
ulong phys_address = header.bootinfo.hulk_phys;
|
||||||
ulong virt_address = HULK_VIRTUAL_BASE_ADDRESS;
|
ulong virt_address = HULK_BASE;
|
||||||
/* Map HULK header region. */
|
/* Map HULK header region. */
|
||||||
map_range(virt_address,
|
map_range(virt_address,
|
||||||
phys_address,
|
phys_address,
|
||||||
@ -79,12 +79,12 @@ struct Hurl
|
|||||||
LinkerAddresses.hulk_bss_size,
|
LinkerAddresses.hulk_bss_size,
|
||||||
PT_WRITABLE | PT_NO_EXECUTE);
|
PT_WRITABLE | PT_NO_EXECUTE);
|
||||||
/* Map HULK stack. */
|
/* Map HULK stack. */
|
||||||
map_range(HULK_VIRTUAL_STACK_TOP_ADDRESS - header.stack_size,
|
map_range(HULK_STACK_TOP - header.stack_size,
|
||||||
header.bootinfo.stack_phys,
|
header.bootinfo.stack_phys,
|
||||||
header.stack_size,
|
header.stack_size,
|
||||||
PT_WRITABLE | PT_NO_EXECUTE);
|
PT_WRITABLE | PT_NO_EXECUTE);
|
||||||
/* Map device framebuffer. */
|
/* Map device framebuffer. */
|
||||||
map_range(HULK_VIRTUAL_FRAMEBUFFER_ADDRESS,
|
map_range(HULK_FRAMEBUFFER,
|
||||||
cast(ulong)header.bootinfo.fb.buffer,
|
cast(ulong)header.bootinfo.fb.buffer,
|
||||||
header.bootinfo.fb.height * header.bootinfo.fb.stride * 4u,
|
header.bootinfo.fb.height * header.bootinfo.fb.stride * 4u,
|
||||||
PT_WRITABLE | PT_NO_EXECUTE);
|
PT_WRITABLE | PT_NO_EXECUTE);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user