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
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
8fb5b7c03c
[Zion] Move existing proc/thread cleanup calls to the cleanup thread.
2023-11-24 15:40:44 -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
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
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
0b8e2d8268
[Zion] Modify the alignement of the initial user stack pointer.
2023-11-21 14:53:59 -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
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
2e08eb76ff
[zion] Move process.CheckState() to prevent infinite loop on thread exit.
2023-11-19 17:31:01 -08:00
Drew Galbraith
308dd6a203
[Zion] Add a framework for better process exit.
2023-11-16 23:03:27 -08:00
Drew Galbraith
07e6e3028d
[Zion] Access the KernelStackManager through the VMM.
2023-11-15 15:38:25 -08:00
Drew Galbraith
69aced2220
[Zion] Move to StrFormat for debug line.
2023-11-05 09:24:09 -08:00
Drew Galbraith
85564b018d
[Zion] Add todo comment for storing memory mappings in the address space.
2023-11-05 05:59:45 -08:00
Drew Galbraith
a16dcc2aa9
[Zion] Use a binary tree to store address space mappings.
2023-11-03 19:47:39 -07: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
277b0d3ccc
[Zion] Use the glacier ArrayView class for sending IPC msgs.
2023-11-02 23:31:08 -07:00
Drew Galbraith
1643f7b4cc
[Zion] Update FIXME in threading.
2023-11-02 22:36:48 -07:00
Drew Galbraith
7dd10a3e53
[Zion] Remove dead ZMessage struct.
2023-11-02 21:57:29 -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
4e9ad6a516
[zion] Begin requiring capability transmit permission.
...
As a first pass require the permission when passing a capability to a
new process.
2023-08-01 18:37:20 -07:00
Drew Galbraith
f0a27d30be
[zion] Enfore Duplication permissions on capabilities.
2023-08-01 18:30:24 -07:00
Drew Galbraith
1364fbed9f
[zion] Move to default permissions being supplied by KernelObjects
2023-08-01 18:22:41 -07:00
Drew Galbraith
48c6e5b3a4
[zion] Add a method for duplicating and scoping down VMMOs.
...
Use the AHCI section of the PCI config as an example POC of this.
We can now pass a memory capability instead of just the physical
address.
2023-08-01 17:46:26 -07:00
Drew Galbraith
02e6b49d90
[glacier] Add a vector class
2023-06-26 15:46:03 -07:00
Drew Galbraith
64d355b20d
[glacier] Move LinkedList to glacier.
2023-06-26 15:01:55 -07:00
Drew Galbraith
36d82370c1
[zion] Add a thread wait syscall
2023-06-22 02:17:50 -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
3ab9b4d818
[zion] Move Channel and Port blocked threads to IntrusiveList.
2023-06-21 16:34:30 -07:00
Drew Galbraith
a99096b0ff
[zion] Move the scheduler to the IntrusiveList for runnable threads
2023-06-21 16:28:42 -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
d60b2bdc61
[zion] Move channel to use the message queue.
2023-06-20 15:36:17 -07:00