17 Commits

Author SHA1 Message Date
960699c984 core: Fix alignment in lookupThreadById() 2025-02-22 15:38:23 +01:00
9f91ade838 core: Separate thread.arch from other imports 2025-02-21 19:44:54 +01:00
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
8156ff57fe core: Check the stack is in user memory before changing it to kernel space
Otherwise, we're just adding the physical base to an address that's already in the higher half.
2025-02-21 18:47:24 +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
a8b206cac3 core: Add some annotations to managed thread variables
Some thread variables don't need to be set manually,
since they are updated whenever needed by some functions.
Add comments to make that clear.
2025-02-20 17:59:27 +01:00
08c1e0bca2 core: Make some functions in thread.zig private 2025-02-18 20:10:14 +01:00
b87150a35f core: Add sleep support to the scheduler 2025-02-18 20:06:40 +01:00
8f6c952331 core: Set new threads' priority to 127
This is halfway through the priority range, so user processes can either lower or raise their priority from the default.
2025-02-18 19:30:46 +01:00
13445bac1f core: Fix a small error in thread.zig 2025-02-17 23:04:43 +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
ea952efe8a core: Fix a few bugs in threading code
g_threads is processor-specific now, so it's unused, and setPageDirectory() needs the physical address.
2025-02-15 22:58:34 +01:00
ed324fcf9e core: Add basic threading code 2025-02-15 22:45:32 +01:00