Commit Graph

1614 Commits

Author SHA1 Message Date
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
32453daf66 Kernel: actually dont map page 0 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
77e82de51e Kernel: Make IDT exceptions use a single Kernel:Panic
This allows IDT to print exceptions even when we dont have TTY
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
57cbd728db BAN: Rewrite Queue with move semantics 2023-01-13 15:04:06 +02:00
Bananymous
0f4e95acc5 BAN: Rewrite vector with move semantics 2023-01-13 15:04:06 +02:00
Bananymous
065e23d307 BAN: fix include 2023-01-13 15:04:06 +02:00
Bananymous
82a25f9035 BAN: implement placement new 2023-01-13 14:45:27 +02:00
Bananymous
61de71e0d5 BAN: Properly allocate/deallocate elements in Vector/Queue 2023-01-13 01:09:40 +02:00
Bananymous
6ed542d6bf BAN: Queue and Vector now default initialize newly allocated elements 2023-01-13 01:00:50 +02:00
Bananymous
c35181a92f BAN: ASSERT now prints the condition 2023-01-13 00:57:47 +02:00
Bananymous
53d1d12c12 BAN: String add operator=(StringView) 2023-01-13 00:57:47 +02:00
Bananymous
c33c6c5785 BAN: memcpy only if we already have a buffer 2023-01-13 00:17:19 +02:00
Bananymous
75ee592fb5 Kernel: remove debug print from MMU 2023-01-13 00:04:50 +02:00
Bananymous
6b73547989 All: edit gcc flags 2023-01-13 00:04:15 +02:00
Bananymous
7f01eaa936 Kernel: Move CPUID feature strings to cpp file 2023-01-13 00:03:37 +02:00
Bananymous
d0aa938b35 Kernel: remove unused function from kmalloc 2023-01-13 00:03:10 +02:00
Bananymous
4c7950cd3e Kernel: remove unused function from IDT 2023-01-13 00:02:39 +02:00
Bananymous
61bd9da8e0 BAN: Add [[nodiscard]] to BAN functions returning ErrorOr 2023-01-12 23:57:07 +02:00
Bananymous
78da037dda BAN: String, Queue and Vector dont use floating point arithmetic 2023-01-12 17:00:29 +02:00
Bananymous
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
Bananymous
f412c164b3 Kernel: Rename ACPI debug print macro 2023-01-12 13:48:05 +02:00
Bananymous
5493d1bae1 Kernel: Add debug print to MMU and fix comment 2023-01-12 13:46:02 +02:00
Bananymous
301ad89783 Kernel: Unallocate RSDT after we are done with it 2023-01-12 13:45:01 +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
33a4fcc662 Kernel: Add helper macro for bochs magic break point 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
67308c36ad BAN: ErrorOr<void> does not do an heap allocation anymore 2023-01-12 00:11:54 +02:00
Bananymous
296b6d8529 bochs.sh now launches a seperate terminal to which it redirects com1 2023-01-11 20:18:08 +02:00
Bananymous
d02e3b19c7 BAN: Move operator new/delete to BAN/Memory.cpp
We also now implement alignment new
2023-01-10 21:59:40 +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
d89b6aa9ce Kernel: Serial output now gives clickable links 2023-01-10 21:09:59 +02:00
Bananymous
6f9552d673 BAN: Add math to its own namespace 2023-01-10 19:11:27 +02:00
Bananymous
181478119e Kernel: Paging is now enabled by boot.S 2023-01-10 17:53:29 +02:00
Bananymous
ee83cd3430 BAN: Implement basic static array 2023-01-10 17:52:00 +02:00
Bananymous
85068e27d6 BAN: BAN/Memory.h now provides the operator new and delete 2023-01-10 17:51:33 +02:00
Bananymous
c6467b8ebc Kernel: Multiboot data and kernel command lines are now global variables 2023-01-10 17:50:24 +02:00
Bananymous
1a65ea977d BAN: Better ASSERT() 2023-01-10 17:43:18 +02:00
Bananymous
73cd08fa51 Kernel: Add script to run bochs debugger 2023-01-10 11:28:23 +02:00
Bananymous
5106552bfd Kernel: Serial output uses now "\r\n" as line endings 2023-01-10 11:24:30 +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
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
Bananymous
086f0c7cf6 Kernel: Better error reporting from VESA and fix texmode rendering 2023-01-05 03:36:20 +02:00
Bananymous
d6623def32 Kernel: Paging uses now PAE with 2 MiB pages 2023-01-05 02:00:18 +02:00