6418d7cfc3 
								
							 
						 
						
							
							
								
								Kernel: Add Other GDT entries to x86_64  
							
							
							
						 
						
							2023-01-26 12:53:04 +02:00  
				
					
						
							
							
								 
						
							
								f0093ed2fd 
								
							 
						 
						
							
							
								
								Kernel: kmalloc_eternal now updates the used/free values  
							
							... 
							
							
							
							I also improved the kmalloc_dump_info() formatting. We format the
values as 8-digit hex numbers since (atleast for now) the kmalloc
will always be under 4 GiB address and size :) 
							
						 
						
							2023-01-26 03:04:19 +02:00  
				
					
						
							
							
								 
						
							
								e00d18029d 
								
							 
						 
						
							
							
								
								Kernel: rewrite some of APIC since it didn't work with xsdts for some reason  
							
							
							
						 
						
							2023-01-26 02:57:14 +02:00  
				
					
						
							
							
								 
						
							
								35d2e27292 
								
							 
						 
						
							
							
								
								Kernel: Improve MMU  
							
							... 
							
							
							
							We don't have to invalidate page in AllocatePage() if we don't make
any changes. We also should not assert on deallocating non-present
pages, just return early :) 
							
						 
						
							2023-01-26 02:57:14 +02:00  
				
					
						
							
							
								 
						
							
								589f338357 
								
							 
						 
						
							
							
								
								Kernel: Cleanup IDT register dump inline assembly  
							
							
							
						 
						
							2023-01-26 02:57:14 +02:00  
				
					
						
							
							
								 
						
							
								05b48fa71c 
								
							 
						 
						
							
							
								
								Kernel: add gcc option to make sure we have (r/e)bp saved on stack  
							
							
							
						 
						
							2023-01-26 02:57:14 +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  
				
					
						
							
							
								 
						
							
								9c31790359 
								
							 
						 
						
							
							
								
								Kernel: Add option to disable Serial output  
							
							... 
							
							
							
							This makes all debug output to appear on the TTY 
							
						 
						
							2023-01-25 22:51:42 +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  
				
					
						
							
							
								 
						
							
								b315fdc27f 
								
							 
						 
						
							
							
								
								Kernel: Finally managed to get 64-bit working  
							
							... 
							
							
							
							I had weird problems with interrupts but everything should work now 
							
						 
						
							2023-01-25 19:19:28 +02:00  
				
					
						
							
							
								 
						
							
								c4670f49d4 
								
							 
						 
						
							
							
								
								Kernel: Refactor some IDT code  
							
							
							
						 
						
							2023-01-25 19:19:28 +02:00  
				
					
						
							
							
								 
						
							
								48348c9e57 
								
							 
						 
						
							
							
								
								Kernel: Cleanup APIC code. Remove unnecessary defines and add consts  
							
							
							
						 
						
							2023-01-25 19:00:41 +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  
				
					
						
							
							
								 
						
							
								54043288cb 
								
							 
						 
						
							
							
								
								Kernel: Move CPUID out of arch/  
							
							... 
							
							
							
							CPUID instructions behaves the same on x86 and x86_64. I am not
