Drew Galbraith
424b032146
[zion] Remove old debug messages
2023-06-17 01:09:48 -07:00
Drew Galbraith
b27672d5de
[zion] Update LinkedList iterator semantics.
2023-06-16 15:24:38 -07:00
Drew Galbraith
be12fa9a19
Add mutex fixme
2023-06-16 14:25:23 -07:00
Drew Galbraith
ffa2d97a64
First iteration of denali server
2023-06-15 16:20:29 -07:00
Drew Galbraith
6986f534f8
Add a method for blocking threads on ports.
...
Additionally add the first lock class since we are becoming more
concurrent.
2023-06-12 20:56:25 -07:00
Drew Galbraith
81b925eea0
Add a basic IPC setup with Channel Object.
...
Pass a process a channel endpoint on startup that it will use to
get it's initial capabilities.
2023-06-07 08:24:10 -07:00
Drew Galbraith
55340e2917
Make Capability RefCounted
2023-06-07 06:21:36 -07:00
Drew Galbraith
23895b5c6c
Spawn Processes using memory primitives rather than and elf loader.
...
This allows us to remove the temporary syscall for that style of process
spawn.
2023-06-07 00:04:53 -07:00
Drew Galbraith
4e278a4664
Make a KernelObject base class for all Capabilities.
2023-06-06 20:13:07 -07:00
Drew Galbraith
2e1357255c
Create a RefCounted type and use it for Thread.
...
This should prevent me from actually creating 2 shared ptrs of
a single kernel object with their separate ref counts.
2023-06-06 19:05:03 -07:00
Drew Galbraith
c6921b5459
Add validity check in shared ptr
2023-05-30 01:05:50 -07:00
Drew Galbraith
3fee5ac9d7
Rework scheduler to store the current thread separately.
...
This works better with the sleep thread and lets us check state
transitions more easily.
2023-05-29 22:54:22 -07:00
Drew Galbraith
80d2bf1aaa
Move Processes and Threads to be stored in SharedPtr
...
Reference counting lets us pass these around a bit more easily.
SharedPtr was lightly tested using uint64_t in the main zion funcion.
Also add a sleep functionality instead of panicking. Functionally the
same right now since we don't preempt.
2023-05-29 15:50:38 -07:00
Drew Galbraith
9f3ffbf5b4
Move Process to storing Threads in a linked list.
...
This should really be a vector or hashmap of some sort but this is fine
for now.
2023-05-29 15:08:02 -07:00
Drew Galbraith
5cab9f843e
Move process list to a linked list.
...
Add basic iteration ability to the linked list.
2023-05-29 14:59:23 -07:00
Drew Galbraith
71196dc90f
Move scheduler threads to a linked list implementation.
...
Removes the internal next ptr from the Thread class.
We avoid doing a memory operation when scheduling on yield because we
simply cycle the item to the back of the list.
2023-05-29 14:32:49 -07:00