Drew Galbraith
f01b447af4
[Mammoth] Add keycodes for all non-fn keys.
2023-11-26 12:12:27 -08:00
Drew Galbraith
a83893d110
[Mammoth] Add keycodes for most symbol scancodes and shift.
2023-11-26 11:48:30 -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
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
8365d47cbe
[Voyageurs] Add a basic ps/2 keyboard driver.
2023-11-25 13:08:30 -08:00
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