Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-05-14 | Kernel: Signal stacks are lazily allocated so don't crash in getter. | Andreas Kling | |
2019-05-14 | Kernel: Allocate kernel signal stacks using the region allocator as well. | Andreas Kling | |
2019-05-14 | Kernel: Allocate kernel stacks for threads using the region allocator. | Andreas Kling | |
This patch moves away from using kmalloc memory for thread kernel stacks. This reduces pressure on kmalloc (16 KB per thread adds up fast) and prevents kernel stack overflow from scribbling all over random unrelated kernel memory. | |||
2019-05-03 | Kernel: Prepare Socket for becoming a File. | Andreas Kling | |
Make the Socket functions take a FileDescriptor& rather than a socket role throughout the code. Also change threads to block on a FileDescriptor, rather than either an fd index or a Socket. | |||
2019-04-29 | Kernel: Make FIFO inherit from File. | Andreas Kling | |
2019-04-20 | Kernel: Remove "restorer" field from SignalActionData. | Andreas Kling | |
I was originally implementing signals by looking at some man page about sigaction() to see how it works. It seems like the restorer thingy is system-specific and not required by POSIX, so let's get rid of it. | |||
2019-04-20 | Kernel: Remove some more unnecessary Thread members. | Andreas Kling | |
2019-04-20 | Kernel: Shrink Thread by making kernel resume TSS heap-allocated. | Andreas Kling | |
2019-04-17 | Kernel: Scheduler donations need to verify that the beneficiary is valid. | Andreas Kling | |
Add a Thread::is_thread(void*) helper that we can use to check that the incoming donation beneficiary is a valid thread. The O(n) here is a bit sad and we should eventually rethink the process/thread table data structures. | |||
2019-04-14 | Kernel: Merge TSS.h into i386.h. | Andreas Kling | |
2019-04-14 | Kernel: Remove system.h and make the uptime global a qword. | Andreas Kling | |
2019-04-06 | Kernel: Get rid of Kernel/types.h, separate LinearAddress/PhysicalAddress. | Andreas Kling | |
2019-03-27 | Kernel: Save/restore the SSE context on context switch. | Andreas Kling | |
2019-03-24 | Kernel: Make block() and yield() automatically call Scheduler::yield(). | Andreas Kling | |
This exposed some places we were accidentally doing a double yield(). | |||
2019-03-23 | Kernel: Add a Thread::all_threads() helper. | Andreas Kling | |
2019-03-23 | Kernel+LibC: Add a simple create_thread() syscall. | Andreas Kling | |
It takes two parameters, a function pointer for the entry function, and a void* argument to be passed to that function on the new thread. | |||
2019-03-23 | Kernel: Introduce threads, and refactor everything in support of it. | Andreas Kling | |
The scheduler now operates on threads, rather than on processes. Each process has a main thread, and can have any number of additional threads. The process exits when the main thread exits. This patch doesn't actually spawn any additional threads, it merely does all the plumbing needed to make it possible. :^) |