Commit Graph

131 Commits

Author SHA1 Message Date
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