Commit Graph

92 Commits

Author SHA1 Message Date
Bananymous
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
Bananymous
e00d18029d Kernel: rewrite some of APIC since it didn't work with xsdts for some reason 2023-01-26 02:57:14 +02:00
Bananymous
aa0757e135 Kernel: Move dump_stacktrace from panic -> debug 2023-01-26 02:57:14 +02:00
Bananymous
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
Bananymous
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
Bananymous
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
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
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
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
b67bbab083 Kernel: fix dump_stacktrace 2023-01-22 20:05:24 +02:00
Bananymous
026fdc251c Kernel: Add kmalloc_eternal back 2023-01-22 03:10:48 +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
491610db2c Kernel: move GDT initialization to boot.S 2023-01-22 00:48:12 +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
53a5ad3cf9 BAN: Function now properly forward arguments 2023-01-17 11:16:46 +02:00
Bananymous
7540fa0385 Kernel: Shell now 'properly' parses commandline 2023-01-16 20:09:22 +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
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
Bananymous
416a41745f Kernel: Kernel::Panic now checks that TTY is initialized instead of VESA 2023-01-13 15:04:06 +02:00
Bananymous
af8d486893 Kenrel: TTY fix cursor position with ANSI escapes 2023-01-13 15:04:06 +02:00
Bananymous
d0aa938b35 Kernel: remove unused function from kmalloc 2023-01-13 00:03:10 +02:00
Bananymous
61bd9da8e0 BAN: Add [[nodiscard]] to BAN functions returning ErrorOr 2023-01-12 23:57:07 +02:00
Bananymous
087d14fbb7 Kenrel: Remove unnecessary print from kmalloc_initialize() 2023-01-12 13:24:41 +02:00
Bananymous
3dfe062de1 Kernel: Cleanup TTY code 2023-01-12 13:24:41 +02:00
Bananymous
8fd51fb47d Kernel: Replace Paging{.h,.cpp} with better MMU{.h,.cpp} 2023-01-12 13:24:36 +02:00
Bananymous
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
Bananymous
7d45b3cbd6 Kernel: Rewrote kmalloc to be much simpler and allow alignment 2023-01-10 21:10:36 +02:00
Bananymous
6f9552d673 BAN: Add math to its own namespace 2023-01-10 19:11:27 +02:00
Bananymous
c6467b8ebc Kernel: Multiboot data and kernel command lines are now global variables 2023-01-10 17:50:24 +02:00
Bananymous
979a5960e4 Kernel: We don't use floating point arithemtic anymore in kernel 2023-01-10 11:10:17 +02:00
Bananymous
efd8638a96 Kernel: Improve kernel panic message and rename it 'panic'->'Panic' 2023-01-09 21:57:03 +02:00
Bananymous
086f0c7cf6 Kernel: Better error reporting from VESA and fix texmode rendering 2023-01-05 03:36:20 +02:00
Bananymous
a12ddfa12a Kernel: Update PS/2 controller 2023-01-04 19:22:23 +02:00
Bananymous
fcec793873 Kernel: Shell now renders a mouse
PS/2 mouse doesn't seem to work with PIC.
2022-12-30 20:48:15 +02:00
Bananymous
ef0b2010e0 Kernel: Add basic PS/2 Mouse driver 2022-12-30 19:38:21 +02:00
Bananymous
3c92aa45fb Kernel: 'cpuinfo' command in shell now shows wheter you are running on 64-bit cpu 2022-12-28 19:46:37 +02:00
Bananymous
06a4ef1d87 Kernel: Commandline parsing does not depend on kmalloc anymore 2022-12-28 04:17:46 +02:00
Bananymous
5d7a767f8b Kernel: Enable basic paging 2022-12-28 04:17:34 +02:00
Bananymous
3e8590687f Kernel: Cleanup code and move kmalloc initialization to later 2022-12-28 04:16:21 +02:00
Bananymous
2a65c5fd0f Kernel: Shell now actually prints to its TTY 2022-12-27 20:11:49 +02:00
Bananymous
fd4fdffd46 BAN::Formatter now takes putc like function as a parameter
This allows us to use capturing lambdas as a putc like function
2022-12-27 19:55:07 +02:00
Bananymous
98fc72b0d0 Kernel: kmalloc now aligns everything by alignof(max_align_t)
kmalloc properly aligns everything now.

I also changed so that kmalloc addresses are stored as uintptr_t
instead of void* or uint8_t* for easier arithemetic and less casting
2022-12-27 19:07:20 +02:00
Bananymous
620b836fc3 Kernel: VESA now somewhat handles Cursor in Graphics mode 2022-12-27 18:29:02 +02:00