Drew Galbraith
5eb72da9c8
Move glcr::Array & glcr::ArrayView loops to range-based.
2024-01-11 17:39:55 -08:00
Drew Galbraith
b2354ae341
Move many loops over glcr::Vector to range-based loops.
2024-01-11 17:13:35 -08:00
Drew Galbraith
8adde27d9b
[Zion] Add a thread sleep call.
...
For now this can only sleep in increments of the scheduler quantum
(currently 50ms). It also uses a somewhat ineffecient way of tracking
the sleeping threads - it will scale linearly with the number of
sleeping threads.
2023-12-07 00:20:03 -08:00
Drew Galbraith
815a603c1c
[Zion] Mark pages as not present before calling invlpg.
2023-12-05 16:11:37 -08:00
Drew Galbraith
1f8085f791
[Zion] Call invlpg when unmapping memory.
2023-12-05 15:53:42 -08:00
Drew Galbraith
d9a4be6555
[Zion] Add a ProcessWait syscall.
2023-12-01 11:36:27 -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
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