Parse ramdisk tar file

This commit is contained in:
2025-12-11 02:05:38 +01:00
parent 172859831d
commit 412db850a0
11 changed files with 152 additions and 2 deletions

View File

@ -43,6 +43,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <mm/bba.h>
#include <mm/liballoc.h>
#include <mm/mregmap.h>
#include <ramdisk/tar.h>
#include <config.h>
extern byte_t __kernel_end;
@ -94,9 +95,17 @@ static void mregmap_init1(void) {
}
}
static void pmm_init1(void) {
static void ramdisk_init(void) {
struct multiboot *mb = multiboot_get();
/* TODO: for now we assert that the first module is the ramdisk */
struct multiboot_mod_list *module = (struct multiboot_mod_list *)((uptr_t)mb->mods_addr + VIRT_BASE);
uptr_t module_start = (uptr_t)module->mod_start + VIRT_BASE;
usize_t total = tar_parse(module_start);
dbgf("ramdisk: total=%zu\n", total);
}
static void pmm_init1(void) {
struct mreg *avail_ram = mregmap_first_avail();
usize_t usable_ram_bytes = avail_ram->size;
@ -135,6 +144,7 @@ void bootmain(void *mbootptr) {
pmm_init1();
bba_init();
mm_init();
ramdisk_init();
pit_init();
__asm__ volatile("sti");