Commit Graph

250 Commits

Author SHA1 Message Date
Drew Galbraith 4ee4f9cb87 [Zion] Fix thread start checks and add logging. 2023-11-25 13:06:50 -08:00
Drew Galbraith f9ce4a4a8e [Zion] Don't ignore DriverManager Register return code. 2023-11-25 13:06:14 -08:00
Drew Galbraith 838ef01a2a [Zion] Add a keyboard interrupt handler and a driver manager. 2023-11-25 11:14:30 -08:00
Drew Galbraith 46ae5de30a [Zion] Free paging structures after process exit. 2023-11-24 17:19:32 -08:00
Drew Galbraith 39ac0216dd [Zion] Free all user space mappings when exitting a process. 2023-11-24 17:08:37 -08:00
Drew Galbraith e50d3f8abc [Zion] Remove all capabilities on process cleanup. 2023-11-24 17:05:11 -08:00
Drew Galbraith 430dc36728 [Zion] Add TODO to separate user stacks for safety. 2023-11-24 16:57:00 -08:00
Drew Galbraith 85b701ce31 [Zion] Clarify kernel stack reuse in a comment. 2023-11-24 16:55:45 -08:00
Drew Galbraith 2dd69f5844 [Zion] Map user stacks in as regular MemoryObjects.
This allows us to easily track the physical memory so it
can be freed when the thread exits. It also simplifies the page fault
handler as it just needs to check regular mappings to find a user stack.
2023-11-24 16:51:35 -08:00
Drew Galbraith ba1b4df702 [Zion] Add more context to GPT faults in the interrupt handler. 2023-11-24 16:49:05 -08:00
Drew Galbraith 7695396980 [Zion] Add released User Stacks to pool for reuse. 2023-11-24 16:16:25 -08:00
Drew Galbraith d1ace374b6 [Zion] Return freed kernel stacks to pool. 2023-11-24 16:04:40 -08:00
Drew Galbraith 8fb5b7c03c [Zion] Move existing proc/thread cleanup calls to the cleanup thread. 2023-11-24 15:40:44 -08:00
Drew Galbraith 8bedc80caf [Zion] Add a max depth to stack unwinds. 2023-11-24 15:04:19 -08:00
Drew Galbraith cb590c96b8 [Zion] Add a proc/thread cleanup thread for future use. 2023-11-24 15:04:03 -08:00
Drew Galbraith d44be91099 [Zion] Add an argument to memory align a mapping. 2023-11-23 18:52:28 -08:00
Drew Galbraith c8931a01c8 [Zion] Fix physical page usage tracking. 2023-11-23 07:20:11 -08:00
Drew Galbraith 84e1b4cdb4 [Zion] Plumb user stack to free function on thread exit. 2023-11-23 07:12:23 -08:00
Drew Galbraith 941d7c8d59 [Zion] Add a way to unwind the stack and recover from user-space faults. 2023-11-22 18:25:08 -08:00
Drew Galbraith 9f0e87b51d [Glacier] Add proper string formatting for ErrorCodes. 2023-11-22 12:17:10 -08:00
Drew Galbraith a93aa3a426 [Zion] Add an invalid opcode handler. 2023-11-22 12:10:18 -08:00
Drew Galbraith 76fd3fc176 Update TODOs to reflect completed tasks. 2023-11-22 11:00:21 -08:00
Drew Galbraith da3901e104 [Zion] Add a semaphore primitive with related syscalls. 2023-11-22 10:19:56 -08:00
Drew Galbraith 96063126cb [Zion] Add task switching for SSE registers and enable them in userspace. 2023-11-21 15:52:17 -08:00
Drew Galbraith 2a984a93ec [Zion] Add a shim Floating Point Exception handler. 2023-11-21 15:17:32 -08:00
Drew Galbraith 0b8e2d8268 [Zion] Modify the alignement of the initial user stack pointer. 2023-11-21 14:53:59 -08:00
Drew Galbraith a1e1e1c2d8 [Zion] Enable SSE instructions at the start of boot.
These aren't ready to be used yet as we need to save them on task
switch.
2023-11-20 16:40:07 -08:00
Drew Galbraith 9b43d615a9 [Zion] Split free physical memory into two lists.
Allow partitioning create requests so for large continuous requests
we don't have to iterate past a bunch of single free pages.
2023-11-20 10:02:27 -08:00
Drew Galbraith 12ca4e4e89 [Zion] Separate Memory "Views" to a separate MemoryObject. 2023-11-19 23:22:56 -08:00
Drew Galbraith a8ad225cf1 [Zion] Make the base MemoryObject pure abstract. 2023-11-19 23:17:12 -08:00
Drew Galbraith 4d1846a7d5 [Zion] Actually free memory pages when a MemoryObject goes out of scope 2023-11-19 21:37:30 -08:00
Drew Galbraith 8e827a5dfb [Mammoth] Move all callers of FromCapability to OwnedMemoryObject. 2023-11-19 20:33:15 -08:00
Drew Galbraith 337126cabb [Glacier] Update String to be non-copyable by default. 2023-11-19 19:14:37 -08:00
Drew Galbraith 2e4a12661d [Zion] Add a syscall to get a memory object's length. 2023-11-19 19:02:55 -08:00
Drew Galbraith 30b6511467 [Zion] Add a AddressSpaceUnmap syscall to free memory. 2023-11-19 18:55:44 -08:00
Drew Galbraith e668428d9d [Zion] Move Memory Mappings to a dedicated tree impl. 2023-11-19 18:45:13 -08:00
Drew Galbraith 7d48dd2b8b [Zion] Add the ability to delete a capability. 2023-11-19 17:53:56 -08:00
Drew Galbraith 2e08eb76ff [zion] Move process.CheckState() to prevent infinite loop on thread exit. 2023-11-19 17:31:01 -08:00
Drew Galbraith 70bdb822a7 [Zion] Add implementation of KernelVmm::FreeKernelStack. 2023-11-19 17:29:09 -08:00
Drew Galbraith 308dd6a203 [Zion] Add a framework for better process exit. 2023-11-16 23:03:27 -08:00
Drew Galbraith aa2d80b557 [Zion] Move ProcessManager to map as well. 2023-11-16 22:17:11 -08:00
Drew Galbraith 6e227e1cf6 [Zion/Glacier] Add a HashMap to store process capabilities. 2023-11-16 22:12:00 -08:00
Drew Galbraith e1dc790155 [Zion] Clear interrupts on panic to actually hault the machine. 2023-11-16 22:10:54 -08:00
Drew Galbraith e4deca716c [Zion] Use range based for loop on LinkedList as POC. 2023-11-15 18:50:58 -08:00
Drew Galbraith 46d02e5eae [Zion] Remove sleeping messages. 2023-11-15 16:27:09 -08:00
Drew Galbraith c080c61398 [Denali] Reduce noise on AHCI interrupt. 2023-11-15 16:21:19 -08:00
Drew Galbraith e642f3900f [Zion] Print less about acpi on boot. 2023-11-15 16:09:36 -08:00
Drew Galbraith 9e76c81e97 [Zion] Move Kernel Stack Memory constants to separate file. 2023-11-15 15:55:24 -08:00
Drew Galbraith 07e6e3028d [Zion] Access the KernelStackManager through the VMM. 2023-11-15 15:38:25 -08:00
Drew Galbraith c5b9d20c7e [Zion] Remove early_dbgln since dbgln no longer allocs. 2023-11-15 15:19:02 -08:00