13 Commits

Author SHA1 Message Date
d858700da4 core: Add a struct named "platform.Registers" to cover different architectures
This replaces the architecture-independent usage of InterruptStackFrame, which is an x86_64 implementation thing.
2025-02-21 19:40:46 +01:00
52cb29dbca core: Add documentation to all scheduler functions + global thread list 2025-02-21 19:37:13 +01:00
785335bd9a core: Make thread.enterTask() automatically set the thread state to Running 2025-02-21 18:40:29 +01:00
14047e0c3c core: Change naming for virtual memory structures to reflect x86_64 terms 2025-02-21 18:33:36 +01:00
34255d6c68 core: Give init a pointer to its own page tables 2025-02-20 17:57:50 +01:00
b87150a35f core: Add sleep support to the scheduler 2025-02-18 20:06:40 +01:00
9c92b3de4b core: Add priority-based scheduling 2025-02-17 20:15:30 +01:00
6be2261519 core: Store the physical page directory alongside the virtual pointer to it 2025-02-16 13:20:02 +01:00
4554bce8a8 core: Add thread states 2025-02-16 11:57:04 +01:00
f87426753b core: Add global FrameAllocator with locking 2025-02-16 11:56:14 +01:00
a76e94c517 core: Add a simple ELF loader
We only need the ELF loader for init, and possibly a few other modules. The bulk of loading executables is going to be done by userspace, so we only need the basics here.
2025-02-15 22:46:28 +01:00
8d70a0f0a1 core: Enable interrupts in platformEndInit()
This way, each architecture can re-enable interrupts whenever necessary
2025-02-15 15:18:24 +01:00
13ec4bee87 Ready. Set. Go!
Microkernel development in Zig, should be fun! =]
2025-02-13 22:39:48 +01:00