Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								a845f8696c 
								
							 
						 
						
							
							
								
								BAN: Add function to decode utf-8 encoded strings  
							
							 
							
							... 
							
							
							
							works for 3 byte unicode characters 
							
						 
						
							2023-02-22 21:45:26 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								d9c05b7378 
								
							 
						 
						
							
							
								
								Kernel: rewrite the whole kmalloc (again)  
							
							 
							
							... 
							
							
							
							Performance of the old kmalloc implementation was terrible.
We now use fixed-width linked list allocations for sizes <= 60 bytes.
This is much faster than variable size allocation.
We don't use bitmap scanning anymore since it was probably the slow
part. Instead we use headers that tell allocations size and aligment.
I removed the kmalloc_eternal, even though it was very fast, there is
not really any need for it, since the only place it was used in was IDT.
These changes allowed my psf (font) parsing to go from ~500 ms to ~20 ms.
(coming soon :D) 
							
						 
						
							2023-02-22 16:32:50 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								4afc4660a4 
								
							 
						 
						
							
							
								
								BAN: Basic containers have shrink_to_fit() method  
							
							 
							
							... 
							
							
							
							I also chaged the default memory allocation increase from 1.5 to 2 
							
						 
						
							2023-02-22 02:07:05 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								5d31e89574 
								
							 
						 
						
							
							
								
								Kernel: Update ErrorOr API and add path find to VFS  
							
							 
							
							... 
							
							
							
							These two are done on the same commit since Changes to Shell were
annoying to make work with only one change 
							
						 
						
							2023-02-22 01:23:11 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9aab67fed8 
								
							 
						 
						
							
							
								
								BAN: make all Math functions inline constexpr  
							
							 
							
							
							
						 
						
							2023-02-22 01:17:56 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								10b6d51522 
								
							 
						 
						
							
							
								
								BAN: implement Variant<> for two types  
							
							 
							
							
							
						 
						
							2023-02-22 01:17:21 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								afd4b7a184 
								
							 
						 
						
							
							
								
								BAN: HashMap now copies size when copying :D  
							
							 
							
							
							
						 
						
							2023-02-22 01:16:07 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								038379274e 
								
							 
						 
						
							
							
								
								Kernel: Inode can now return full mode value  
							
							 
							
							... 
							
							
							
							Kernel::Inode::Mode is an union of bitmasked fields for every
