Commit Graph

40 Commits

Author SHA1 Message Date
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 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 d9df1212b7 [Zion] Pass data to message queue as IpcMessage obj. 2023-11-03 00:37:53 -07:00
Drew Galbraith d7af2e3f4f [Zion] Return the IpcMessage up to the syscall level. 2023-11-03 00:12:28 -07:00
Drew Galbraith d2c77e1d18 [Zion] Move away from storing pointers to IpcMessages. 2023-11-02 23:51:52 -07:00
Drew Galbraith 59f147193a [Zion] Store IPC capabilities in a vector rather than list. 2023-11-02 23:44:15 -07:00
Drew Galbraith 4c09a9d019 [Zion] Move to a general IpcMessage object for Ipc. 2023-11-02 23:40:23 -07:00
Drew Galbraith 277b0d3ccc [Zion] Use the glacier ArrayView class for sending IPC msgs. 2023-11-02 23:31:08 -07:00
Drew Galbraith e66706d381 [Glacier] Convert ErrorCode into an Enum. 2023-11-02 21:55:12 -07:00
Drew Galbraith 4c04f9d561 [Zion] Add a mutex object with appropriate syscalls. 2023-10-25 14:47:45 -07:00
Drew Galbraith b516087922 [Zion] Add the ability to pass capabilities via endpoint call. 2023-10-24 23:32:05 -07:00
Drew Galbraith f0add6e0c3 [zion] Enforce cap transmit permissions in more places. 2023-08-01 18:43:48 -07:00
Drew Galbraith 64d355b20d [glacier] Move LinkedList to glacier. 2023-06-26 15:01:55 -07:00
Drew Galbraith dc63084d61 [zion] Move synchronization to the message queue 2023-06-21 23:57:23 -07:00
Drew Galbraith 9dd457391c [zion] Move IPC objects to share code 2023-06-21 23:47:45 -07:00
Drew Galbraith c064af5fa7 Endpoint syscalls implemented 2023-06-21 23:14:42 -07:00
Drew Galbraith 0ec2fa3e76 [glacier] Move Pair to glacier. 2023-06-21 20:47:40 -07:00
Drew Galbraith 0b86a94f14 Migrate to error constants in glacier 2023-06-21 18:28:54 -07:00
Drew Galbraith e1af79b975 [zion/glacier] Move RefPtr to glacier. 2023-06-21 15:07:40 -07:00
Drew Galbraith 8bcb574677 [zion/glacier] Move RefCounted to glacier. 2023-06-21 14:52:40 -07:00
Drew Galbraith 56eae3d4e5 [zion/glacier] Move SharedPtr to glacier 2023-06-21 14:48:29 -07:00
Drew Galbraith fe1641ac38 [zion] Create a message queue to be shared between the port and channel 2023-06-20 15:29:32 -07:00
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