working on exposing vga to userspace

This commit is contained in:
2026-07-16 14:44:08 -05:00
parent 37aa46c847
commit b588634253
16 changed files with 251 additions and 139 deletions

View File

@@ -125,26 +125,9 @@ void kmain(multiboot_info* mbi) {
init_pmm((void*)mmap_virtual_addr, mbi->mmap_length);
init_page_tables();
vga_init(vga_fb_address,
vga_fb_width,
vga_fb_height,
vga_fb_pitch,
vga_fb_bpp,
0, 0, 0, 0, 0, 0);
console_init();
int font_loaded = set_console_font("/fonts/cp850-8x16.psf");
if (!font_loaded) {
#ifdef SERIAL_DBG
print_serial("failed to load console font");
#endif
}
test_draw_vertical_line(100, 100, 150, 0xFFFFFFFF);
return;
kprintf("basic initializations complete\n");
disable_interrupts();
init_scheduler();
enable_interrupts();
vfs_node_t* vfs_root = vfs_create_root();
vfs_node_t* initrd_root = load_initrd();
@@ -162,22 +145,40 @@ void kmain(multiboot_info* mbi) {
return;
}
vfs_node_t* vga_dev = devfs->create(devfs, "tvga");
vga_dev->write = vga_write;
vfs_node_t* kbd_dev = devfs->create(devfs, "kbd");
kbd_dev->read = kbd_read;
vfs_node_t* vga_dev = devfs->create(devfs, "vga");
vga_init(vga_dev,
vga_fb_address,
vga_fb_width,
vga_fb_height,
vga_fb_pitch,
vga_fb_bpp);
kprintf("vga initialized\n");
vfs_node_t* dev = vfs_find("/dev");
if (dev) {
dev->mnt = devfs;
if (!dev) {
kprintf("failed to find dev mnt point\n");
return;
}
disable_interrupts();
init_scheduler();
enable_interrupts();
dev->mnt = devfs;
kprintf("mounted devfs\n");
console_init();
kprintf("kernel console initialized\n");
kprintf("loading terminal program\n");
int font_loaded = set_console_font("/fonts/kernel_font.psf");
if (!font_loaded) {
kprintf("failed to load console font\n");
}
kprintf("console font set\n");
kprintf("basic initializations complete. check serial for details\n");
kprintf("starting rockos\n");
load_root_program("/bin/vga_text_term.elf");
kprintf("kernel going to sleep...\n");