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
Bananymous
d8fd6afd12
Kernel: Make TTY a class
2022-12-23 15:55:45 +02:00
Bananymous
3f7a61a4d2
Kernel: VESA driver has now second buffer for fast scrolling
...
This allows us to not read from video memory, since it was very slow
I also implemented fast path for graphics clearing and scrolling if bpp is 32
2022-12-20 14:02:44 +02:00
Bananymous
5e2680cade
Kernel: You can now disable APIC from the grub commandline
2022-12-20 11:57:09 +02:00
Bananymous
4c559f50a4
BAN: StringView::Split() now precomputes number of elements
...
We dont have to resize vector on PushBack()'s if we reserve required size
2022-12-20 11:37:28 +02:00
Bananymous
64a5a28ff0
Kernel: Add time since boot to Shell
2022-12-19 11:46:38 +02:00