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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								1bd8b0fe5c 
								
							 
						 
						
							
							
								
								Kernel: Sleep now actually sleeps and allows idling  
							
							
							
						 
						
							2023-02-19 18:52: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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								6a133782ed 
								
							 
						 
						
							
							
								
								All: Move to c++20  
							
							
							
						 
						
							2023-02-09 23:05:26 +02:00  
				
					
						
							
							
								 
						
							
								fb7fe73d49 
								
							 
						 
						
							
							
								
								Kernel: Add inw and outw to IO  
							
							
							
						 
						
							2023-02-04 23:37:34 +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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								f6b05212e0 
								
							 
						 
						
							
							
								
								Kernel: Add is_locked() to spinlock  
							
							... 
							
							
							
							I think this is atomic read 
							
						 
						
							2023-02-02 15:49:30 +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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								1687028ed5 
								
							 
						 
						
							
							
								
								Kernel: Add constructor and destructor to MMU  
							
							
							
						 
						
							2023-01-30 18:54:04 +02:00  
				
					
						
							
							
								 
						
							
								6dc22b7251 
								
							 
						 
						
							
							
								
								Kernel: Add actual register values to x86_64 kernel panic  
							
							... 
							
							
							
							Very hackish implementation, but we now get actual registers at the
time of the interrupt happening 
							
						 
						
							2023-01-30 18:52:38 +02:00  
				
					
						
							
							
								 
						
							
								aa0757e135 
								
							 
						 
						
							
							
								
								Kernel: Move dump_stacktrace from panic -> debug  
							
							
							
						 
						
							2023-01-26 02:57:14 +02:00  
				
					
						
							
							
								 
						
							
								e87026f01d 
								
							 
						 
						
							
							
								
								Kernel: I have no idea what this commit does  
							
							... 
							
							
							
							I had committed a change in IDT but reverted it now.
This propably only adds a spurious interrupt detection to common cpp
interrupt handler? 
							
						 
						
							2023-01-26 02:55:37 +02:00  
				
					
						
							
							
								 
						
							
								c0bc002ac6 
								
							 
						 
						
							
							
								
								Kernel: Move debug printing to its own file  
							
							... 
							
							
							
							It didn't make sense that dprint was defined in Serial.h.
We also now dump dprint to tty if there is no serial and tty is initialized 
							
						 
						
							2023-01-25 22:51:42 +02:00  
				
					
						
							
							
								 
						
							
								ba53582f23 
								
							 
						 
						
							
							
								
								Kernel: Rewrite APIC and PIC more OOP friendly  
							
							... 
							
							
							
							x86_64 port is slowly coming together 
							
						 
						
							2023-01-23 20:13:57 +02:00  
				
					
						
							
							
								 
						
							
								b50bb03ed4 
								
							 
						 
						
							
							
								
								Kernel: Panic now halts machine even if we get spurious irqs  
							
							
							
						 
						
							2023-01-23 18:25:48 +02:00  
				
					
						
							
							
								 
						
							
								1b9f7aa815 
								
							 
						 
						
							
							
								
								Kernel: Rewrite the whole VESA driver  
							
							... 
							
							
							
							We dont support vga text mode currently. I might add it later if needed.
