d5f302a68b 
								
							 
						 
						
							
							
								
								Kernel: kmalloc now uses two locks  
							
							... 
							
							
							
							One for fixed allocations and one for general allocations 
							
						 
						
							2023-03-06 12:40:35 +02:00  
				
					
						
							
							
								 
						
							
								e3a71289c0 
								
							 
						 
						
							
							
								
								BAN: fix LinkedList back/front functions  
							
							
							
						 
						
							2023-03-06 01:46:52 +02:00  
				
					
						
							
							
								 
						
							
								10ef3c6a54 
								
							 
						 
						
							
							
								
								LibC: add declarations for malloc and free  
							
							
							
						 
						
							2023-03-04 02:59:48 +02:00  
				
					
						
							
							
								 
						
							
								f1f5e76636 
								
							 
						 
						
							
							
								
								Kernel: kmalloc requires alignment to be power of two  
							
							
							
						 
						
							2023-03-02 22:31:13 +02:00  
				
					
						
							
							
								 
						
							
								81cb342c12 
								
							 
						 
						
							
							
								
								BAN: Remove #error macros  
							
							
							
						 
						
							2023-03-02 22:30:32 +02:00  
				
					
						
							
							
								 
						
							
								53ec66ff86 
								
							 
						 
						
							
							
								
								LibC: strerror now always uses a buffer to which it copies the string  
							
							
							
						 
						
							2023-03-02 22:13:08 +02:00  
				
					
						
							
							
								 
						
							
								1c146ba1a5 
								
							 
						 
						
							
							
								
								BAN: remove aligned alloc from ban  
							
							
							
						 
						
							2023-03-02 22:12:42 +02:00  
				
					
						
							
							
								 
						
							
								52aa98ba25 
								
							 
						 
						
							
							
								
								Kernel+LibC: Add some errno codes  
							
							... 
							
							
							
							Kernel now returns ENOMEM and other errnos, so we dont have to write
error messages 
							
						 
						
							2023-03-02 21:10:44 +02:00  
				
					
						
							
							
								 
						
							
								90a7268e5a 
								
							 
						 
						
							
							
								
								BAN: Rewrite RefCounted to return ErrorOr  
							
							
							
						 
						
							2023-03-02 12:30:11 +02:00  
				
					
						
							
							
								 
						
							
								1dd61e93b6 
								
							 
						 
						
							
							
								
								Kernel: Threads cannot take arguments anymore  
							
							
							
						 
						
							2023-03-02 01:56:09 +02:00  
				
					
						
							
							
								 
						
							
								4d8bdec16d 
								
							 
						 
						
							
							
								
								Kernel: fix i386 MMU  
							
							
							
						 
						
							2023-03-02 00:47:29 +02:00  
				
					
						
							
							
								 
						
							
								7fcbb869e1 
								
							 
						 
						
							
							
								
								Kernel: Initialize GDT in kernel code  
							
							... 
							
							
							
							We dont use the boot GDT only while booting 
							
						 
						
							2023-03-01 21:21:56 +02:00  
				
					
						
							
							
								 
						
							
								7f8cad83b1 
								
							 
						 
						
							
							
								
								Kernel: x86_64 boot script now makes GDT with null, kernel code and data  
							
							
							
						 
						
							2023-03-01 21:21:56 +02:00  
				
					
						
							
							
								 
						
							
								ba8c4dbc7f 
								
							 
						 
						
							
							
								
								Kernel: panic now disables interrupts as the first thing  
							
							
							
						 
						
							2023-03-01 21:21:56 +02:00  
				
					
						
							
							
								 
						
							
								9756de02ef 
								
							 
						 
						
							
							
								
								Kernel: MMU now takes flags when allocating pages  
							
							
							
						 
						
							2023-03-01 21:21:56 +02:00  
				
					
						
							
							
								 
						
							
								7d84f290a1 
								
							 
						 
						
							
							
								
								Kernel: Add lock to Disk reads before I forget  
							
							
							
						 
						
							2023-02-26 03:48:11 +02:00  
				
					
						
							
							
								 
						
							
								ee5d02aa70 
								
							 
						 
						
							
							
								
								Kernel: Rewrite basically all current disk io stuff  
							
							... 
							
							
							
							This is a big commit that was kinda hard to split to smaller ones.