possible bit 
							
						 
						
							2023-02-20 21:39:24 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								fbc17eb6dd 
								
							 
						 
						
							
							
								
								BAN: Implement basic HashMap  
							
							 
							
							
							
						 
						
							2023-02-20 16:00:51 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								efaca469ee 
								
							 
						 
						
							
							
								
								Kernel: Ext2Inode now supports indirect blocks through for_each_block()  
							
							 
							
							
							
						 
						
							2023-02-20 10:25:15 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								80006ea137 
								
							 
						 
						
							
							
								
								Kernel: Initial work on filesystem  
							
							 
							
							... 
							
							
							
							We support now ext2 directory listing. File reading is not yet supported. 
							
						 
						
							2023-02-20 01:46:00 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								247f03c79e 
								
							 
						 
						
							
							
								
								BAN: Make ErrorOr<> have attribute [[nodiscard]]  
							
							 
							
							... 
							
							
							
							We don't have to specify it everytime we make function return ErrorOr 
							
						 
						
							2023-02-19 20:10:30 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								feaeee11e5 
								
							 
						 
						
							
							
								
								Kernel: fix ARCH() macro and add helper macros for push/pop  
							
							 
							
							
							
						 
						
							2023-02-19 18:52:25 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								0506fee34a 
								
							 
						 
						
							
							
								
								Kernel: Shell's thread now uses sleep instead of polling  
							
							 
							
							... 
							
							
							
							Also added 'sleep' command that just sleeps for 5 seconds 
							
						 
						
							2023-02-19 18:52:25 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								1bd8b0fe5c 
								
							 
						 
						
							
							
								
								Kernel: Sleep now actually sleeps and allows idling  
							
							 
							
							
							
						 
						
							2023-02-19 18:52:25 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								66a4b69a29 
								
							 
						 
						
							
							
								
								BAN: Math now uses template concepts and add div_round_up  
							
							 
							
							
							
						 
						
							2023-02-19 00:48:56 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								eacf551d0f 
								
							 
						 
						
							
							
								
								Build: Make install-usb.sh print human readable size  
							
							 
							
							
							
						 
						
							2023-02-19 00:48:25 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								8f1b6da2af 
								
							 
						 
						
							
							
								
								Kernel: Use Vector instead of raw poiters in Disk stuff  
							
							 
							
							... 
							
							
							
							We now don't have to manually free allocated data 
							
						 
						
							2023-02-16 20:48:41 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								7f12a7050a 
								
							 
						 
						
							
							
								
								BAN: Add data() to Vector.  
							
							 
							
							... 
							
							
							
							This allows you to access the underlying data in a vector 
							
						 
						
							2023-02-16 20:47:49 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								460fc3a29f 
								
							 
						 
						
							
							
								
								Kernel: Start working on filesystem  
							
							 
							
							... 
							
							
							
							We have a basic PATA driver (for reading) and gpt parser. 
							
						 
						
							2023-02-16 20:00:31 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								94cbacc998 
								
							 
						 
						
							
							
								
								Kernel: PIT now has very barebones sleep  
							
							 
							
							
							
						 
						
							2023-02-16 17:53:25 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								1b45b4d728 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary BOCKS_BREAK()  
							
							 
							
							
							
						 
						
							2023-02-16 17:52:39 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f188fea81c 
								
							 
						 
						
							
							
								
								BAN: Implement basic HashSet  
							
							 
							
							
							
						 
						
							2023-02-10 02:59:52 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								7630df84ad 
								
							 
						 
						
							
							
								
								BAN: Add basic hashing functionality  
							
							 
							
							
							
						 
						
							2023-02-10 02:59:30 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								4f8fcf0bd7 
								
							 
						 
						
							
							
								
								BAN: Add Formatter specialization for Vector  
							
							 
							
							
							
						 
						
							2023-02-10 02:58:14 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f68ae01d0c 
								
							 
						 
						
							
							
								
								BAN: Fix ErrorOr<void> to actually set error byte  
							
							 
							
							
							
						 
						
							2023-02-10 01:06:18 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								7ee4ecd7f4 
								
							 
						 
						
							
							
								
								BAN: Vector's and Queue's underlying type is T* instead of uint8_t*  
							
							 
							
							... 
							
							
							
							I have no idea what kind of brainfart I had to make use uint8_t*
that just complicated the code :D 
							
						 
						
							2023-02-10 00:12:23 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								e5ffc1686f 
								
							 
						 
						
							
							
								
								BAN: Vector::const_iterator now uses const T* as underlying type  
							
							 
							
							
							
						 
						
							2023-02-09 23:06:49 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								bfc9a2377c 
								
							 
						 
						
							
							
								
								BAN: LinkedList now uses iterators instead of const_iterators on methods  
							
							 
							
							
							
						 
						
							2023-02-09 23:06:16 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6a133782ed 
								
							 
						 
						
							
							
								
								All: Move to c++20  
							
							 
							
							
							
						 
						
							2023-02-09 23:05:26 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								338771c5b0 
								
							 
						 
						
							
							
								
								BAN: Cleanup Vector code  
							
							 
							
							... 
							
							
							
							*Applies to last patch also!*
Remove duplicate code in iterators. We used to have separate iterator
and const_iterator but now they are the same class with some enable_if
magic to disable references from const_iterator
This introduces some 'bad things' you can for example call
const_iterator.operator*<false>() to obtain non const reference. I
don't think this matters since you could use const_cast or something
else to work around const if you really tried 
							
						 
						
							2023-02-07 11:08:05 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								08dfb0e1db 
								
							 
						 
						
							
							
								
								BAN: Cleanup LinkedList code  
							
							 
							
							
							
						 
						
							2023-02-06 19:01:52 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								0eb1fb8bae 
								
							 
						 
						
							
							
								
								Buildsystem: Build disk image manually  
							
							 
							
							... 
							
							
							
							We don't use grub-mkrescue anymore. Instead we build the disk image
