Commit Graph

212 Commits

Author SHA1 Message Date
Drew Galbraith 0274339cc9 [victoriafalls] Read some of the ext2 superblock as a POC 2023-07-05 17:17:39 -07:00
Drew Galbraith 29d9923f5a [yellowstone] Add a way to retrieve to denali client from yellowstone 2023-07-05 16:03:20 -07:00
Drew Galbraith c057da88ad [yellowstone] Add registration to yellowstone stub. 2023-07-05 15:01:29 -07:00
Drew Galbraith 72483a3437 Add a yellowstone stub and partially migrate denali 2023-07-05 14:51:24 -07:00
Drew Galbraith 318356e54c [yellowstone] Log a line when MBR is incorrect 2023-07-05 14:33:00 -07:00
Drew Galbraith a8db218204 [denali] Relocate AHCI structures to memory we control 2023-07-05 14:32:19 -07:00
Drew Galbraith 1412c5b73e [denali] Factory construct the AHCI Driver 2023-06-26 17:35:51 -07:00
Drew Galbraith 16dd675828 [denali] Get Ahci device address from yellowstone. 2023-06-26 17:01:59 -07:00
Drew Galbraith 08abe776a4 [yellowstone] Rename yellowstonestub to yellowstone_stub. 2023-06-26 11:59:29 -07:00
Drew Galbraith 3c62ad8719 [denali] Rename libdenali to denali_stub 2023-06-26 11:58:29 -07:00
Drew Galbraith 380953937f [mammoth] Rename cmake target to remove _lib 2023-06-26 11:56:09 -07:00
Drew Galbraith 90f33f31c5 [mammoth] Move EndpointClient to move-only semantics. 2023-06-26 11:54:36 -07:00
Drew Galbraith 2e89aee5a3 [mammoth] Update EndpointServer to have move-only semantics. 2023-06-26 11:38:17 -07:00
Drew Galbraith b7a962cc26 [mammoth] Finish separating PortServer and PortClient. 2023-06-26 08:59:28 -07:00
Drew Galbraith 5fb9fa6ae6 [mammoth] Move port server operations to their own class. 2023-06-26 08:41:44 -07:00
Drew Galbraith 7989c9d616 Remove libcxx stub library and move operator new to mammoth. 2023-06-26 08:29:14 -07:00
Drew Galbraith a46694d0f7 [yellowstone] Add yellowstone server for endpoint registration. 2023-06-22 02:19:16 -07:00
Drew Galbraith f0e8ce14a4 [victoria] Create and start VictoriaFalls process 2023-06-22 00:22:59 -07:00
Drew Galbraith c064af5fa7 Endpoint syscalls implemented 2023-06-21 23:14:42 -07:00
Drew Galbraith 69501bfe01 [all] Add stub for new Endpoint kernel object 2023-06-21 21:43:27 -07:00
Drew Galbraith 1f7a15eed4 [mammoth] Return ErrorOr when creating a process 2023-06-21 20:58:08 -07:00
Drew Galbraith 3a3ab8717b [denali] Use glcr::ErrorOr as a POC. 2023-06-21 18:38:11 -07:00
Drew Galbraith 0b86a94f14 Migrate to error constants in glacier 2023-06-21 18:28:54 -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
Drew Galbraith 36a83b142b [yellowstone] Use denali client to parse GPT 2023-06-19 22:58:00 -07:00
Drew Galbraith 45cf2115da [denali] Add a stub client for denali 2023-06-19 22:57:08 -07:00
Drew Galbraith a202bf2371 Have yellowstone dump the MBR/GPT tables 2023-06-19 21:54:40 -07:00
Drew Galbraith 0aa38ac4a4 [denali] Make denali less noisy on interrupt 2023-06-19 21:51:53 -07:00
Drew Galbraith 685070d65e Get rid of the type field on zmessage 2023-06-17 02:01:21 -07:00
Drew Galbraith 5e99dbf7d1 Refactor all Zion decls into one header 2023-06-17 01:45:53 -07:00
Drew Galbraith 7dcbbd671e [denali] Get all caps from the init port.
This allows us to remove the bootstrap capabilities for good woo hoo!
2023-06-17 01:30:47 -07:00
Drew Galbraith 09ac87e6f5 [yellowstone] Recieve all caps via init port. 2023-06-17 00:17:43 -07:00
Drew Galbraith 528723e490 [mammoth] Create a method for getting initial caps. 2023-06-16 23:51:49 -07:00
Drew Galbraith 4c936623b5 Specify our target in .ccls 2023-06-16 23:15:41 -07:00
Drew Galbraith 21b73b5b92 [zion] [yellowstone] Pass the denali VMMO by port as a POC.
Preparing to bootsrap via port write rather than hard coding capability
ids.
2023-06-16 15:58:50 -07:00
Drew Galbraith e5da93757a Working AHCI DMA IPC from yellowstone to denali.
We have a weird bug in context switching where a process's rsp0 ends up
pointing at the wrong value sometimes which crashes the OS.
2023-06-16 01:31:23 -07:00
Drew Galbraith ffa2d97a64 First iteration of denali server 2023-06-15 16:20:29 -07:00
Drew Galbraith b8b6576b7f Cleanup AHCI Ident a bit and reduce logging 2023-06-12 23:32:24 -07:00
Drew Galbraith 6986f534f8 Add a method for blocking threads on ports.
Additionally add the first lock class since we are becoming more
concurrent.
2023-06-12 20:56:25 -07:00
Drew Galbraith 0f0e39d1e9 Further parse AHCI information.
Send an IDENTIFY command to each drive and set up a hook to handle
interrupts.
2023-06-12 19:20:51 -07:00
Drew Galbraith 30bb10207e Add the Denali disk driver.
Begin enumerating information from the PCI structure and HBA AHCI
structures.

