Commit Graph

7 Commits

Author SHA1 Message Date
csd4ni3l 85e0d45d3c Add correct framebuffer mapping, so Doom works again, remove unneded
code, add cooperative scheduling on syscalls determined by the
reschedule flag, make serial console automatically clear and be a single
render, make process_scancodes push to all processes, add a user-facing
framebuffer to be mapped, automatically swap buffers inside timer
interrupt, update all submodules
2026-05-11 19:09:20 +02:00
csd4ni3l f4c2657b94 Make keyboard lock-free (and fix Doom deadlock) by only pushing
scancodes to a spsc queue from the interrupts and only process them
inside syscalls. Also make CURRENT_PID atomic to use less locking
2026-04-19 18:22:16 +02:00
csd4ni3l c81bed2a4e Add correct sleep which works now because interrupts are re-enabled
using sti in syscalls, remove a bunch of old imports and code, move
keyboard scancode handling to keyboard.rs, add a new KeyboardEvent based
layout where press/release and unicode is handled, add a kbd_read
syscall which writes kbd events to a userspace buffer, add a usercopy
file which provides safe copying functions to userspace
2026-04-10 12:48:00 +02:00
csd4ni3l aa5a2a6da6 Make keyboards use events, move all userspace-like code (from mouse as
well) to a stub file instead of being inside the kernel.
2026-03-30 16:24:42 +02:00
csd4ni3l 269d900d97 Add interrupts and IDT and react to double, page, general prot faults
and breakpoints, add keyboard support through the keyboar interrupt, add
paging memory management and a Frame Allocator, add a generic arch
module that initializes arch-specific things, fix framebuffer and
serialconsole being accessed from multiple places, move serial to driver
since its not actually a serial console.
2026-03-24 13:48:31 +01:00
csd4ni3l e28b898d79 Formatted the code, made the arch code x86_64 only for now, fixed the
serial writer always centering and assuming, added a margin for correct
displaying. Added the IDT and GDT tables, and the TSS so double faults
cant happen. Handled all of these interrupts using functions. Serial
console is now topleft and panic messages are formatted correctly from
there. core PI constant is now used instead of our own.
2026-03-23 18:29:33 +01:00
csd4ni3l 8308a7ae32 Make a new layout for the OS, rebrand to XunilOS 2026-03-14 11:33:01 +01:00