From 103205bff2f27ffdc59d09f3bd51cd0878ecf10c Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Sun, 1 Jan 2023 21:04:29 -0500 Subject: [PATCH] Move address constants into Hurl struct --- src/hulk/hulk.d | 8 ++++---- src/hulk/hurl.d | 24 ++++++++++++------------ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/hulk/hulk.d b/src/hulk/hulk.d index ce6ccd8..e702673 100644 --- a/src/hulk/hulk.d +++ b/src/hulk/hulk.d @@ -29,9 +29,9 @@ private __gshared HulkHeader hulk_header = { &_hulk_bss_size, /* hulk_bss_size */ &hulk_start, /* entry */ 16u * 1024u, /* stack_size */ - HULK_VIRTUAL_BASE_ADDRESS, /* virt_base */ - HULK_VIRTUAL_STACK_TOP_ADDRESS, /* virt_stack_top */ - HULK_VIRTUAL_FRAMEBUFFER_ADDRESS, /* virt_fb_buffer */ + Hurl.HULK_BASE, /* virt_base */ + Hurl.HULK_STACK_TOP, /* virt_stack_top */ + Hurl.HULK_FRAMEBUFFER, /* virt_fb_buffer */ }; private void initialize_cpu() @@ -58,7 +58,7 @@ void hulk_start() initialize_cpu(); Gdt.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, hulk_header.bootinfo.fb.width, hulk_header.bootinfo.fb.height, diff --git a/src/hulk/hurl.d b/src/hulk/hurl.d index 0f1088b..426ef58 100644 --- a/src/hulk/hurl.d +++ b/src/hulk/hurl.d @@ -14,17 +14,17 @@ import hulk.bootinfo; import hulk.header; 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 { + /** 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. */ @@ -45,7 +45,7 @@ struct Hurl physical_address_limit, PT_WRITABLE | PT_NO_EXECUTE); ulong phys_address = header.bootinfo.hulk_phys; - ulong virt_address = HULK_VIRTUAL_BASE_ADDRESS; + ulong virt_address = HULK_BASE; /* Map HULK header region. */ map_range(virt_address, phys_address, @@ -79,12 +79,12 @@ struct Hurl LinkerAddresses.hulk_bss_size, PT_WRITABLE | PT_NO_EXECUTE); /* 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.stack_size, PT_WRITABLE | PT_NO_EXECUTE); /* Map device framebuffer. */ - map_range(HULK_VIRTUAL_FRAMEBUFFER_ADDRESS, + map_range(HULK_FRAMEBUFFER, cast(ulong)header.bootinfo.fb.buffer, header.bootinfo.fb.height * header.bootinfo.fb.stride * 4u, PT_WRITABLE | PT_NO_EXECUTE);