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  
				
					
						
							
							
								 
						
							
								9aab67fed8 
								
							 
						 
						
							
							
								
								BAN: make all Math functions inline constexpr  
							
							
							
						 
						
							2023-02-22 01:17:56 +02:00  
				
					
						
							
							
								 
						
							
								10b6d51522 
								
							 
						 
						
							
							
								
								BAN: implement Variant<> for two types  
							
							
							
						 
						
							2023-02-22 01:17:21 +02:00  
				
					
						
							
							
								 
						
							
								afd4b7a184 
								
							 
						 
						
							
							
								
								BAN: HashMap now copies size when copying :D  
							
							
							
						 
						
							2023-02-22 01:16:07 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								fbc17eb6dd 
								
							 
						 
						
							
							
								
								BAN: Implement basic HashMap  
							
							
							
						 
						
							2023-02-20 16:00:51 +02:00  
				
					
						
							
							
								 
						
							
								efaca469ee 
								
							 
						 
						
							
							
								
								Kernel: Ext2Inode now supports indirect blocks through for_each_block()  
							
							
							
						 
						
							2023-02-20 10:25:15 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								feaeee11e5 
								
							 
						 
						
							
							
								
								Kernel: fix ARCH() macro and add helper macros for push/pop  
							
							
							
						 
						
							2023-02-19 18:52:25 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								1bd8b0fe5c 
								
							 
						 
						
							
							
								
								Kernel: Sleep now actually sleeps and allows idling  
							
							
							
						 
						
							2023-02-19 18:52:25 +02:00  
				
					
						
							
							
								 
						
							
								66a4b69a29 
								
							 
						 
						
							
							
								
								BAN: Math now uses template concepts and add div_round_up  
							
							
							
						 
						
							2023-02-19 00:48:56 +02:00  
				
					
						
							
							
								 
						
							
								eacf551d0f 
								
							 
						 
						
							
							
								
								Build: Make install-usb.sh print human readable size  
							
							
							
						 
						
							2023-02-19 00:48:25 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								94cbacc998 
								
							 
						 
						
							
							
								
								Kernel: PIT now has very barebones sleep  
							
							
							
						 
						
							2023-02-16 17:53:25 +02:00  
				
					
						
							
							
								 
						
							
								1b45b4d728 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary BOCKS_BREAK()  
							
							
							
						 
						
							2023-02-16 17:52:39 +02:00  
				
					
						
							
							
								 
						
							
								f188fea81c 
								
							 
						 
						
							
							
								
								BAN: Implement basic HashSet  
							
							
							
						 
						
							2023-02-10 02:59:52 +02:00  
				
					
						
							
							
								 
						
							
								7630df84ad 
								
							 
						 
						
							
							
								
								BAN: Add basic hashing functionality  
							
							
							
						 
						
							2023-02-10 02:59:30 +02:00  
				
					
						
							
							
								 
						
							
								4f8fcf0bd7 
								
							 
						 
						
							
							
								
								BAN: Add Formatter specialization for Vector  
							
							
							
						 
						
							2023-02-10 02:58:14 +02:00  
				
					
						
							
							
								 
						
							
								f68ae01d0c 
								
							 
						 
						
							
							
								
								BAN: Fix ErrorOr<void> to actually set error byte  
							
							
							
						 
						
							2023-02-10 01:06:18 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								e5ffc1686f 
								
							 
						 
						
							
							
								
								BAN: Vector::const_iterator now uses const T* as underlying type  
							
							
							
						 
						
							2023-02-09 23:06:49 +02:00  
				
					
						
							
							
								 
						
							
								bfc9a2377c 
								
							 
						 
						
							
							
								
								BAN: LinkedList now uses iterators instead of const_iterators on methods  
							
							
							
						 
						
							2023-02-09 23:06:16 +02:00  
				
					
						
							
							
								 
						
							
								6a133782ed 
								
							 
						 
						
							
							
								
								All: Move to c++20  
							
							
							
						 
						
							2023-02-09 23:05:26 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								08dfb0e1db 
								
							 
						 
						
							
							
								
								BAN: Cleanup LinkedList code  
							
							
							
						 
						
							2023-02-06 19:01:52 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								fb7fe73d49 
								
							 
						 
						
							
							
								
								Kernel: Add inw and outw to IO  
							
							
							
						 
						
							2023-02-04 23:37:34 +02:00  
				
					
						
							
							
								 
						
							
								6fab26692b 
								
							 
						 
						
							
							
								
								Kernel: remove unnecessary function from x86_64 Thread.S  
							
							
							
						 
						
							2023-02-02 23:48:18 +02:00  
				
					
						
							
							
								 
						
							
								2161528cb6 
								
							 
						 
						
							
							
								
								Kernel: Shell is now launched as a capturing lambda  
							
							
							
						 
						
							2023-02-02 23:27:51 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								777ede328e 
								
							 
						 
						
							
							
								
								Kernel: Add helper functions for reading current rsp and rbp  
							
							
							
						 
						
							2023-02-02 23:19:44 +02:00  
				
					
						
							
							
								 
						
							
								2403df50bb 
								
							 
						 
						
							
							
								
								BAN: Add getter for Function size  
							
							
							
						 
						
							2023-02-02 23:19:18 +02:00  
				
					
						
							
							
								 
						
							
								c85b97abee 
								
							 
						 
						
							
							
								
								Kernel: fix some of i368 IDT. This was really broken  
							
							
							
						 
						
							2023-02-02 15:52:06 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								6cbad718fb 
								
							 
						 
						
							
							
								
								Kernel: Add some more cxxabi functionality  
							
							... 
							
							
							
							We can now declate static variables in functions 
							
						 
						
							2023-02-02 15:50:26 +02:00  
				
					
						
							
							
								 
						
							
								f6b05212e0 
								
							 
						 
						
							
							
								
								Kernel: Add is_locked() to spinlock  
							
							... 
							
							
							
							I think this is atomic read 
							
						 
						
							2023-02-02 15:49:30 +02:00  
				
					
						
							
							
								 
						
							
								01f267a321 
								
							 
						 
						
							
							
								
								Kernel: fix spinlock for i386  
							
							
							
						 
						
							2023-02-02 15:49:00 +02:00  
				
					
						
							
							
								 
						
							
								0d2d6e5348 
								
							 
						 
						
							
							
								
								BAN: Fix all emplace functions to actually do perfect forwarding  
							
							
							
						 
						
							2023-02-01 21:41:51 +02:00  
				
					
						
							
							
								 
						
							
								99cf1c0330 
								
							 
						 
						
							
							
								
								BAN: Add destructor to function if it needs to deallocate something someday  
							
							
							
						 
						
							2023-02-01 21:41:18 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								4faa662a59 
								
							 
						 
						
							
							
								
								BAN: Rewrite Traits and add some more of them  
							
							
							
						 
						
							2023-02-01 20:05:34 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								7d8aafa0b5 
								
							 
						 
						
							
							
								
								Kernel: Add macros for current archutecture  
							
							
							
						 
						
							2023-02-01 01:52:52 +02:00  
				
					
						
							
							
								 
						
							
								337569b0ca 
								
							 
						 
						
							
							
								
								Kernel: Implement basic SpinLock  
							
							
							
						 
						
							2023-02-01 01:52:52 +02:00  
				
					
						
							
							
								 
						
							
								1945b716ad 
								
							 
						 
						
							
							
								
								BAN: Implement basic LinkedList  
							
							
							
						 
						
							2023-02-01 01:22:41 +02:00