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