summaryrefslogtreecommitdiff
path: root/src/kernel/main.cc
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-04-14 22:47:15 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-04-14 22:47:15 +0800
commitac9741e12222e72bad3414bc6f588e70a3d130cc (patch)
tree6aace9f63a2ea54c7c3fd1e49e98ff81b638296f /src/kernel/main.cc
parent1e862099a13266da57ff7c6de11c1a11c42a8112 (diff)
downloadlume-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.cc11
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