I also removed mouse 'support' from Shell since it didn't do anything
and I didn't implement arbitary bitmap rendering to framebuffer 
							
						 
						
							2023-01-23 13:21:53 +02:00  
				
					
						
							
							
								 
						
							
								cdd27ae3db 
								
							 
						 
						
							
							
								
								Kernel: rename MMU::m_page_directory_pointer_table -> m_highest_paging_stuct  
							
							... 
							
							
							
							This might not always be pdpt. In x86_64 it is pml4/pml5 
							
						 
						
							2023-01-22 03:03:58 +02:00  
				
					
						
							
							
								 
						
							
								491610db2c 
								
							 
						 
						
							
							
								
								Kernel: move GDT initialization to boot.S  
							
							
							
						 
						
							2023-01-22 00:48:12 +02:00  
				
					
						
							
							
								 
						
							
								bb051604a1 
								
							 
						 
						
							
							
								
								Kernel: Move dump_stacktrace() to arch folder  
							
							... 
							
							
							
							It uses mov instruction which has different register on x86/x86-64 
							
						 
						
							2023-01-21 22:16:31 +02:00  
				
					
						
							
							
								 
						
							
								b9a4530e54 
								
							 
						 
						
							
							
								
								Kernel: Kernel::Panic now dumps stacktrace to com1  
							
							
							
						 
						
							2023-01-16 21:50:50 +02:00  
				
					
						
							
							
								 
						
							
								7540fa0385 
								
							 
						 
						
							
							
								
								Kernel: Shell now 'properly' parses commandline  
							
							
							
						 
						
							2023-01-16 20:09:22 +02:00  
				
					
						
							
							
								 
						
							
								e307db47eb 
								
							 
						 
						
							
							
								
								Kernel: Kernel::Panic() will now always print to serial output  
							
							
							
						 
						
							2023-01-16 15:44:27 +02:00  
				
					
						
							
							
								 
						
							
								46e5b3f3d6 
								
							 
						 
						
							
							
								
								Kernel: Move GDT to its own namespace and cleanup  
							
							
							
						 
						
							2023-01-16 15:24:10 +02:00  
				
					
						
							
							
								 
						
							
								8881c1e117 
								
							 
						 
						
							
							
								
								Kernel: Shell is no longer singleton  
							
							
							
						 
						
							2023-01-16 15:16:39 +02:00  
				
					
						
							
							
								 
						
							
								1545850be3 
								
							 
						 
						
							
							
								
								Kernel: Input callbacks use the new BAN::Function  
							
							
							
						 
						
							2023-01-16 15:15:02 +02:00  
				
					
						
							
							
								 
						
							
								d5e162b1ea 
								
							 
						 
						
							
							
								
								Kernel: fix kmalloc header  
							
							
							
						 
						
							2023-01-16 12:10:50 +02:00  
				
					
						
							
							
								 
						
							
								f547a788f2 
								
							 
						 
						
							
							
								
								Kernel: Add support for arrow keys in Shell  
							
							
							
						 
						
							2023-01-13 15:07:24 +02:00  
				
					
						
							
							
								 
						
							
								416a41745f 
								
							 
						 
						
							
							
								
								Kernel: Kernel::Panic now checks that TTY is initialized instead of VESA  
							
							
							
						 
						
							2023-01-13 15:04:06 +02:00  
				
					
						
							
							
								 
						
							
								7f01eaa936 
								
							 
						 
						
							
							
								
								Kernel: Move CPUID feature strings to cpp file  
							
							
							
						 
						
							2023-01-13 00:03:37 +02:00  
				
					
						
							
							
								 
						
							
								301ad89783 
								
							 
						 
						
							
							
								
								Kernel: Unallocate RSDT after we are done with it  
							
							
							
						 
						
							2023-01-12 13:45:01 +02:00  
				
					
						
							
							
								 
						
							
								33a4fcc662 
								
							 
						 
						
							
							
								
								Kernel: Add helper macro for bochs magic break point  
							
							
							
						 
						
							2023-01-12 13:24:41 +02:00  
				
					
						
							
							
								 
						
							
								8fd51fb47d 
								
							 
						 
						
							
							
								
								Kernel: Replace Paging{.h,.cpp} with better MMU{.h,.cpp}  
							
							
							
						 
						
							2023-01-12 13:24:36 +02:00  
				
					
						
							
							
								 
						
							
								64c57ea3d0 
								
							 
						 
						
							
							
								
								Kernel: Remove obsole CPUID::IsAvailable  
							
							... 
							
							
							
							This is now a harware requirement that is verified already in boot.S 
							
						 
						
							2023-01-10 21:28:59 +02:00  
				
					
						
							
							
								 
						
							
								7d45b3cbd6 
								
							 
						 
						
							
							
								
								Kernel: Rewrote kmalloc to be much simpler and allow alignment  
							
							
							
						 
						
							2023-01-10 21:10:36 +02:00  
				
					
						
							
							
								 
						
							
								d89b6aa9ce 
								
							 
						 
						
							
							
								
								Kernel: Serial output now gives clickable links  
							
							
							
						 
						
							2023-01-10 21:09:59 +02:00  
				
					
						
							
							
								 
						
							
								85068e27d6 
								
							 
						 
						
							
							
								
								BAN: BAN/Memory.h now provides the operator new and delete  
							
							
							
						 
						
							2023-01-10 17:51:33 +02:00  
				
					
						
							
							
								 
						
							
								c6467b8ebc 
								
							 
						 
						
							
							
								
								Kernel: Multiboot data and kernel command lines are now global variables  
							
							
							
						 
						
							2023-01-10 17:50:24 +02:00  
				
					
						
							
							
								 
						
							
								5106552bfd 
								
							 
						 
						
							
							
								
								Kernel: Serial output uses now "\r\n" as line endings  
							
							
							
						 
						
							2023-01-10 11:24:30 +02:00