planning on supporting any non x86 based architectures. 
							
						 
						
							2023-01-23 18:12:52 +02:00  
				
					
						
							
							
								 
						
							
								7c6d474a3a 
								
							 
						 
						
							
							
								
								BAN: Add basic ScopeGuard  
							
							
							
						 
						
							2023-01-23 17:41:34 +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  
				
					
						
							
							
								 
						
							
								10c7ef7baa 
								
							 
						 
						
							
							
								
								Kernel: MMU rename weird variable  
							
							
							
						 
						
							2023-01-22 20:16:44 +02:00  
				
					
						
							
							
								 
						
							
								b67bbab083 
								
							 
						 
						
							
							
								
								Kernel: fix dump_stacktrace  
							
							
							
						 
						
							2023-01-22 20:05:24 +02:00  
				
					
						
							
							
								 
						
							
								62469c529f 
								
							 
						 
						
							
							
								
								Kernel: IDT now allocates descriptors with kmalloc_eternal  
							
							
							
						 
						
							2023-01-22 03:18:42 +02:00  
				
					
						
							
							
								 
						
							
								026fdc251c 
								
							 
						 
						
							
							
								
								Kernel: Add kmalloc_eternal back  
							
							
							
						 
						
							2023-01-22 03:10:48 +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  
				
					
						
							
							
								 
						
							
								6ec4ba3dc9 
								
							 
						 
						
							
							
								
								Kernel: Move dump_backtrace() out of arch.  
							
							... 
							
							
							
							I discovered __builtin_frame_address() 
							
						 
						
							2023-01-22 03:00:13 +02:00  
				
					
						
							
							
								 
						
							
								fbfb3d6b70 
								
							 
						 
						
							
							
								
								Kernel: IDT cleanup GateDesctiptor usage  
							
							... 
							
							
							
							And move everything to IDT namespace 
							
						 
						
							2023-01-22 02:06:43 +02:00  
				
					
						
							
							
								 
						
							
								558374a47c 
								
							 
						 
						
							
							
								
								Kernel: IDT flush only once in initialization  
							
							
							
						 
						
							2023-01-22 02:06:43 +02:00  
				
					
						
							
							
								 
						
							
								6e24ef8323 
								
							 
						 
						
							
							
								
								Kernel: IDT cleanup Kernel panic messages  
							
							
							
						 
						
							2023-01-22 02:06:43 +02:00  
				
					
						
							
							
								 
						
							
								3e8fbbaabd 
								
							 
						 
						
							
							
								
								Kernel: Fix small typos in IDT  
							
							
							
						 
						
							2023-01-22 01:12:47 +02:00  
				
					
						
							
							
								 
						
							
								491610db2c 
								
							 
						 
						
							
							
								
								Kernel: move GDT initialization to boot.S  
							
							
							
						 
						
							2023-01-22 00:48:12 +02:00  
				
					
						
							
							
								 
						
							
								aac7595a47 
								
							 
						 
						
							
							
								
								Kernel: cleanup boot.S code and enable SSE  
							
							
							
						 
						
							2023-01-21 23:44:23 +02:00  
				
					
						
							
							
								 
						
							
								fdbc04f29d 
								
							 
						 
						
							
							
								
								Kernel: kmalloc now uses the actual kernel end location  
							
							
							
						 
						
							2023-01-21 22:40:23 +02:00  
				
					
						
							
							
								 
						
							
								9088f7b305 
								
							 
						 
						
							
							
								
								Kernel: kmalloc prints addresses on panic  
							
							
							
						 
						
							2023-01-21 22:29:44 +02:00  
				
					
						
							
							
								 
						
							
								b5453fad5c 
								
							 
						 
						
							
							
								
								Kernel: dump_stacktrace uses now "\r\n" line endings for bochs  
							
							
							
						 
						
							2023-01-21 22:21:38 +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  
				
					
						
							
							
								 
						
							
								9e092c80c0 
								
							 
						 
						
							
							
								
								Kernel: Cleanup boot.S  
							
							
							
						 
						
							2023-01-21 22:16:01 +02:00  
				
					
						
							
							
								 
						
							
								c9e32b1b5b 
								
							 
						 
						
							
							
								
								BAN: Cleanup Queue AddressOf functions  
							
							
							
						 
						
							2023-01-18 17:19:57 +02:00  
				
					
						
							
							
								 
						
							
								64f0cc0d42 
								
							 
						 
						
							
							
								
								BAN: fix Vector code  
							
							... 
							
							
							
							one return value was missing and AddressOf functions were kinda ugly 
							
						 
						
							2023-01-18 17:18:54 +02:00  
				
					
						
							
							
								 
						
							
								dd607ce86f 
								
							 
						 
						
							
							
								
								BAN: Add basic lambda support for BAN::Function  
							
							
							
						 
						
							2023-01-18 14:39:31 +02:00  
				
					
						
							
							
								 
						
							
								ef2e8f1a2f 
								
							 
						 
						
							
							
								
								BAN: Move RemoveReference and IsLValueReference to their own header  
							
							... 
							
							
							
							Also implement basic Less, Equal, Greater 
							
						 
						
							2023-01-18 13:39:08 +02:00  
				
					
						
							
							
								 
						
							
								59fa4055a6 
								
							 
						 
						
							
							
								
								BAN: Add Queue::Emplace()  
							
							
							
						 
						
							2023-01-17 12:02:59 +02:00  
				
					
						
							
							
								 
						
							
								1340e26148 
								
							 
						 
						
							
							
								
								BAN: Add Vector::Emplace and EmplaceBack() and fix insert assignment  
							
							
							
						 
						
							2023-01-17 11:59:36 +02:00  
				
					
						
							
							
								 
						
							
								cf63552b2a 
								
							 
						 
						
							
							
								
								BAN: Cleanup includes  
							
							
							
						 
						
							2023-01-17 11:38:16 +02:00  
				
					
						
							
							
								 
						
							
								a7a55cd0fb 
								
							 
						 
						
							
							
								
								BAN: Rename Forward.h -> ForwardList.h to avoid confusion with BAN::Forward()  
							
							
							
						 
						
							2023-01-17 11:21:21 +02:00  
				
					
						
							
							
								 
						
							
								53a5ad3cf9 
								
							 
						 
						
							
							
								
								BAN: Function now properly forward arguments  
							
							
							
						 
						
							2023-01-17 11:16:46 +02:00  
				
					
						
							
							
								 
						
							
								124afbecaa 
								
							 
						 
						
							
							
								
								BAN: Add Forward()  
							
							
							
						 
						
							2023-01-17 11:15:57 +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  
				
					
						
							
							
								 
						
							
								fd16c1cf58 
								
							 
						 
						
							
							
								
								LibC: Add is*() functions to libc  
							
							
							
						 
						
							2023-01-16 20:05:51 +02:00  
				
					
						
							
							
								 
						
							
								5122d27f89 
								
							 
						 
						
							
							
								
								BAN: Add Front() and Back() to StringView  
							
							
							
						 
						
							2023-01-16 18:56:51 +02:00  
				
					
						
							
							
								 
						
							
								e307db47eb 
								
							 
						 
						
							
							
								
								Kernel: Kernel::Panic() will now always print to serial output  
							
							
							
						 
						
							2023-01-16 15:44:27 +02:00