Commit Graph

1461 Commits

Author SHA1 Message Date
Bananymous 48348c9e57 Kernel: Cleanup APIC code. Remove unnecessary defines and add consts 2023-01-25 19:00:41 +02:00
Bananymous ba53582f23 Kernel: Rewrite APIC and PIC more OOP friendly
x86_64 port is slowly coming together
2023-01-23 20:13:57 +02:00
Bananymous b50bb03ed4 Kernel: Panic now halts machine even if we get spurious irqs 2023-01-23 18:25:48 +02:00
Bananymous 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
Bananymous 7c6d474a3a BAN: Add basic ScopeGuard 2023-01-23 17:41:34 +02:00
Bananymous 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
Bananymous 10c7ef7baa Kernel: MMU rename weird variable 2023-01-22 20:16:44 +02:00
Bananymous b67bbab083 Kernel: fix dump_stacktrace 2023-01-22 20:05:24 +02:00
Bananymous 62469c529f Kernel: IDT now allocates descriptors with kmalloc_eternal 2023-01-22 03:18:42 +02:00
Bananymous 026fdc251c Kernel: Add kmalloc_eternal back 2023-01-22 03:10:48 +02:00
Bananymous 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
Bananymous 6ec4ba3dc9 Kernel: Move dump_backtrace() out of arch.
I discovered __builtin_frame_address()
2023-01-22 03:00:13 +02:00
Bananymous fbfb3d6b70 Kernel: IDT cleanup GateDesctiptor usage
And move everything to IDT namespace
2023-01-22 02:06:43 +02:00
Bananymous 558374a47c Kernel: IDT flush only once in initialization 2023-01-22 02:06:43 +02:00
Bananymous 6e24ef8323 Kernel: IDT cleanup Kernel panic messages 2023-01-22 02:06:43 +02:00
Bananymous 3e8fbbaabd Kernel: Fix small typos in IDT 2023-01-22 01:12:47 +02:00
Bananymous 491610db2c Kernel: move GDT initialization to boot.S 2023-01-22 00:48:12 +02:00
Bananymous aac7595a47 Kernel: cleanup boot.S code and enable SSE 2023-01-21 23:44:23 +02:00
Bananymous fdbc04f29d Kernel: kmalloc now uses the actual kernel end location 2023-01-21 22:40:23 +02:00
Bananymous 9088f7b305 Kernel: kmalloc prints addresses on panic 2023-01-21 22:29:44 +02:00
Bananymous b5453fad5c Kernel: dump_stacktrace uses now "\r\n" line endings for bochs 2023-01-21 22:21:38 +02:00
Bananymous 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
Bananymous 9e092c80c0 Kernel: Cleanup boot.S 2023-01-21 22:16:01 +02:00
Bananymous c9e32b1b5b BAN: Cleanup Queue AddressOf functions 2023-01-18 17:19:57 +02:00
Bananymous 64f0cc0d42 BAN: fix Vector code
one return value was missing and AddressOf functions were kinda ugly
2023-01-18 17:18:54 +02:00
Bananymous dd607ce86f BAN: Add basic lambda support for BAN::Function 2023-01-18 14:39:31 +02:00
Bananymous ef2e8f1a2f BAN: Move RemoveReference and IsLValueReference to their own header
Also implement basic Less, Equal, Greater
2023-01-18 13:39:08 +02:00
Bananymous 59fa4055a6 BAN: Add Queue::Emplace() 2023-01-17 12:02:59 +02:00
Bananymous 1340e26148 BAN: Add Vector::Emplace and EmplaceBack() and fix insert assignment 2023-01-17 11:59:36 +02:00
Bananymous cf63552b2a BAN: Cleanup includes 2023-01-17 11:38:16 +02:00
Bananymous a7a55cd0fb BAN: Rename Forward.h -> ForwardList.h to avoid confusion with BAN::Forward() 2023-01-17 11:21:21 +02:00
Bananymous 53a5ad3cf9 BAN: Function now properly forward arguments 2023-01-17 11:16:46 +02:00
Bananymous 124afbecaa BAN: Add Forward() 2023-01-17 11:15:57 +02:00
Bananymous b9a4530e54 Kernel: Kernel::Panic now dumps stacktrace to com1 2023-01-16 21:50:50 +02:00
Bananymous 7540fa0385 Kernel: Shell now 'properly' parses commandline 2023-01-16 20:09:22 +02:00
Bananymous fd16c1cf58 LibC: Add is*() functions to libc 2023-01-16 20:05:51 +02:00
Bananymous 5122d27f89 BAN: Add Front() and Back() to StringView 2023-01-16 18:56:51 +02:00
Bananymous e307db47eb Kernel: Kernel::Panic() will now always print to serial output 2023-01-16 15:44:27 +02:00
Bananymous 73abc3b2ee fixup! Kernel: Move GDT to its own namespace and cleanup 2023-01-16 15:24:59 +02:00
Bananymous 46e5b3f3d6 Kernel: Move GDT to its own namespace and cleanup 2023-01-16 15:24:10 +02:00
Bananymous b46fa0d116 Kernel: Shell can now dump kmalloc info 2023-01-16 15:17:00 +02:00
Bananymous 8881c1e117 Kernel: Shell is no longer singleton 2023-01-16 15:16:39 +02:00
Bananymous 1545850be3 Kernel: Input callbacks use the new BAN::Function 2023-01-16 15:15:02 +02:00
Bananymous 3561257286 BAN: Add basic Function for function pointers and member functions 2023-01-16 15:09:27 +02:00
Bananymous d5e162b1ea Kernel: fix kmalloc header 2023-01-16 12:10:50 +02:00
Bananymous a02d4c59ed BAN: Vector and Queue replace Address() with AddressOf and correct const 2023-01-16 12:10:16 +02:00
Bananymous c62d512d68 BAN: Add Iterator and ConstIterator to Vector 2023-01-13 17:48:19 +02:00
Bananymous 689338b506 Kernel: kmalloc can now dump current memory usage 2023-01-13 17:42:19 +02:00
Bananymous f547a788f2 Kernel: Add support for arrow keys in Shell 2023-01-13 15:07:24 +02:00
Bananymous bf4b26d1fd Kernel: kmalloc now returns nullptr if you try to allocate over kmalloc size 2023-01-13 15:04:06 +02:00