2026-06-10 18:28:33 -05:00
|
|
|
#include <lib/print.h>
|
|
|
|
|
#include <lib/stream.h>
|
2026-06-09 23:16:25 -05:00
|
|
|
|
2026-06-11 23:23:39 -05:00
|
|
|
#include <idt.h>
|
|
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
|
|
|
|
|
extern void init_idt();
|
2026-06-12 23:03:00 -04:00
|
|
|
extern void init_gdt();
|
2026-06-13 13:27:39 -05:00
|
|
|
extern void init_pic();
|
|
|
|
|
extern void init_pit();
|
|
|
|
|
extern void enable_interrupts();
|
2026-06-11 23:23:39 -05:00
|
|
|
|
2026-06-13 13:27:39 -05:00
|
|
|
void kmain(void)
|
2026-06-10 18:28:33 -05:00
|
|
|
{
|
|
|
|
|
extern print_stream_t vga_print_stream;
|
|
|
|
|
extern print_stream_t* kout;
|
|
|
|
|
kout = &vga_print_stream;
|
|
|
|
|
kout->trunc();
|
2026-06-09 23:16:25 -05:00
|
|
|
|
2026-06-12 23:03:00 -04:00
|
|
|
kprint("RockOS booting...\n");
|
|
|
|
|
|
|
|
|
|
init_gdt();
|
|
|
|
|
kprint("GDT set\n");
|
2026-06-11 23:23:39 -05:00
|
|
|
|
|
|
|
|
init_idt();
|
2026-06-12 23:03:00 -04:00
|
|
|
kprint("IDT set\n");
|
2026-06-13 13:27:39 -05:00
|
|
|
|
|
|
|
|
init_pic();
|
|
|
|
|
kprint("PIC initialized\n");
|
|
|
|
|
|
|
|
|
|
init_pit();
|
|
|
|
|
kprint("PIT initialized\n");
|
|
|
|
|
|
|
|
|
|
enable_interrupts();
|
|
|
|
|
kprint("Interrupts enabled\n");
|
|
|
|
|
|
|
|
|
|
while(1);
|
2026-06-09 23:16:25 -05:00
|
|
|
}
|