diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-04-14 22:47:15 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-04-14 22:47:15 +0800 |
| commit | ac9741e12222e72bad3414bc6f588e70a3d130cc (patch) | |
| tree | 6aace9f63a2ea54c7c3fd1e49e98ff81b638296f /src/kernel/main.cc | |
| parent | 1e862099a13266da57ff7c6de11c1a11c42a8112 (diff) | |
| download | lume-ac9741e12222e72bad3414bc6f588e70a3d130cc.tar.gz lume-ac9741e12222e72bad3414bc6f588e70a3d130cc.tar.xz | |
feat: implement FDT-based memory discovery and add comprehensive debug logging to exec syscalls
Diffstat (limited to 'src/kernel/main.cc')
| -rw-r--r-- | src/kernel/main.cc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/kernel/main.cc b/src/kernel/main.cc index 22cffd6..6a19915 100644 --- a/src/kernel/main.cc +++ b/src/kernel/main.cc @@ -20,16 +20,20 @@ #include "fs/fat32.h" #include "lib/string.h" -extern void fdt_init(uint64 dtb); +#include "kernel/fdt.h" // fdt_parse + extern uint64 g_dtb_addr; +// Placement new support (referenced from cxx.cc) +void *operator new(unsigned long size, void *ptr); + volatile static int started = 0; extern "C" void kernel_main(uint64 hartid, uint64 dtb) { if (hartid == 0) { - fdt_init(dtb); + fdt_parse(dtb); Drivers::uart_init(); Drivers::uart_puts("\n[Lume OS] Booting...\n"); @@ -47,6 +51,9 @@ extern "C" void kernel_main(uint64 hartid, uint64 dtb) VirtIO::init(); BufferCache::init(); VFS::init(); + // Initialize global FAT32 object manually (global constructors not supported yet) + new (&fat32_fs) FAT32FileSystem(); + VFS::register_fs(&fat32_fs); FileTable::init(); Timer::init(); ProcManager::init(); // Process Management |
