Parse ramdisk tar file
This commit is contained in:
@ -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");
|
||||
|
||||
Reference in New Issue
Block a user