Currently the PCI structure address is hardcoded but it should be
passed via a capability from the init process in the future.
2023-06-08 02:36:59 -07:00
Drew Galbraith 50201fe6df Updated PCIe walk to be recursive and dump the offset of the sata drive 2023-06-08 00:24:50 -07:00
Drew Galbraith 56789400d7 Allow mapping the PCI Config so Yellowstone can map it.
This is a temp system call. Evemtually we should probably supply the
root process with all of the system physical memory objects.
2023-06-07 22:45:42 -07:00
Drew Galbraith 7c9d1075eb Move sys/test to Yellowstone init process. 2023-06-07 11:18:35 -07:00
Drew Galbraith 6f81520918 Refactor compile flags 2023-06-07 11:09:27 -07:00
Drew Galbraith 010e261dc7 Add a libcxx with a new operator 2023-06-07 10:48:59 -07:00
Drew Galbraith dcc05f2741 Add a libc skeleton with a primitive malloc. 2023-06-07 10:33:10 -07:00
Drew Galbraith 40b21d9c75 [Mammoth] Add Channel object for simple IPC messages 2023-06-07 09:37:16 -07:00
Drew Galbraith 65439c163a Compile sys libraries without exceptions. 2023-06-07 09:36:14 -07:00
Drew Galbraith 81b925eea0 Add a basic IPC setup with Channel Object.
Pass a process a channel endpoint on startup that it will use to
get it's initial capabilities.
2023-06-07 08:24:10 -07:00
Drew Galbraith 6c10c57bfa Mass rename memory object variables.
Use shorthand:
AddressSpace -> vmas
MemoryObject -> vmmo

The VM prefix makes these a little more distinguishable in code.
2023-06-07 00:30:26 -07:00
Drew Galbraith e246f28d9c Get the second process elf from a MemoryObject instead of hardcoding.
Allows us to delete the CopyIntoNonResidentProcess function and simply
rely on the MemoryObject copy functions.
2023-06-07 00:19:15 -07:00
Drew Galbraith 23895b5c6c Spawn Processes using memory primitives rather than and elf loader.
This allows us to remove the temporary syscall for that style of process
spawn.
2023-06-07 00:04:53 -07:00
Drew Galbraith 41d25a7b46 Reformat includes 2023-06-06 17:12:08 -07:00
Drew Galbraith 174d4b10fb Move threading calls into a basic user space library. 2023-06-06 16:56:19 -07:00
Drew Galbraith ef8eb5d993 Add a threading syscall API. 2023-06-06 16:24:03 -07:00
Drew Galbraith a092a57483 Begin defining the process/thread api 2023-06-06 15:01:31 -07:00
Drew Galbraith 69b5cd001f Add a skeleton framework for capabilities.
Use the first capability to spawn a child process.
2023-05-30 23:55:42 -07:00
Drew Galbraith 3c3341a90f Add a process spawn syscall and use it to start a proc.
Also add a skeleton VirtualMemory manager to be used per process.
2023-05-30 20:55:03 -07:00
Drew Galbraith 5bcf1f4e4a Add a second process to be loaded by the bootloader. 2023-05-30 20:54:37 -07:00
Drew Galbraith aefb4f082b Add a kernel ELF module and load it in a new process.
Don't yet jump to userspace.
2023-05-29 00:32:54 -07:00