Commit graph

95 commits

Author SHA1 Message Date
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
d9a4be6555 [Zion] Add a ProcessWait syscall. 2023-12-01 11:36:27 -08:00
Drew Galbraith
4ee4f9cb87 [Zion] Fix thread start checks and add logging. 2023-11-25 13:06:50 -08:00
Drew Galbraith
f9ce4a4a8e [Zion] Don't ignore DriverManager Register return code. 2023-11-25 13:06:14 -08:00
Drew Galbraith
838ef01a2a [Zion] Add a keyboard interrupt handler and a driver manager. 2023-11-25 11:14:30 -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
9f0e87b51d [Glacier] Add proper string formatting for ErrorCodes. 2023-11-22 12:17:10 -08:00
Drew Galbraith
da3901e104 [Zion] Add a semaphore primitive with related syscalls. 2023-11-22 10:19:56 -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
2e4a12661d [Zion] Add a syscall to get a memory object's length. 2023-11-19 19:02:55 -08:00
Drew Galbraith
30b6511467 [Zion] Add a AddressSpaceUnmap syscall to free memory. 2023-11-19 18:55:44 -08:00
Drew Galbraith
7d48dd2b8b [Zion] Add the ability to delete a capability. 2023-11-19 17:53:56 -08:00
Drew Galbraith
308dd6a203 [Zion] Add a framework for better process exit. 2023-11-16 23:03:27 -08:00
Drew Galbraith
8d10f19312 [Glacier][Zion] Add a fix sized string builder to allow non-alloc debug. 2023-11-09 09:07:32 -08:00
Drew Galbraith
69aced2220 [Zion] Move to StrFormat for debug line. 2023-11-05 09:24:09 -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
277b0d3ccc [Zion] Use the glacier ArrayView class for sending IPC msgs. 2023-11-02 23:31:08 -07:00
Drew Galbraith
c63a54d6b1 [Zion] Validate that started threads are in user space. 2023-11-02 22:23:32 -07:00
Drew Galbraith
f31652b981 Add a way to restrict permissions on cap duplication. 2023-11-02 22:12:55 -07:00
Drew Galbraith
7dd10a3e53 [Zion] Remove dead ZMessage struct. 2023-11-02 21:57:29 -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
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
8f84f8c3ca [zion] Remove temp PCI Memory Object create function.
Pass the PCI memory space to the yellowstone init process instead.
2023-08-01 17:13:19 -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
9dd457391c [zion] Move IPC objects to share code 2023-06-21 23:47:45 -07:00
Drew Galbraith
58df2c0ed2 [zion] Move ipc syscalls to one file to prep refactor 2023-06-21 23:20:56 -07:00
Drew Galbraith
c064af5fa7 Endpoint syscalls implemented 2023-06-21 23:14:42 -07:00
Drew Galbraith
c2dfe17363 [zion] Use ErrorOr in PciConfiguration 2023-06-21 18:46:06 -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
172bf51db7 [zion] Move capability validation to capability.h 2023-06-20 15:50:49 -07:00
Drew Galbraith
93cf8f2740 [zion] Cleanup syscall entrance. 2023-06-20 15:40:21 -07:00
Drew Galbraith
d60b2bdc61 [zion] Move channel to use the message queue. 2023-06-20 15:36:17 -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
1edd5023ce [zion] Move the final syscalls to the new format. 2023-06-20 15:03:33 -07:00
Drew Galbraith
bd431b94ce [zion] Move port calls to new syscall process. 2023-06-20 14:55:54 -07:00
Drew Galbraith
77bb3acfb4 [zion] Move channel syscalls to new format. 2023-06-20 14:41:44 -07:00