diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt index 65869eb..af2a337 100644 --- a/kernel/CMakeLists.txt +++ b/kernel/CMakeLists.txt @@ -5,42 +5,34 @@ set(CMAKE_C_STANDARD 23) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS OFF) -add_library(shitgui STATIC src/modules/shitgui.c) -target_include_directories(shitgui PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") +if (NOT DEFINED ARCH) + set(ARCH "x86_64") +endif() -add_executable(kernel - src/entry.asm - src/asm/interrupts.asm - src/kmain.c - src/modules/pic.c - src/modules/gdt.c - src/modules/idt.c - src/modules/interrupts.c - src/modules/pmm.c - src/modules/vmm.c - src/modules/memory.c - src/modules/serial.c - src/modules/console.c - src/modules/rand.c - src/modules/panic.c - src/modules/keyboard.c - src/modules/kfetch.c - data/font8x16.c +message(STATUS "TermOS Kernel: Building for architecture '${ARCH}'") + + +file(GLOB_RECURSE KERNEL_SOURCES + "src/kmain.c" + + "src/arch/${ARCH}/*.c" + "src/arch/${ARCH}/*.asm" + + "src/core/*.c" + "src/drivers/*.c" + "src/mm/*.c" + "src/shell/*.c" + + "data/*.c" ) +add_executable(kernel ${KERNEL_SOURCES}) + target_include_directories(kernel PRIVATE - "${CMAKE_CURRENT_SOURCE_DIR}/../common" - "${CMAKE_CURRENT_SOURCE_DIR}/include" -) - -target_link_libraries(kernel PRIVATE shitgui) - -target_link_options(kernel PRIVATE - -nostdlib - -static - -no-pie - -T "${CMAKE_CURRENT_SOURCE_DIR}/linker.ld" - -Wl,-Map,"${CMAKE_BINARY_DIR}/kernel.map" + "${CMAKE_CURRENT_SOURCE_DIR}/../common" + "${CMAKE_CURRENT_SOURCE_DIR}/inc" + "${CMAKE_CURRENT_SOURCE_DIR}/inc/arch/${ARCH}" + "${CMAKE_CURRENT_SOURCE_DIR}/data" ) target_compile_options(kernel PRIVATE @@ -54,6 +46,15 @@ target_compile_options(kernel PRIVATE > ) +target_link_options(kernel PRIVATE + -nostdlib + -static + -no-pie + -T "${CMAKE_CURRENT_SOURCE_DIR}/linker.ld" + -Wl,-Map,"${CMAKE_BINARY_DIR}/kernel.map" + -z max-page-size=0x1000 +) + set_target_properties(kernel PROPERTIES OUTPUT_NAME "kernel.elf" RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" @@ -61,10 +62,5 @@ set_target_properties(kernel PROPERTIES add_custom_command(TARGET kernel POST_BUILD COMMAND objcopy -O binary $ $/kernel.bin - COMMENT "Stripping ELF headers -> kernel.bin" -) - -file(GLOB_RECURSE SOURCES - "src/*.c" - "data/*.c" + COMMENT "Generating raw binary kernel.bin..." ) \ No newline at end of file diff --git a/kernel/data/logo.h b/kernel/data/logo.h index d8d830d..a39fbad 100644 --- a/kernel/data/logo.h +++ b/kernel/data/logo.h @@ -3,7 +3,7 @@ // Copyright (c) 2025 0xKarinyash #pragma once -#include "shitgui.h" +#include #define LOGO_TRANSPARENCY_KEY 0xFF00FF diff --git a/kernel/include/gdt.h b/kernel/inc/arch/x86_64/gdt.h similarity index 97% rename from kernel/include/gdt.h rename to kernel/inc/arch/x86_64/gdt.h index 89cbce2..1f28a46 100644 --- a/kernel/include/gdt.h +++ b/kernel/inc/arch/x86_64/gdt.h @@ -5,7 +5,7 @@ #ifndef GDT_H #define GDT_H -#include "types.h" +#include typedef struct { u16 limit_low; diff --git a/kernel/include/idt.h b/kernel/inc/arch/x86_64/idt.h similarity index 95% rename from kernel/include/idt.h rename to kernel/inc/arch/x86_64/idt.h index ab36dd0..2f4788d 100644 --- a/kernel/include/idt.h +++ b/kernel/inc/arch/x86_64/idt.h @@ -4,7 +4,7 @@ #ifndef IDT_H #define IDT_H #pragma once -#include "types.h" +#include typedef struct { u16 offset_low; diff --git a/kernel/include/io.h b/kernel/inc/arch/x86_64/io.h similarity index 100% rename from kernel/include/io.h rename to kernel/inc/arch/x86_64/io.h diff --git a/kernel/include/pic.h b/kernel/inc/arch/x86_64/pic.h similarity index 87% rename from kernel/include/pic.h rename to kernel/inc/arch/x86_64/pic.h index 5eed781..753e186 100644 --- a/kernel/include/pic.h +++ b/kernel/inc/arch/x86_64/pic.h @@ -4,7 +4,7 @@ #ifndef PIC_H #define PIC_H -#include "types.h" +#include u16 pic_remap(); diff --git a/kernel/include/math.h b/kernel/inc/core/math.h similarity index 94% rename from kernel/include/math.h rename to kernel/inc/core/math.h index f43c139..1523531 100644 --- a/kernel/include/math.h +++ b/kernel/inc/core/math.h @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#include "types.h" +#include #define MAX(a, b) ({ \ auto _a = (a); \ diff --git a/kernel/include/panic.h b/kernel/inc/core/panic.h similarity index 93% rename from kernel/include/panic.h rename to kernel/inc/core/panic.h index 06fe877..d9f7bba 100644 --- a/kernel/include/panic.h +++ b/kernel/inc/core/panic.h @@ -4,7 +4,7 @@ #pragma once #ifndef PANIC_H #define PANIC_H -#include "types.h" +#include __attribute__((noreturn)) void panic_exception(Registers *regs); __attribute__((noreturn)) void panic(const char* msg); diff --git a/kernel/include/rand.h b/kernel/inc/core/rand.h similarity index 87% rename from kernel/include/rand.h rename to kernel/inc/core/rand.h index 2e9dc70..91b02b6 100644 --- a/kernel/include/rand.h +++ b/kernel/inc/core/rand.h @@ -3,7 +3,8 @@ #ifndef RAND_H #define RAND_H -#include "types.h" + +#include u64 shitrand(); diff --git a/kernel/include/console.h b/kernel/inc/drivers/console.h similarity index 93% rename from kernel/include/console.h rename to kernel/inc/drivers/console.h index 002d0e7..805fb23 100644 --- a/kernel/include/console.h +++ b/kernel/inc/drivers/console.h @@ -4,7 +4,7 @@ #ifndef CONSOLE_H #define CONSOLE_H -#include "shitgui.h" +#include void console_init(SG_Context *ctx); void console_clear(u32 color); diff --git a/kernel/include/font.h b/kernel/inc/drivers/font.h similarity index 78% rename from kernel/include/font.h rename to kernel/inc/drivers/font.h index 499de39..f5d64d7 100644 --- a/kernel/include/font.h +++ b/kernel/inc/drivers/font.h @@ -1,7 +1,7 @@ #ifndef FONT_H #define FONT_H -#include "types.h" +#include extern u8 font8x16[128][16]; diff --git a/kernel/include/keyboard.h b/kernel/inc/drivers/keyboard.h similarity index 81% rename from kernel/include/keyboard.h rename to kernel/inc/drivers/keyboard.h index 8e61566..fed07a2 100644 --- a/kernel/include/keyboard.h +++ b/kernel/inc/drivers/keyboard.h @@ -1,7 +1,7 @@ #ifndef KEYBOARD_H #define KEYBOARD_H -#include "types.h" +#include void kb_handler(Registers *regs); diff --git a/kernel/include/serial.h b/kernel/inc/drivers/serial.h similarity index 100% rename from kernel/include/serial.h rename to kernel/inc/drivers/serial.h diff --git a/kernel/include/shitgui.h b/kernel/inc/drivers/shitgui.h similarity index 97% rename from kernel/include/shitgui.h rename to kernel/inc/drivers/shitgui.h index 5ae834b..7785869 100644 --- a/kernel/include/shitgui.h +++ b/kernel/inc/drivers/shitgui.h @@ -4,7 +4,7 @@ #ifndef SHITGUI_H #define SHITGUI_H -#include "types.h" +#include typedef struct { volatile u32 *fb; diff --git a/kernel/include/memory.h b/kernel/inc/mm/memory.h similarity index 89% rename from kernel/include/memory.h rename to kernel/inc/mm/memory.h index f0e7efe..1db35e2 100644 --- a/kernel/include/memory.h +++ b/kernel/inc/mm/memory.h @@ -4,7 +4,7 @@ #ifndef MEMORY_H #define MEMORY_H -#include "types.h" +#include void *memset(void *ptr, int value, usize num); diff --git a/kernel/include/pmm.h b/kernel/inc/mm/pmm.h similarity index 95% rename from kernel/include/pmm.h rename to kernel/inc/mm/pmm.h index fea0ac3..1079284 100644 --- a/kernel/include/pmm.h +++ b/kernel/inc/mm/pmm.h @@ -4,7 +4,7 @@ #ifndef PMM_H #define PMM_H -#include "../common/bootinfo.h" +#include "bootinfo.h" #define PAGE_SIZE 4096 #define BLOCKS_PER_BYTE 8 diff --git a/kernel/include/vmm.h b/kernel/inc/mm/vmm.h similarity index 96% rename from kernel/include/vmm.h rename to kernel/inc/mm/vmm.h index a0d093c..48baf08 100644 --- a/kernel/include/vmm.h +++ b/kernel/inc/mm/vmm.h @@ -4,8 +4,8 @@ #ifndef VMM_H #define VMM_H -#include "../common/bootinfo.h" -#include "types.h" +#include "bootinfo.h" +#include #define PTE_PRESENT (1ULL << 0) // 0 -- not present: page fault when trying to access; 1 -- present, can RW #define PTE_RW (1ULL << 1) // 0 -- RO: page fault trying to write; 1 -- RW diff --git a/kernel/include/kfetch.h b/kernel/inc/shell/kfetch.h similarity index 100% rename from kernel/include/kfetch.h rename to kernel/inc/shell/kfetch.h diff --git a/kernel/include/types.h b/kernel/inc/types.h similarity index 93% rename from kernel/include/types.h rename to kernel/inc/types.h index 9acb8a5..98e65cc 100644 --- a/kernel/include/types.h +++ b/kernel/inc/types.h @@ -51,4 +51,11 @@ typedef enum { EfiMaxMemoryType } EFI_MEMORY_TYPE; +#ifndef __cplusplus + #define bool _Bool + #define true 1 + #define false 0 +#endif + + #endif \ No newline at end of file diff --git a/kernel/src/entry.asm b/kernel/src/arch/x86_64/entry.asm similarity index 100% rename from kernel/src/entry.asm rename to kernel/src/arch/x86_64/entry.asm diff --git a/kernel/src/modules/gdt.c b/kernel/src/arch/x86_64/gdt.c similarity index 99% rename from kernel/src/modules/gdt.c rename to kernel/src/arch/x86_64/gdt.c index c332e1f..76c8c92 100644 --- a/kernel/src/modules/gdt.c +++ b/kernel/src/arch/x86_64/gdt.c @@ -3,7 +3,7 @@ // just fucking kill me already -#include "gdt.h" +#include GDTDescriptor gdt[5]; GDTPtr gdt_ptr; diff --git a/kernel/src/modules/idt.c b/kernel/src/arch/x86_64/idt.c similarity index 98% rename from kernel/src/modules/idt.c rename to kernel/src/arch/x86_64/idt.c index 4efe7ad..85ef428 100644 --- a/kernel/src/modules/idt.c +++ b/kernel/src/arch/x86_64/idt.c @@ -1,8 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#include "idt.h" -#include "types.h" +#include +#include IDTEntry idt[256]; IDTPtr idt_ptr; diff --git a/kernel/src/asm/interrupts.asm b/kernel/src/arch/x86_64/interrupts.asm similarity index 100% rename from kernel/src/asm/interrupts.asm rename to kernel/src/arch/x86_64/interrupts.asm diff --git a/kernel/src/modules/interrupts.c b/kernel/src/arch/x86_64/interrupts.c similarity index 81% rename from kernel/src/modules/interrupts.c rename to kernel/src/arch/x86_64/interrupts.c index a27a90e..ab8b547 100644 --- a/kernel/src/modules/interrupts.c +++ b/kernel/src/arch/x86_64/interrupts.c @@ -1,10 +1,10 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#include "io.h" -#include "panic.h" -#include "keyboard.h" -#include "types.h" +#include +#include +#include +#include void isr_handler_c(Registers *regs) { diff --git a/kernel/src/modules/pic.c b/kernel/src/arch/x86_64/pic.c similarity index 76% rename from kernel/src/modules/pic.c rename to kernel/src/arch/x86_64/pic.c index a349581..46d04e3 100644 --- a/kernel/src/modules/pic.c +++ b/kernel/src/arch/x86_64/pic.c @@ -1,14 +1,10 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#include "pic.h" -#include "io.h" -#include "types.h" +#include +#include +#include -#define MASTER_COMMAND 0x20 -#define MASTER_DATA 0x21 -#define SLAVE_COMMAND 0xA0 -#define SLAVE_DATA 0xA1 u16 pic_remap() { u8 curr_master = inb(MASTER_DATA); @@ -30,5 +26,9 @@ u16 pic_remap() { outb_wait(MASTER_DATA, 0x01); outb_wait(SLAVE_DATA, 0x01); + outb_wait(MASTER_DATA, 0xFD); // 1111 1101 + // 0 -- means 'on' + outb_wait(SLAVE_DATA, 0xFF); // Everything ON + return ((u16) curr_master << 8) | curr_slave; } \ No newline at end of file diff --git a/kernel/src/modules/panic.c b/kernel/src/core/panic.c similarity index 97% rename from kernel/src/modules/panic.c rename to kernel/src/core/panic.c index e8b8f73..fb54141 100644 --- a/kernel/src/modules/panic.c +++ b/kernel/src/core/panic.c @@ -1,11 +1,13 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#include "panic.h" -#include "console.h" -#include "rand.h" -#include "types.h" -#include "shitgui.h" +#include +#include + +#include +#include + +#include const char* fun_messages[] = { "Execution finished abnormally with code: 0x_x", diff --git a/kernel/src/modules/rand.c b/kernel/src/core/rand.c similarity index 85% rename from kernel/src/modules/rand.c rename to kernel/src/core/rand.c index b90d2ce..213f264 100644 --- a/kernel/src/modules/rand.c +++ b/kernel/src/core/rand.c @@ -1,8 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#include "rand.h" -#include "types.h" +#include +#include // really shiity rand lol. // not shitty.. basic. diff --git a/kernel/src/modules/console.c b/kernel/src/drivers/console.c similarity index 97% rename from kernel/src/modules/console.c rename to kernel/src/drivers/console.c index 657fdff..53408ca 100644 --- a/kernel/src/modules/console.c +++ b/kernel/src/drivers/console.c @@ -1,12 +1,14 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#include "console.h" -#include "serial.h" -#include "font.h" -#include "shitgui.h" -#include "math.h" -#include "types.h" +#include +#include +#include +#include + +#include +#include + #include #define COLOR_RED 0xFF5555 diff --git a/kernel/src/drivers/keyboard.c b/kernel/src/drivers/keyboard.c new file mode 100644 index 0000000..a7ab539 --- /dev/null +++ b/kernel/src/drivers/keyboard.c @@ -0,0 +1,109 @@ +#include +#include + +#include +#include + +unsigned char keyboard_map[128] = { + 0, 27, '1', '2', '3', '4', '5', '6', '7', '8', /* 0x00 - 0x09 */ + '9', '0', '-', '=', '\b', /* Backspace */ + '\t', /* Tab */ + 'q', 'w', 'e', 'r', /* 0x10 - 0x13 */ + 't', 'y', 'u', 'i', 'o', 'p', '[', ']', '\n', /* Enter key */ + 0, /* 0x1D - Control */ + 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';', /* 0x1E - 0x27 */ + '\'', '`', 0, /* Left shift */ + '\\', 'z', 'x', 'c', 'v', 'b', 'n', /* 0x2C - 0x32 */ + 'm', ',', '.', '/', 0, /* Right shift */ + '*', + 0, /* Alt */ + ' ', /* Space bar */ + 0, /* Caps lock */ + 0, /* 0x3B - F1 key ... > */ + 0, 0, 0, 0, 0, 0, 0, 0, + 0, /* < ... F10 */ + 0, /* 0x45 - Num lock*/ + 0, /* Scroll Lock */ + 0, /* Home key */ + 0, /* Up Arrow */ + 0, /* Page Up */ + '-', + 0, /* Left Arrow */ + 0, + 0, /* Right Arrow */ + '+', + 0, /* 0x4F - End key*/ + 0, /* Down Arrow */ + 0, /* Page Down */ + 0, /* Insert Key */ + 0, /* Delete Key */ + 0, 0, 0, + 0, /* F11 Key */ + 0, /* F12 Key */ + 0, /* All other keys are undefined */ +}; + +unsigned char keyboard_map_shifted[128] = { + 0, 27, '!', '@', '#', '$', '%', '^', '&', '*', /* 0x00 - 0x09 */ + '(', ')', '_', '+', '\b', /* Backspace */ + '\t', /* Tab */ + 'Q', 'W', 'E', 'R', /* 0x10 - 0x13 */ + 'T', 'Y', 'U', 'I', 'O', 'P', '{', '}', '\n', /* Enter key */ + 0, /* 0x1D - Control */ + 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ':', /* 0x1E - 0x27 */ + '"', '~', 0, /* Left shift (0x2A) */ + '|', 'Z', 'X', 'C', 'V', 'B', 'N', /* 0x2C - 0x32 */ + 'M', '<', '>', '?', 0, /* Right shift (0x36) */ + '*', + 0, /* Alt */ + ' ', /* Space bar */ + 0, /* Caps lock */ + 0, /* 0x3B - F1 key ... > */ + 0, 0, 0, 0, 0, 0, 0, 0, + 0, /* < ... F10 */ + 0, /* 0x45 - Num lock*/ + 0, /* Scroll Lock */ + 0, /* Home key */ + 0, /* Up Arrow */ + 0, /* Page Up */ + '-', + 0, /* Left Arrow */ + 0, + 0, /* Right Arrow */ + '+', + 0, /* 0x4F - End key*/ + 0, /* Down Arrow */ + 0, /* Page Down */ + 0, /* Insert Key */ + 0, /* Delete Key */ + 0, 0, 0, + 0, /* F11 Key */ + 0, /* F12 Key */ + 0, /* All other keys */ +}; + +bool shift_pressed = false; + +void kb_handler(Registers *regs) { + u8 scancode = inb(0x60); + // make code 0x00 - 0x7F; break code = make code + 0x80 + if (scancode < 0x80) { + unsigned char* arr = shift_pressed ? keyboard_map_shifted : keyboard_map; + char ascii = arr[scancode]; + if (ascii) { + kprintf("%c", ascii); + } else { + switch (scancode) { + case 0x2A: shift_pressed = true; break; + default: break; + } + } + } else { + switch (scancode) { + case 0xAA: shift_pressed = false; break; + default: break; + } + } + outb(MASTER_COMMAND, 0x20); + // kprintf("Key: %x; shift is %spressed\n", scancode, shift_pressed ? "" : "not "); +} \ No newline at end of file diff --git a/kernel/src/modules/serial.c b/kernel/src/drivers/serial.c similarity index 95% rename from kernel/src/modules/serial.c rename to kernel/src/drivers/serial.c index c9bea42..7fe2104 100644 --- a/kernel/src/modules/serial.c +++ b/kernel/src/drivers/serial.c @@ -1,8 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#include "serial.h" -#include "io.h" +#include +#include #define PORT 0x3F8 // com1 diff --git a/kernel/src/modules/shitgui.c b/kernel/src/drivers/shitgui.c similarity index 98% rename from kernel/src/modules/shitgui.c rename to kernel/src/drivers/shitgui.c index 247c47a..08d3f07 100644 --- a/kernel/src/modules/shitgui.c +++ b/kernel/src/drivers/shitgui.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#include "shitgui.h" +#include #define SHITGUI_TRANSPARENCY_KEY 0xFF00FF diff --git a/kernel/src/kmain.c b/kernel/src/kmain.c index e5ae0fb..04e80a8 100644 --- a/kernel/src/kmain.c +++ b/kernel/src/kmain.c @@ -1,22 +1,20 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#include "../../common/bootinfo.h" -#include "types.h" - -#include "shitgui.h" -#include "serial.h" -#include "console.h" -#include "panic.h" // IWYU pragma: keep - -#include "gdt.h" -#include "idt.h" -#include "pic.h" -#include "pmm.h" -#include "vmm.h" - +#include "bootinfo.h" #include "../data/logo.h" -#include "vmm.h" + +#include + +#include +#include +#include + +#include +#include +#include +#include +#include extern u64 _kernel_end; extern u8* bitmap; @@ -54,15 +52,8 @@ void kmain(Bootinfo* info) { pmm_init(info->mem); - kprintf("MemoryMap located at ^g%x^0 (^r%X^0); \ - \nMemory map size is ^g%x^0\ - \nKernel ends at ^g%x^0\ - \nBITMAP located at ^g%x^0 (^r%x^0)", (u64)info->mem.map, (u64)info->mem.map,(u64)info->mem.map_size, &_kernel_end, bitmap, bitmap_size_g); - - vmm_init(info); - kprintf("\nIM ALIVE :D"); __asm__ volatile ("sti"); while (1) { __asm__("hlt"); } diff --git a/kernel/src/modules/memory.c b/kernel/src/mm/memory.c similarity index 84% rename from kernel/src/modules/memory.c rename to kernel/src/mm/memory.c index 64e83b4..fa836b6 100644 --- a/kernel/src/modules/memory.c +++ b/kernel/src/mm/memory.c @@ -1,8 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#include "memory.h" -#include "types.h" +#include +#include void *memset(void *ptr, int value, usize num) { u8 *p = (u8 *)ptr; diff --git a/kernel/src/modules/pmm.c b/kernel/src/mm/pmm.c similarity index 95% rename from kernel/src/modules/pmm.c rename to kernel/src/mm/pmm.c index 582bfa7..4830517 100644 --- a/kernel/src/modules/pmm.c +++ b/kernel/src/mm/pmm.c @@ -1,12 +1,14 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#include "pmm.h" +#include + +#include +#include +#include +#include + #include "bootinfo.h" -#include "panic.h" -#include "types.h" -#include "memory.h" // IWYU pragma: keep // clangd is stupid af -#include "math.h" extern u64 _kernel_start; extern u64 _kernel_end; diff --git a/kernel/src/modules/vmm.c b/kernel/src/mm/vmm.c similarity index 93% rename from kernel/src/modules/vmm.c rename to kernel/src/mm/vmm.c index d27fe6f..cc7996e 100644 --- a/kernel/src/modules/vmm.c +++ b/kernel/src/mm/vmm.c @@ -1,14 +1,14 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash +#include +#include +#include -#include "../common/bootinfo.h" +#include +#include -#include "vmm.h" -#include "gdt.h" -#include "idt.h" -#include "pmm.h" -#include "memory.h" // IWYU pragma: keep // shut the fuck up I DONT NEED CLANGD PLEASE -#include "types.h" +#include +#include "bootinfo.h" u64* pml4_kernel = nullptr; diff --git a/kernel/src/modules/keyboard.c b/kernel/src/modules/keyboard.c deleted file mode 100644 index 824d1f6..0000000 --- a/kernel/src/modules/keyboard.c +++ /dev/null @@ -1,10 +0,0 @@ -#include "keyboard.h" -#include "console.h" -#include "io.h" -#include "types.h" - -void kb_handler(Registers *regs) { - u8 scancode = inb(0x60); - outb(MASTER_COMMAND, 0x20); - kprintf("Key: %x\n", scancode); -} \ No newline at end of file diff --git a/kernel/src/modules/kfetch.c b/kernel/src/shell/kfetch.c similarity index 97% rename from kernel/src/modules/kfetch.c rename to kernel/src/shell/kfetch.c index b8ccd93..6be001e 100644 --- a/kernel/src/modules/kfetch.c +++ b/kernel/src/shell/kfetch.c @@ -4,7 +4,7 @@ // yes. *fetch in kernel // WHY FUCKING NOT?? its my OS, my rules -#include "console.h" +#include const char* ascii_logo[] = { " /\\___/\\ ",