Drew Galbraith
7151a509ee
[Mammoth] clean up check crash (we log the error code in the kernel.
2023-11-25 13:07:59 -08:00
Drew Galbraith
d9a936db09
[Glacier] Fix div0 bug when calling .Contains on empty hashmap.
2023-11-25 11:13:09 -08:00
Drew Galbraith
8e4cd1562f
[Mammoth] Merge freed slices in buddy allocator.
2023-11-24 14:10:55 -08:00
Drew Galbraith
2a3d384336
[Glacier] Don't move const-refs in hashmap.
2023-11-24 14:10:16 -08:00
Drew Galbraith
7715a5898b
[Mammoth] Naively free buddy allocated blocks.
...
We don't yet attempt to merge them with nearby blocks.
Currently this reduces the number of 2 page blocks we allocate down from
40 to 29.
2023-11-24 09:01:25 -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
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
9f0e87b51d
[Glacier] Add proper string formatting for ErrorCodes.
2023-11-22 12:17:10 -08:00
Drew Galbraith
2efa13ab43
[Glacier] Add a status object to hold error and a message.
2023-11-22 11:34:02 -08:00
Drew Galbraith
28d9e37b87
[Glacier] Move hashmap to a real hash implementation.
2023-11-22 11:19:21 -08:00
Drew Galbraith
4c2492e985
[Mammoth] Add a user-space semaphore object.
2023-11-22 10:55:40 -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
96063126cb
[Zion] Add task switching for SSE registers and enable them in userspace.
2023-11-21 15:52:17 -08:00
Drew Galbraith
0f2d6d7cc8
[Mammoth] Load non aligned ELF program sections properly.
...
Previously we would write into a memory object for an offset address but
when it would be mapped into the address space it would be page aligned.
2023-11-19 22:52:32 -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
ced89834de
[Mammoth] Unmap an OwnedMemoryObject when it is deleted.
2023-11-19 19:03:20 -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
3e9923f227
[Mammoth] Add an owned memory capability that cleans itself up.
2023-11-19 17:54:28 -08:00
Drew Galbraith
29fa8045af
[Mammoth] Fix accidental fall through on mammoth init switch.
2023-11-19 17:30:39 -08:00
Drew Galbraith
6e227e1cf6
[Zion/Glacier] Add a HashMap to store process capabilities.
2023-11-16 22:12:00 -08:00
Drew Galbraith
28719ac726
[Glacier] Format LinkedList code.
2023-11-15 18:59:12 -08:00
Drew Galbraith
569945f06d
[Glacier] Cleanup formatting for Array and Vector.
2023-11-15 18:43:35 -08:00
Drew Galbraith
a3defbba53
[Mammoth] Fix formatting in init debug message.
2023-11-15 16:20:56 -08:00
Drew Galbraith
8e95a11907
[Zion] Move the physical memory manager to the LinkedList class.
2023-11-15 14:44:16 -08:00
Drew Galbraith
792e5155ba
[Glacier] When resizing vector use the proper T constructor.
...
Previously when we static_casted from uint8_t[] to T[] we ended
up not properly initializing the objects in the array. This caused
issues where garbage memory provided by new was treated as a legitimate
object.
Potentially in the future it would make sense to back vectors with
a simple byte array and do memcpys to move objects in and out as
needed.
2023-11-15 12:00:53 -08:00
Drew Galbraith
fa6a5949b2
[Zion] Pass the framebuffer info to yellowstone init process.
2023-11-09 11:20:41 -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
601f29c324
[Glacier] Add a specific VariableStringBuilder for StrFormat.
2023-11-09 08:52:30 -08:00
Drew Galbraith
69aced2220
[Zion] Move to StrFormat for debug line.
2023-11-05 09:24:09 -08:00
Drew Galbraith
9ba26195d2
[Glacier] Implement delete for binary tree.
2023-11-03 21:59:57 -07:00
Drew Galbraith
98f029ae23
[Glacier] Add a binary tree implementation.
...
Additionally add an optional class to return found values
in the tree. And a reference container (Ref) similar to
std::reference_wrapper to allow storing references in containers.
2023-11-03 19:46:30 -07:00
Drew Galbraith
26b61db021
Move userspace to a templated StrFormat.
2023-11-03 02:48:21 -07:00
Drew Galbraith
d2c77e1d18
[Zion] Move away from storing pointers to IpcMessages.
2023-11-02 23:51:52 -07:00
Drew Galbraith
6feb13d042
[Glacier] Add a basic Array and ArrayView class.
2023-11-02 23:30:44 -07:00
Drew Galbraith
f8f839d8e7
[Glacier] Call an object's destructor in an ErrorOr
2023-11-02 22:16:06 -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
d7050ff19f
[VictoriaFalls] Implement Read File.
2023-11-02 20:57:28 -07:00
Drew Galbraith
a2e80952c8
[Glacier] Add a StringView class and StrSplit method.
2023-11-02 20:23:28 -07:00
Drew Galbraith
6cb0041253
[Mammoth] Create userspace mutex capability.
2023-10-25 19:07:36 -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
2b27af5814
[Yellowstone] Move to yunq definition for yellowstone server.
2023-10-24 18:24:26 -07:00
Drew Galbraith
9c9fd167cd
[Yunq] Clean up codegen issues for client and server.
2023-10-24 18:19:12 -07:00
Drew Galbraith
71e3521b87
[yunq] Add codegen for clients and servers (untested).
2023-10-24 15:57:35 -07:00
Drew Galbraith
d45f831b46
[Glacier] Add buffer types for holding bytes and capabilities.
2023-10-24 12:38:11 -07:00
Drew Galbraith
ca5361b847
[Glacier] Add the [] operator to string.
2023-10-24 12:34:52 -07:00
Drew Galbraith
fdd2d693bc
[glacier] Add default constructor for a string.
2023-10-13 15:03:35 -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
db5c9ab859
[libc] Consume the %s format character in vsprintf
...
Previously we were outputing a single 's' after the string.
2023-07-31 23:42:52 -07:00
Drew Galbraith
f8f8c854eb
[glacier] Fix glacier to build freestanding
2023-07-19 20:50:19 -07:00
Drew Galbraith
f7fb4f4ddc
[glacier] Add a method to build a bounded string
2023-07-06 10:40:36 -07:00
Drew Galbraith
52b4b273b7
[victoriafalls] Add InodeTable class to cache Inode info
2023-07-06 09:39:17 -07:00
Drew Galbraith
b83385dfa6
[glacier] Don't implicitly convert error_or to bool
2023-07-05 16:02:47 -07:00
Drew Galbraith
c057da88ad
[yellowstone] Add registration to yellowstone stub.
2023-07-05 15:01:29 -07:00
Drew Galbraith
16dd675828
[denali] Get Ahci device address from yellowstone.
2023-06-26 17:01:59 -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
7f2530bc15
[zion] Rename cmake zion_lib to zion_stub.
2023-06-26 11:57:19 -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
16c30d12fb
[glacier] Update ErrorOr to work with Move.
2023-06-26 11:37:56 -07:00
Drew Galbraith
84d3c33938
[glacier] Add UniquePtr and Move
2023-06-26 11:37:31 -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
8dcb1ddabd
[glacier] Slightly build out string lib.
2023-06-22 02:18:44 -07:00
Drew Galbraith
36d82370c1
[zion] Add a thread wait syscall
2023-06-22 02:17:50 -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
0ec2fa3e76
[glacier] Move Pair to glacier.
2023-06-21 20:47:40 -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
25737d9377
[glacier] Add an IntrusiveList container
2023-06-21 16:28:19 -07:00
Drew Galbraith
e1af79b975
[zion/glacier] Move RefPtr to glacier.
2023-06-21 15:07:40 -07:00
Drew Galbraith
8bcb574677
[zion/glacier] Move RefCounted to glacier.
2023-06-21 14:52:40 -07:00
Drew Galbraith
56eae3d4e5
[zion/glacier] Move SharedPtr to glacier
2023-06-21 14:48:29 -07:00
Drew Galbraith
859fbf66da
[glacier] Create lib with scaffolding string class.
2023-06-21 14:42:23 -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
45cf2115da
[denali] Add a stub client for denali
2023-06-19 22:57:08 -07:00