manually. This allows us to have known disk layout for easier testing
when I get to implementing disk reading. For now I made the root
partition ext2 since I think that will be the first format that I'll
implement. 
							
						 
						
							2023-02-05 18:08:40 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								fb7fe73d49 
								
							 
						 
						
							
							
								
								Kernel: Add inw and outw to IO  
							
							 
							
							
							
						 
						
							2023-02-04 23:37:34 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6fab26692b 
								
							 
						 
						
							
							
								
								Kernel: remove unnecessary function from x86_64 Thread.S  
							
							 
							
							
							
						 
						
							2023-02-02 23:48:18 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								2161528cb6 
								
							 
						 
						
							
							
								
								Kernel: Shell is now launched as a capturing lambda  
							
							 
							
							
							
						 
						
							2023-02-02 23:27:51 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								cdbad56ed7 
								
							 
						 
						
							
							
								
								Kernel: Update shell thread command to run following command as thread  
							
							 
							
							... 
							
							
							
							'thread echo "Hello World"' runs the command 'echo "Hello World"' after
5 seconds have passed. This was just my test code for threading 
							
						 
						
							2023-02-02 23:26:19 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								5b5e620d8a 
								
							 
						 
						
							
							
								
								Kernel: Improve multithreading support  
							
							 
							
							... 
							
							
							
							We can now use arbitary BAN::function<void(...)> as the Thread.
I also implemented multithreading for i386 since it was not done
on the initial multithreading commit. 
							
						 
						
							2023-02-02 23:24:12 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								777ede328e 
								
							 
						 
						
							
							
								
								Kernel: Add helper functions for reading current rsp and rbp  
							
							 
							
							
							
						 
						
							2023-02-02 23:19:44 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								2403df50bb 
								
							 
						 
						
							
							
								
								BAN: Add getter for Function size  
							
							 
							
							
							
						 
						
							2023-02-02 23:19:18 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c85b97abee 
								
							 
						 
						
							
							
								
								Kernel: fix some of i368 IDT. This was really broken  
							
							 
							
							
							
						 
						
							2023-02-02 15:52:06 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								117d1de038 
								
							 
						 
						
							
							
								
								Kernel: panic does not need to include <kernel/kprint.h>  
							
							 
							
							... 
							
							
							
							This allows us to not have kprint available literally everywhere 
							
						 
						
							2023-02-02 15:51:15 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6cbad718fb 
								
							 
						 
						
							
							
								
								Kernel: Add some more cxxabi functionality  
							
							 
							
							... 
							
							
							
							We can now declate static variables in functions 
							
						 
						
							2023-02-02 15:50:26 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f6b05212e0 
								
							 
						 
						
							
							
								
								Kernel: Add is_locked() to spinlock  
							
							 
							
							... 
							
							
							
							I think this is atomic read 
							
						 
						
							2023-02-02 15:49:30 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								01f267a321 
								
							 
						 
						
							
							
								
								Kernel: fix spinlock for i386  
							
							 
							
							
							
						 
						
							2023-02-02 15:49:00 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								0d2d6e5348 
								
							 
						 
						
							
							
								
								BAN: Fix all emplace functions to actually do perfect forwarding  
							
							 
							
							
							
						 
						
							2023-02-01 21:41:51 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								99cf1c0330 
								
							 
						 
						
							
							
								
								BAN: Add destructor to function if it needs to deallocate something someday  
							
							 
							
							
							
						 
						
							2023-02-01 21:41:18 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9b8de5025a 
								
							 
						 
						
							
							
								
								All: rename every function from UpperCamelCase to snake_case  
							
							 
							
							... 
							
							
							
							This was a mess since I didn't know which to use but now I decided
to go with snake_case :) 
							
						 
						
							2023-02-01 21:05:44 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								4faa662a59 
								
							 
						 
						
							
							
								
								BAN: Rewrite Traits and add some more of them  
							
							 
							
							
							
						 
						
							2023-02-01 20:05:34 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6a9d60a8fb 
								
							 
						 
						
							
							
								
								Kernel: Implement somewhat functioning multithread support  
							
							 
							
							... 
							
							
							
							This still uses only a single cpu, but we can now have 'parallelization'
This seems to work fine in qemu and bochs, but my own computer did not
like this when I last tried.
I have absolutely no idea how multithreading should actually be
implmemented and I just thought and implemented the most simple one I
could think of. This might not be in any way correct :D 
							
						 
						
							2023-02-01 01:53:35 +02:00