Commit Graph

579 Commits

Author SHA1 Message Date
Drew Galbraith 090441ad04 [Yellowstone] Spawn VFS and handle GetEndpoint. 2024-08-17 22:05:52 -07:00
Drew Galbraith e90018b42e [Yellowstone] Allow registering denali. 2024-08-17 21:54:30 -07:00
Drew Galbraith c9b484089e [Yellowstone] Wireframe for moving yellowstone to rust. 2024-08-17 20:19:45 -07:00
Drew Galbraith 0aa4a1f5f1 [Zion] Allow loading from an offset program segment. 2024-08-17 20:18:54 -07:00
Drew Galbraith f551cc88cd [Yunq] Allow creating a client cap. 2024-08-17 20:18:25 -07:00
Drew Galbraith 52f530f8c1 Add yunq support for nested messages. 2024-08-17 20:18:03 -07:00
Drew Galbraith 7825d1861a [Zion] Check right permission for reply port send. 2024-08-17 17:49:06 -07:00
Drew Galbraith 7e68c1b641 Add a rust user-space Capability struct.
This is a thin wrapper around a capability ptr that releases the
capability when it is done and prevents copying/cloning it.

To get a copy a caller must explicitly use duplicate.
2024-08-17 17:15:33 -07:00
Drew Galbraith 19a8ab41d4 [Zion] Make sure result of ValidateCapability is used. 2024-08-17 17:14:30 -07:00
Drew Galbraith c6dbc395aa [Teton] Remove old C++ implementation. 2024-08-17 12:56:30 -07:00
Drew Galbraith 006f9f8ac5 [Teton] Exec process in rust. 2024-08-17 12:55:13 -07:00
Drew Galbraith 8206e671cd [Zion] Add extra message for when unmap fails. 2024-08-17 12:54:09 -07:00
Drew Galbraith 71431189c9 [Zion] Ensure memory alignment of large allocations. 2024-08-17 12:53:25 -07:00
Drew Galbraith f5a27156d2 [Teton] Add ls and cd commands to rust impl. 2024-08-14 08:47:29 -07:00
Drew Galbraith c155247f1d [Teton] Terminal now owns the command str. 2024-08-14 08:03:43 -07:00
Drew Galbraith f04e720811 Typing in terminal is now supported in rust teton. 2024-08-13 19:55:44 -07:00
Drew Galbraith 18e512cf1f [Teton] Move console/shell to rust. WIP 2024-08-12 11:35:54 -07:00
Drew Galbraith 76f8795a46 Implement yunq server in rust. 2024-07-31 19:59:46 -07:00
Drew Galbraith dbc4e7e2ad Remove panic abort from Cargo.toml (it is set by the arch json). 2024-07-30 15:49:14 -07:00
Drew Galbraith 6ae111dc66 Move request/response serialization to YunqMessage trait. 2024-07-30 15:13:34 -07:00
Drew Galbraith e41f58c714 Use method number in rust yunq client. 2024-07-30 14:33:19 -07:00
Drew Galbraith d4f60f4942 Moved process exit to syscall helper.
Final call moved so syscall is private now.

Also cleans up the macro a fair bit.
2024-07-28 21:01:03 -07:00
Drew Galbraith c2f9f5388b Move yunq client to use syscall helpers. 2024-07-28 20:54:52 -07:00
Drew Galbraith 5705f8d2ab Move more syscall usages to helper functions. 2024-07-28 20:10:32 -07:00
Drew Galbraith ca67da16e6 [Mammoth] Move thread syscalls to wrappers. 2024-07-28 19:48:05 -07:00
Drew Galbraith 612a5ac572 Remove unused zcap 2024-07-28 19:30:31 -07:00
Drew Galbraith 4d94bc0ea8 Make unsafe more limited in memory initialization. 2024-07-28 19:29:23 -07:00
Drew Galbraith d35e8d253f Reorganize mammoth lib in rust. 2024-07-28 19:26:23 -07:00
Drew Galbraith d5a5041c4b Add multithreading to rust code. 2024-07-28 19:02:03 -07:00
Drew Galbraith 19144f7be9 Fix rust compiler warnings. 2024-07-28 18:14:18 -07:00
Drew Galbraith 1e073d5060 Split yunq compliation to library and use it in build process. 2024-07-28 18:08:34 -07:00
Drew Galbraith 370ba9ae40 Hacky auto build for rust yunq. 2024-07-28 14:32:50 -07:00
Drew Galbraith 2cbf871d09 Add codegen for new rust yunq parser. 2024-07-27 20:23:03 -07:00
Drew Galbraith 8f35d38e93 Add macros to derive message serializations. 2024-07-27 18:30:17 -07:00
Drew Galbraith ccd13fecf1 Use in macro. 2024-07-27 08:36:56 -07:00
Drew Galbraith 3eea4d811a Example yunq implementation for one Yellowstone endpoint. 2024-07-26 23:36:07 -07:00
Drew Galbraith 51d40f6db6 Return result type from syscall and format info on panic. 2024-07-26 16:31:57 -07:00
Drew Galbraith e310eee468 Add method for formatting strings. 2024-07-26 15:57:10 -07:00
Drew Galbraith 32ccbedb7a Basic allocations in rust user-space. 2024-07-26 15:20:21 -07:00
Drew Galbraith 40a50e8d00 Add entrypoint to rust mammoth. 2024-07-26 14:44:05 -07:00
Drew Galbraith d6833be0ad [Yunq] Codegen example for yunq implementation. 2024-06-11 15:11:56 -07:00
Drew Galbraith 12fb84cfad [Yunq] Add typechecking to rust implementation. 2024-06-11 13:32:28 -07:00
Drew Galbraith 1cda053758 Create a first pass at a rust parser for the yunq language. 2024-06-11 13:01:58 -07:00
Drew Galbraith 5b1debde54 Automatically rebuild a rust file when running qemu. 2024-06-08 16:01:20 -07:00
Drew Galbraith b0048b0a4f Barebones rust example working in user space.
Requires manually copying the executable over to the image.
2024-06-08 15:47:58 -07:00
Drew Galbraith 844f55c7d0 [Mammoth/Voyageurs] Add shift modifiers for scancodes. 2024-02-24 15:25:00 -08:00
Drew Galbraith a9351b222d [Mammoth] Change scancodes to USB codes. 2024-02-24 15:12:44 -08:00
Drew Galbraith 8fb55f56b6 [Yellowstone] Start teton after voyageurs is available. 2024-02-24 15:12:21 -08:00
Drew Galbraith 02d4f8c80e [Voyageurs] Send USB keypress data to the keyboard driver. 2024-02-24 14:59:33 -08:00
Drew Galbraith 3c1e435e04 [Voyageurs] Move NormalTrb generation into helper func. 2024-02-24 14:31:14 -08:00