Initial commit
This commit is contained in:
46
kernel/kernel.c
Normal file
46
kernel/kernel.c
Normal file
@@ -0,0 +1,46 @@
|
||||
#include <drivers/ports.h>
|
||||
#include <drivers/vgascreen.h>
|
||||
#include <libc/libc.h>
|
||||
#include <cpu/isr.h>
|
||||
#include <cpu/timer.h>
|
||||
#include <drivers/keyboard.h>
|
||||
#include <mem/mem.h>
|
||||
#include <multiboot.h>
|
||||
#include <drivers/serial.h>
|
||||
#include "kprint.h"
|
||||
|
||||
char *msg_booted = "Booted Successfully!\n";
|
||||
|
||||
|
||||
void kmain(multiboot_info_t *multiboot_info) {
|
||||
isr_install();
|
||||
init_mmap((struct multiboot_mmap_entry *) multiboot_info->mmap_addr,
|
||||
multiboot_info->mmap_length / sizeof(struct multiboot_mmap_entry));
|
||||
vga_clear_screen();
|
||||
vga_clear_screen(' ', VGA_WHITE | (VGA_GRAY << VGA_SHIFT_BG));
|
||||
kprint_register(vga_kprint);
|
||||
serial_init();
|
||||
kprint_register(serial_kprint);
|
||||
|
||||
// vga_print_string(msg_booted, VGA_WHITE | (VGA_DARK_GRAY << VGA_SHIFT_BG));
|
||||
kprint(msg_booted);
|
||||
kprint((char *) multiboot_info->boot_loader_name);
|
||||
multiboot_memory_map_t *fe = multiboot_info->mmap_addr;
|
||||
|
||||
// port_byte_out(0x3d4, 14);
|
||||
// int pos = port_byte_in(0x3d5);
|
||||
// pos <<= 8;
|
||||
//
|
||||
// port_byte_out(0x3d4, 15);
|
||||
// pos += port_byte_in(0x3d5);
|
||||
|
||||
asm volatile("sti");
|
||||
init_timer(50);
|
||||
init_keyboard();
|
||||
|
||||
print_mmap_info();
|
||||
|
||||
// vga_set_raw(pos * 2, 'X');
|
||||
// vga_set_raw(pos * 2 + 1, 0xf);
|
||||
do {} while (1);
|
||||
}
|
||||
Reference in New Issue
Block a user