Files
osc2025/kernel/main.c
2025-05-03 20:45:34 +08:00

50 lines
811 B
C

#include <logger.h>
#include <process.h>
#include <thread.h>
#include <kmalloc.h>
#include <uart.h>
#include <dtb.h>
#include <initrd.h>
#include <mman.h>
#include <vector.h>
#include <utils.h>
#include <timer.h>
#include <exception.h>
#include <interrupt.h>
static inline
void _init(void *dtb)
{
exception_init();
uart_init();
// Device tree
DEBUG_DTB(dtb);
dtb_start = dtb;
vector_t *dtb_struct_cbs = make_vector(0);
VEC_PUSH(dtb_struct_cbs, &initrd_dtb_cb);
VEC_PUSH(dtb_struct_cbs, &mman_dtb_memory_cb);
fdt_traverse(dtb_struct_cbs);
DEBUG_DTB("device tree parse done");
initrd_init();
mman_init();
thread_init();
timer_init();
enable_interrupt();
}
void main(void *dtb)
{
_init(dtb);
run_thread(run_process_by_name, (uint64_t)&"syscall.img");
schedule();
}