66 lines
1.5 KiB
C
66 lines
1.5 KiB
C
#include <limine.h>
|
|
#include "kprintf.h"
|
|
#include "banner.h"
|
|
#include "bootinfo/bootinfo.h"
|
|
#include "pmm/pmm.h"
|
|
#include "term/term.h"
|
|
#include "dlmalloc/malloc.h"
|
|
#include "vfs/vfs.h"
|
|
#include "baseimg/baseimg.h"
|
|
#include "storedev/storedev.h"
|
|
#include "util/util.h"
|
|
#include "proc/proc.h"
|
|
#include "dev/dev.h"
|
|
#include "randcrypto/randcrypto.h"
|
|
#include "time/time.h"
|
|
#include "diskpart/diskpart.h"
|
|
#include "vmm/vmm.h"
|
|
#include "cpu/hang.h"
|
|
#include "cpu/gdt.h"
|
|
#include "ipc/mbus/mbus.h"
|
|
#include "pci/pci.h"
|
|
#include "cjob/cjob.h"
|
|
|
|
void log_bootinfo(void) {
|
|
char buf[100];
|
|
LOG("kmain", "Memory total = %s\n", human_size(BOOT_INFO.memmap_total, buf, sizeof(buf)));
|
|
}
|
|
|
|
void log_time(void) {
|
|
Time time;
|
|
time_get(&time);
|
|
timeunix_t unix = time_tounix(&time);
|
|
LOG("kmain", "TIME: %02u/%02u/%02u %02u:%02u:%02u (%lu)\n", time.day, time.month, time.year,
|
|
time.hour, time.minute, time.second,
|
|
unix);
|
|
}
|
|
|
|
static volatile LIMINE_BASE_REVISION(2);
|
|
|
|
void kmain(void) {
|
|
if (LIMINE_BASE_REVISION_SUPPORTED == false) {
|
|
cpu_hang();
|
|
}
|
|
|
|
bootinfo_init();
|
|
term_init(BOOT_INFO.fb->address);
|
|
log_bootinfo();
|
|
log_time();
|
|
gdt_init();
|
|
pmm_init();
|
|
vmm_init();
|
|
intr_init();
|
|
randcrypto_init();
|
|
cjob_init();
|
|
ipc_mbusinit();
|
|
dev_init();
|
|
storedev_init();
|
|
pci_init();
|
|
diskpart_init();
|
|
baseimg_init();
|
|
vfs_init();
|
|
proc_init();
|
|
|
|
for(;;);
|
|
}
|