Essentially we now look at all the mass storage devices from PCI
and initialize (P)ATA devices. This doesn't provide any more functionality
but better abstractions and everything doesn't have to be on its old
default port that might be different for modern computers. 
							
						 
						
							2023-02-26 03:00:29 +02:00  
				
					
						
							
							
								 
						
							
								048a2ebb95 
								
							 
						 
						
							
							
								
								ALL: Disk image's root partition now has name 'banan-root'  
							
							
							
						 
						
							2023-02-26 02:59:33 +02:00  
				
					
						
							
							
								 
						
							
								40cf68a22a 
								
							 
						 
						
							
							
								
								Kernel: Shell now sleeps through Scheduler and doesn't 'hlt'  
							
							... 
							
							
							
							ls doesn't crash when trying to list file 
							
						 
						
							2023-02-26 02:57:27 +02:00  
				
					
						
							
							
								 
						
							
								04bb08d27f 
								
							 
						 
						
							
							
								
								Kernel: Add basic PCI enumeration  
							
							
							
						 
						
							2023-02-26 02:56:53 +02:00  
				
					
						
							
							
								 
						
							
								dc1a4614fb 
								
							 
						 
						
							
							
								
								BAN: Errors are now moved around with TRY()  
							
							
							
						 
						
							2023-02-26 02:54:34 +02:00  
				
					
						
							
							
								 
						
							
								9439582154 
								
							 
						 
						
							
							
								
								BAN: Add ASSERT_NOT_REACHED()  
							
							
							
						 
						
							2023-02-26 02:53:58 +02:00  
				
					
						
							
							
								 
						
							
								34f9912a1d 
								
							 
						 
						
							
							
								
								Kernel: Add IO functions inl, outl, and ins{b,w,l} to read into buffer  
							
							
							
						 
						
							2023-02-24 12:39:38 +02:00  
				
					
						
							
							
								 
						
							
								80f9428337 
								
							 
						 
						
							
							
								
								Kernel: Fix prefs font for 32 bit  
							
							
							
						 
						
							2023-02-24 03:19:54 +02:00  
				
					
						
							
							
								 
						
							
								6c1f0d1dc8 
								
							 
						 
						
							
							
								
								BAN: Add big_endian_to_host in Math  
							
							
							
						 
						
							2023-02-23 15:58:32 +02:00  
				
					
						
							
							
								 
						
							
								5cd97e44e2 
								
							 
						 
						
							
							
								
								LibC: Add strcmp and strncmp  
							
							
							
						 
						
							2023-02-23 15:57:33 +02:00  
				
					
						
							
							
								 
						
							
								390a747768 
								
							 
						 
						
							
							
								
								Kernel: Add prefs font for terminal output before file system  
							
							
							
						 
						
							2023-02-23 01:22:50 +02:00  
				
					
						
							
							
								 
						
							
								a4980acc88 
								
							 
						 
						
							
							
								
								Kernel: Fonts can now be parsed from the filesystem and set to terminal  
							
							... 
							
							
							
							We currently dont have a fallback font if we cannot get to filesystem
initialization, but that will come later. I can't test on real hardware
for this reason. 
							
						 
						
							2023-02-22 22:29:31 +02:00  
				
					
						
							
							
								 
						
							
								0e668738dc 
								
							 
						 
						
							
							
								
								Kernel: Make some basic bitmap font parsing code  
							
							
							
						 
						
							2023-02-22 22:28:12 +02:00  
				
					
						
							
							
								 
						
							
								a3e9e7d125 
								
							 
						 
						
							
							
								
								Kernel: Fix some shell commands  
							
							
							
						 
						
							2023-02-22 21:55:32 +02:00  
				
					
						
							
							
								 
						
							
								4cd99c71ca 
								
							 
						 
						
							
							
								
								Kernel: kmalloc uses now spinlock and fix kmalloc_fixed()  
							
							
							
						 
						
							2023-02-22 21:49:28 +02:00  
				
					
						
							
							
								 
						
							
								c9ea22f5e2 
								
							 
						 
						
							
							
								
								Kernel: IDT now confirms that it allocated succesfully  
							
							
							
						 
						
							2023-02-22 21:48:40 +02:00  
				
					
						
							
							
								 
						
							
								0e77b4dc4e 
								
							 
						 
						
							
							
								
								BAN: You can now transform little endian data to host endian  
							
							
							
						 
						
							2023-02-22 21:47:22 +02:00  
				
					
						
							
							
								 
						
							
								f98f3d851c 
								
							 
						 
						
							
							
								
								BAN: HashMap uses LinkedList as bucket, so kmalloc_fixed can be used  
							
							
							
						 
						
							2023-02-22 21:46:41 +02:00  
				
					
						
							
							
								 
						
							
								a845f8696c 
								
							 
						 
						
							
							
								
								BAN: Add function to decode utf-8 encoded strings  
							
							... 
							
							
							
							works for 3 byte unicode characters 
							
						 
						
							2023-02-22 21:45:26 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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