Commit Graph

212 Commits

Author SHA1 Message Date
Drew Galbraith 0b9f83b321 [Teton] Wait on spawned processes to exit. 2023-12-02 13:26:42 -08:00
Drew Galbraith 642fc4d80d [Zion/Mammoth] Move init cap decls to mammoth.
They no longer need to be independent now that we have removed the libc.
2023-12-01 10:42:26 -08:00
Drew Galbraith c209925a3c [Yunq] Return status from client calls. 2023-12-01 10:35:42 -08:00
Drew Galbraith 700f3f94cb [Yunq] Return status in server code. 2023-12-01 10:26:03 -08:00
Drew Galbraith 3eba0bd9d8 [Yunq] Check identify byte and ensure users check status code. 2023-12-01 09:42:11 -08:00
Drew Galbraith 7d9f9a7ae9 [Yunq] Create libyunq and move parsing code to it. 2023-12-01 09:30:52 -08:00
Drew Galbraith 6212aef336 [Yellowstone] Move yellowstone yunq to namespace "yellowstone" 2023-11-30 08:50:43 -08:00
Drew Galbraith 9fdd670a23 [Voyageurs] Create unowned cap to pass to yellowstone. 2023-11-27 08:34:51 -08:00
Drew Galbraith 17b22c913b [Denali] Create unowned cap to pass to yellowstone. 2023-11-27 08:34:37 -08:00
Drew Galbraith 1614f2ae53 [VictoriaFalls] Create unowned cap to pass to yellowstone. 2023-11-27 08:31:55 -08:00
Drew Galbraith ad7794c694 [Yunq] Delete client capability in destructor.
Add a method to the server class to create an unowned capability. This
makes it simpler to create a capability for passing to other processes.

