#include "uart.h"
#include "mmu.h"
#include "gic.h"
#include "timer.h"
#include "smp.h"
#include "task.h"
#include "vfs.h"
#include "watchdog.h"

void shell_task(void);
void proc_init(void);

void kernel_main(void) {
    uart_init();
    uart_puts("MiniOS boot\n");

    mmu_init();
    gic_dist_init();
    gic_cpu_init();
    timer_init(100);
    watchdog_init();
    vfs_init();
    proc_init();           /* /proc/tasks */

    task_create(shell_task);
    smp_init();

    while (1) scheduler_yield();
}
