d0aa938b35
Kernel: remove unused function from kmalloc
2023-01-13 00:03:10 +02:00
4c7950cd3e
Kernel: remove unused function from IDT
2023-01-13 00:02:39 +02:00
61bd9da8e0
BAN: Add [[nodiscard]] to BAN functions returning ErrorOr
2023-01-12 23:57:07 +02:00
78da037dda
BAN: String, Queue and Vector dont use floating point arithmetic
2023-01-12 17:00:29 +02:00
4ae4ad528a
Kernel: APIC use dprintln instead of kprintln
...
VESA drivers will be initialized much later now so kprintln
will not be available when initializing APIC
2023-01-12 13:52:22 +02:00
f412c164b3
Kernel: Rename ACPI debug print macro
2023-01-12 13:48:05 +02:00
5493d1bae1
Kernel: Add debug print to MMU and fix comment
2023-01-12 13:46:02 +02:00
301ad89783
Kernel: Unallocate RSDT after we are done with it
2023-01-12 13:45:01 +02:00
087d14fbb7
Kenrel: Remove unnecessary print from kmalloc_initialize()
2023-01-12 13:24:41 +02:00
3dfe062de1
Kernel: Cleanup TTY code
2023-01-12 13:24:41 +02:00
33a4fcc662
Kernel: Add helper macro for bochs magic break point
2023-01-12 13:24:41 +02:00
8fd51fb47d
Kernel: Replace Paging{.h,.cpp} with better MMU{.h,.cpp}
2023-01-12 13:24:36 +02:00
67308c36ad
BAN: ErrorOr<void> does not do an heap allocation anymore
2023-01-12 00:11:54 +02:00
296b6d8529
bochs.sh now launches a seperate terminal to which it redirects com1
2023-01-11 20:18:08 +02:00
d02e3b19c7
BAN: Move operator new/delete to BAN/Memory.cpp
...
We also now implement alignment new
2023-01-10 21:59:40 +02:00
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
7d45b3cbd6
Kernel: Rewrote kmalloc to be much simpler and allow alignment
2023-01-10 21:10:36 +02:00
d89b6aa9ce
Kernel: Serial output now gives clickable links
2023-01-10 21:09:59 +02:00
6f9552d673
BAN: Add math to its own namespace
2023-01-10 19:11:27 +02:00
181478119e
Kernel: Paging is now enabled by boot.S
2023-01-10 17:53:29 +02:00
ee83cd3430
BAN: Implement basic static array
2023-01-10 17:52:00 +02:00
85068e27d6
BAN: BAN/Memory.h now provides the operator new and delete
2023-01-10 17:51:33 +02:00
c6467b8ebc
Kernel: Multiboot data and kernel command lines are now global variables
2023-01-10 17:50:24 +02:00
1a65ea977d
BAN: Better ASSERT()
2023-01-10 17:43:18 +02:00
73cd08fa51
Kernel: Add script to run bochs debugger
2023-01-10 11:28:23 +02:00
5106552bfd
Kernel: Serial output uses now "\r\n" as line endings
2023-01-10 11:24:30 +02:00
979a5960e4
Kernel: We don't use floating point arithemtic anymore in kernel
2023-01-10 11:10:17 +02:00
efd8638a96
Kernel: Improve kernel panic message and rename it 'panic'->'Panic'
2023-01-09 21:57:03 +02:00
531f470132
Kernel: Add helper to map pages with base address and size
...
This allows us to easily map enough pages for buffer with known size
VESA driver can now allocate enough memory for whole framebuffer if it
doesn't fit in a single page (1920x1080 for example)
2023-01-05 03:44:41 +02:00
086f0c7cf6
Kernel: Better error reporting from VESA and fix texmode rendering
2023-01-05 03:36:20 +02:00
d6623def32
Kernel: Paging uses now PAE with 2 MiB pages
2023-01-05 02:00:18 +02:00
a12ddfa12a
Kernel: Update PS/2 controller
2023-01-04 19:22:23 +02:00
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
9d9a6b2fec
Kernel: VESA can now print 8x16 bitmaps
2022-12-30 20:47:25 +02:00
f51ca4b642
Kernel: Rewrite IDT exception kernel panic message
2022-12-30 20:03:09 +02:00
fc05642b74
Kernel: Make Render from buffer public tty function
2022-12-30 19:57:44 +02:00
b60af90538
BAN: Add min, max and clamp
2022-12-30 19:52:16 +02:00
ef0b2010e0
Kernel: Add basic PS/2 Mouse driver
2022-12-30 19:38:21 +02:00
3c92aa45fb
Kernel: 'cpuinfo' command in shell now shows wheter you are running on 64-bit cpu
2022-12-28 19:46:37 +02:00
267367333e
Kernel: Move paging code to a helper
2022-12-28 19:01:01 +02:00
06a4ef1d87
Kernel: Commandline parsing does not depend on kmalloc anymore
2022-12-28 04:17:46 +02:00
5d7a767f8b
Kernel: Enable basic paging
2022-12-28 04:17:34 +02:00
3e8590687f
Kernel: Cleanup code and move kmalloc initialization to later
2022-12-28 04:16:21 +02:00
2a65c5fd0f
Kernel: Shell now actually prints to its TTY
2022-12-27 20:11:49 +02:00
f0fd62c703
BAN: Strings can now be constructed using BAN::Formatter
2022-12-27 20:01:05 +02:00
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
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
9169020ad2
Kernel: Remove unnecessary checks from GraphicsPutCharAt()
2022-12-27 18:29:51 +02:00
620b836fc3
Kernel: VESA now somewhat handles Cursor in Graphics mode
2022-12-27 18:29:02 +02:00
2d46281c16
Kernel: TTY scroll is now done using memmove
...
This will be faster when memory functions will be optimized
2022-12-27 17:45:47 +02:00