Duplicate the init yellowstone cap when using it temporarily.
2023-11-27 08:29:01 -08:00
Drew Galbraith 96a2f74e14 [Yunq] Release server cap on destructor. 2023-11-27 08:12:51 -08:00
Drew Galbraith 43d7bfa7ad [Voyageurs] Use yunq native empty response for service. 2023-11-27 08:08:03 -08:00
Drew Galbraith b95c736825 [Yellowstone] Use yunq native empty requests and responses for service. 2023-11-27 08:06:04 -08:00
Drew Galbraith 7c75b832b2 [Teton] Add a barebones way to spawn a process. 2023-11-26 21:14:15 -08:00
Drew Galbraith 26ab661dbf [Teton] Change cwd command to pwd. 2023-11-26 19:12:54 -08:00
Drew Galbraith 29148c8756 [Teton] Add a cd command. 2023-11-26 19:12:09 -08:00
Drew Galbraith ea8598068d [Teton] Add a ls command. 2023-11-26 14:48:33 -08:00
Drew Galbraith d0a3bf3936 [VictoriaFalls] Add a get directory ipc call for victoria falls. 2023-11-26 14:48:01 -08:00
Drew Galbraith 7d7cb8024c [Teton] Add a help command. 2023-11-26 13:53:22 -08:00
Drew Galbraith 57947fb5dd [Teton] Add a command to print the working directory. 2023-11-26 13:51:35 -08:00
Drew Galbraith faa54bc3dc [Teton] Buffer current command for executing. 2023-11-26 13:39:39 -08:00
Drew Galbraith 134185117d [Teton] Handle Tab and Backspace. 2023-11-26 13:21:04 -08:00
Drew Galbraith 7f2b01438d [Teton] Just print a simple promp on the screen. 2023-11-26 11:29:15 -08:00
Drew Galbraith 2bc64b045c [Mammoth] Add a keyboard library that translates scancode to keycodes. 2023-11-26 11:21:56 -08:00
Drew Galbraith aecae8e41f [Teton] Fix offset in console to write correct character. 2023-11-25 19:56:08 -08:00
Drew Galbraith 1b7d2b9085 [Teton/Voyageurs] Subscribe to scancodes in teton and print them to screen.
Right now there appears to be an error with the font so that the
proper character is received but we write an incorect character to the
screen (off by one?).
2023-11-25 19:48:06 -08:00
Drew Galbraith ea17c143cc [Voyageurs] Register with yellowstone. 2023-11-25 19:37:04 -08:00
Drew Galbraith 8365d47cbe [Voyageurs] Add a basic ps/2 keyboard driver. 2023-11-25 13:08:30 -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 0915cf45dc Remove the basically-empty C library for now. 2023-11-24 08:48:16 -08:00
Drew Galbraith cbeb736e8c [Mammoth] Write a custom buddy allocator to replace libc malloc. 2023-11-23 18:55:02 -08:00
Drew Galbraith d44be91099 [Zion] Add an argument to memory align a mapping. 2023-11-23 18:52:28 -08:00
Drew Galbraith 8ceab2ad23 [Yellowstone] Use the file api to load the init file. 2023-11-22 16:58:13 -08:00
Drew Galbraith 86ce0a68a3 [Mammoth/Teton] Add an OpenFile interface and use it to load a font. 2023-11-22 16:42:42 -08:00
Drew Galbraith 4fd17a59ea [Victoriafalls] Update ext2 driver to read doubly-indirect blocks. 2023-11-22 16:41:12 -08:00
Drew Galbraith 8d730c67c1 [Mammoth] Move most classes to the mmth namespace. 2023-11-22 14:59:41 -08:00
Drew Galbraith 5f8d577948 [Mammoth] Move remaining classes to a shared folder. 2023-11-22 14:39:27 -08:00
Drew Galbraith c42fb858ba [Mammoth] Move thread and process to the proc/ folder 2023-11-22 14:10:10 -08:00
Drew Galbraith 99a75a4a76 [Mammoth] Move request/response context to ipc/ folder. 2023-11-22 13:56:40 -08:00
Drew Galbraith f1cbfd18b7 [Mammoth] Move Mutex and Semaphore to a separate folder. 2023-11-22 13:45:04 -08:00
Drew Galbraith ad5b55bf37 [Mammoth] Move ipc calls to separate folder mammoth. 2023-11-22 13:41:14 -08:00
Drew Galbraith 19e394ae7b [Yellowstone] Use semaphores for handling yellowstone registration. 2023-11-22 13:30:59 -08:00
Drew Galbraith 41bf78cf98 [Denali] Update the read many request to take a sector count as well.
This greatly reduces the size of the message (we had surpassed the 1
page - 4KiB message limit with the previous method).
2023-11-22 12:17:58 -08:00
Drew Galbraith 76fd3fc176 Update TODOs to reflect completed tasks. 2023-11-22 11:00:21 -08:00
Drew Galbraith 2b8ae027df [Denali] Use semaphores for DMA callback signaling. 2023-11-22 10:56:07 -08:00
Drew Galbraith 2df1f6c006 [Teton] Print out every character into the framebuffer as a test. 2023-11-22 08:56:26 -08:00
Drew Galbraith afdb024c36 [Teton] Factor drawing glyphs to screen into a separate class. 2023-11-21 19:32:31 -08:00
Drew Galbraith fe44804dd9 [Teton] Load a font file and write a character to the screen. 2023-11-21 19:14:02 -08:00
Drew Galbraith 126482f3e8 [Yellowstone] Release init caps after loading.
This was incredibly helpful for finding cases where we were using
uninitialized memory as it causes a lot more pages to be reused early.
2023-11-19 22:54:26 -08:00
Drew Galbraith 322502fcee [Denali] Zero out uninitialized devices. 2023-11-19 22:54:01 -08:00
Drew Galbraith a0a673ee16 [Yellowstone] Free Teton file cap after spawning process. 2023-11-19 21:38:04 -08:00
Drew Galbraith 344e84c313 [Mammoth] Get rid of last uses of MappedMemoryRegion. 2023-11-19 20:48:23 -08:00
Drew Galbraith d41a565721 [Mammoth] Add an OwnedMemoryRegion for ContiguousPhysical. 2023-11-19 20:42:38 -08:00
Drew Galbraith deb2e708cd [Mammoth] Add a helper method for duplicating memory capabilities. 2023-11-19 20:35:55 -08:00
Drew Galbraith 8e827a5dfb [Mammoth] Move all callers of FromCapability to OwnedMemoryObject. 2023-11-19 20:33:15 -08:00
Drew Galbraith 337126cabb [Glacier] Update String to be non-copyable by default. 2023-11-19 19:14:37 -08:00
Drew Galbraith 3e9923f227 [Mammoth] Add an owned memory capability that cleans itself up. 2023-11-19 17:54:28 -08:00
Drew Galbraith fb458e6fd4 [Teton] Draw a green square into the framebuffer. 2023-11-15 19:20:52 -08:00
Drew Galbraith 84d3caaba5 [Teton] Get framebuffer info from yellowstone. 2023-11-15 16:42:00 -08:00
Drew Galbraith 1ccbf5e12e [Yellowstone] Disable most log messages in yellowstone. 2023-11-15 16:26:15 -08:00
Drew Galbraith c080c61398 [Denali] Reduce noise on AHCI interrupt. 2023-11-15 16:21:19 -08:00
Drew Galbraith 7c105c8a31 [Sys] Successfully spin up a new process from disk. 2023-11-15 09:47:32 -08:00
Drew Galbraith 0e99189dba [Yellowstone] Try to spawn the teton process from disk. 2023-11-09 12:55:44 -08:00
Drew Galbraith 9e05b3b3dd [Yellowstone] Add a method to get the framebuffer info from yellowstone. 2023-11-09 11:33:32 -08:00
Drew Galbraith fa6a5949b2 [Zion] Pass the framebuffer info to yellowstone init process. 2023-11-09 11:20:41 -08:00
Drew Galbraith 17ed4ca1f6 Fix remainder of formats in userland. 2023-11-05 09:25:11 -08:00
Drew Galbraith 26b61db021 Move userspace to a templated StrFormat. 2023-11-03 02:48:21 -07:00
Drew Galbraith f31652b981 Add a way to restrict permissions on cap duplication. 2023-11-02 22:12:55 -07:00
Drew Galbraith e66706d381 [Glacier] Convert ErrorCode into an Enum. 2023-11-02 21:55:12 -07:00
Drew Galbraith bcd9cf09bc [VictoriaFalls] Add the file size to VFS.OpenFile 2023-11-02 21:02:56 -07:00
Drew Galbraith d7050ff19f [VictoriaFalls] Implement Read File. 2023-11-02 20:57:28 -07:00
Drew Galbraith abf09d8fce [VictoriaFalls] Split the path when opening a file. 2023-11-02 20:24:33 -07:00
Drew Galbraith b6c220a350 [Yellowstone] Attempt to read a test file from the system root. 2023-11-02 19:28:27 -07:00
Drew Galbraith 38fb6ca170 [VictoriaFalls] Register VFS endpoint with yellowstone. 2023-11-02 18:55:05 -07:00
Drew Galbraith 48c7721b0f [VictoriaFalls] Add a VFS yunq stub and register it. 2023-10-25 23:08:45 -07:00
Drew Galbraith c8dcc07d7d Update CMakeLists to autogen yunq files. 2023-10-25 21:53:55 -07:00
Drew Galbraith 0dbafbfa66 [Yunq] Reset cap buffers between server uses. 2023-10-25 20:46:36 -07:00
Drew Galbraith b85af8d0f8 [Yunq] Fix bug in logging reply errors. 2023-10-25 20:40:39 -07:00
Drew Galbraith 3e4fdfee84 [Denali] Move denali server to yunq. 2023-10-25 20:28:28 -07:00
Drew Galbraith acfaf26391 [Denali] Use mutexes to synchronize the AHCI responses.
This is a temporary solution to allow denali to migrate to the
yunq framework until we have a good async solution.
2023-10-25 19:39:09 -07:00
Drew Galbraith adfffdd3c3 [Yellowstone] Use mutex to wait for denali to spawn VFS.
Kind of a hacky way to pass a signal between threads but works as
a POC for thread synchronization.
2023-10-25 19:08:00 -07:00
Drew Galbraith 4c2237fa72 [Yellowstone] Move yellowstone yunq def to yellowstone/lib/ 2023-10-24 23:49:42 -07:00
Drew Galbraith af0852a5fa [yellowstone] Update TODO. 2023-10-24 23:43:57 -07:00
Drew Galbraith 05e12aaa7d [Yellowstone] Move registration service to the main yellowstone service 2023-10-24 23:42:49 -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 5b781bb394 Update READMEs and TODOs 2023-10-24 22:56:45 -07:00
Drew Galbraith 2b27af5814 [Yellowstone] Move to yunq definition for yellowstone server. 2023-10-24 18:24:26 -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 c70b5b0753 [mammoth] Run EndpointServer in its own thread. 2023-08-01 16:08:34 -07:00
Drew Galbraith caccb08e16 Generalize the EndpointServer to require less boilerplate.
Classes can now inherit from the EndpointServer and just implement the
HandleRequest function.
2023-08-01 15:52:08 -07:00
Drew Galbraith 083ed52ddd [Victoria Falls] Print only the root directory information.
Move the InodeTable creating to the Init function which (somewhat)
requires us to stop taking the Ext2BlockReader as a reference (the reference
from the Init function goes out of scope). Make the Ext2BlockReader Init
function return a shared ptr by default.
2023-08-01 10:39:26 -07:00
Drew Galbraith bed685af65 [Victoria Falls] Clean up directory probe debug printing 2023-07-31 23:54:41 -07:00
Drew Galbraith 3dce058562 [Victoria Falls] Fix DirEntry member size 2023-07-31 23:42:52 -07:00
Drew Galbraith 2ff4334bea [victoriafalls] Begin traversing the root inode. 2023-07-06 10:40:55 -07:00
Drew Galbraith 150bfd2fd4 [victoriafalls] Move a superblock-based calculations to the block reader 2023-07-06 09:58:26 -07:00
Drew Galbraith 52b4b273b7 [victoriafalls] Add InodeTable class to cache Inode info 2023-07-06 09:39:17 -07:00
Drew Galbraith 21c1a001ea [victoriafalls] Move the block to lba translation to a small wrapper.
Abstract this away into a thin wrapper over the denali client such that
it can be called from other helper classes.
2023-07-05 23:19:25 -07:00
Drew Galbraith a49d13f1d1 [victoriafalls] Add an Ext2Driver class which probes the superblock. 2023-07-05 22:56:08 -07:00