summaryrefslogtreecommitdiff
path: root/src/kernel/main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/main.cc')
-rw-r--r--src/kernel/main.cc79
1 files changed, 0 insertions, 79 deletions
diff --git a/src/kernel/main.cc b/src/kernel/main.cc
deleted file mode 100644
index 6a19915..0000000
--- a/src/kernel/main.cc
+++ /dev/null
@@ -1,79 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * Copyright (C) 2026 Richard QIn
- */
-#include "common/types.h"
-#include "kernel/riscv.h"
-#include "drivers/uart.h"
-#include "drivers/plic.h"
-#include "drivers/virtio.h"
-#include "kernel/pmm.h"
-#include "kernel/mm.h"
-#include "kernel/slab.h"
-#include "kernel/proc.h"
-#include "kernel/trap.h"
-#include "kernel/timer.h"
-#include "kernel/cpu.h"
-#include "kernel/buf.h"
-#include "fs/fs.h"
-#include "fs/file.h"
-#include "fs/fat32.h"
-#include "lib/string.h"
-
-#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_parse(dtb);
-
- Drivers::uart_init();
- Drivers::uart_puts("\n[Lume OS] Booting...\n");
-
- Drivers::uart_puts("[Boot] PMP configured.\n");
-
- PMM::init(); // Physical Memory Management
- VM::kvminit(); // Kernel Pagetable
- VM::kvminithart(); // Enable MMU
- Slab::init();
- Trap::init(); // Trap Management
- Trap::inithart();
- PLIC::init();
- PLIC::inithart();
- 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
- ProcManager::user_init(); // Initialize first user process
-
- __atomic_store_n(&started, 1, __ATOMIC_RELEASE);
-
- Drivers::uart_puts("[Boot] System initialized. Entering scheduler...\n");
- }
- else
- {
- while (__atomic_load_n(&started, __ATOMIC_ACQUIRE) == 0)
- ;
-
- VM::kvminithart();
- Trap::inithart();
- PLIC::inithart();
- Timer::init();
- Drivers::uart_puts("[Boot] Hart started.\n");
- }
-
- ProcManager::scheduler(); // Enable Scheduler
-} \ No newline at end of file