Commit Graph

106 Commits

Author SHA1 Message Date
a42c4bd2da Add -fno-omit-frame-pointer to CFLAGS 2022-09-18 17:13:56 +02:00
aad9aa1db5 Start the call stack with a null RBP before calling _start 2022-09-18 17:03:29 +02:00
4921db7b97 Clear rax register, just in case 2022-09-18 15:24:16 +02:00
cbac61d184 Rename _test_rdseed to asm_test_rdseed 2022-09-18 15:23:08 +02:00
48fae4a971 Cache RDSEED and RDRAND presence 2022-09-18 15:22:43 +02:00
183c3236d4 Fix terminology in keyboard IRQ 2022-09-18 09:47:58 +02:00
f7e7a6661d Use kernel logging in interrupts instead of plain old printf() 2022-09-18 09:43:58 +02:00
783af21a7e We are not using C 2022-09-18 09:43:29 +02:00
59ab8c016d Load a bare-bones TSS for CPU0 2022-09-17 17:40:35 +02:00
355ca6ea9f Change initrd/sys/config 2022-09-15 18:42:59 +02:00
9d19765b0e Add the ability to toggle loglevels in KernelLog 2022-09-15 18:42:38 +02:00
18140a55ec Make strstr take a const char* as a needle instead of a char* 2022-09-15 18:42:18 +02:00
0b278b2be2 Make divisor in PIT.cpp static 2022-09-15 18:12:43 +02:00
f33178a320 Log random number generation initialization 2022-09-15 18:07:17 +02:00
3e2c413b6a add module to stack.cpp 2022-09-14 19:02:36 +02:00
efb28d3258 Randomness and stack protection!! 2022-09-14 18:54:40 +02:00
db4c8e96b8 commit 2022-09-14 17:55:24 +02:00
0cb59ee17f please work please 2022-09-11 08:23:32 +02:00
d418842a48 Update TextRenderer to use kerrorln 2022-09-10 22:17:18 +02:00
f98a45aefe Updated InitRD to use virtual mappings 2022-09-10 22:15:19 +02:00
4aeada05d3 Remove unused drawing files 2022-09-10 18:44:14 +02:00
6a0cf7cf98 New framebuffer class!! 2022-09-10 18:42:40 +02:00
e3e2952661 Consistent naming 2022-09-10 18:06:46 +02:00
fe672e6a18 Use appropriate logging functions 2022-09-08 17:03:17 +02:00
1ab0f7291b Add kdbg and kdbgln 2022-09-08 17:02:40 +02:00
9de9eacb1d add strstr 2022-09-08 17:02:16 +02:00
f3f9756106 Remove unused headers in main.cpp 2022-09-08 16:30:15 +02:00
276d20a33d Remove log/Address.h, since Log.h has variadic functions now 2022-09-08 16:26:24 +02:00
d1498a5e82 Change module of RSDT from "acpi/rsdt" to "acpi" 2022-09-08 16:23:39 +02:00
76a3ceab32 Replace kinfoln with kwarnln where appropriate 2022-09-08 16:22:46 +02:00
3da3fd2c11 Update messages 2022-09-08 16:18:11 +02:00
929962efc9 Fixed size counting in RangeAllocator
Which was displaying VERY wrong sizes beforehand. (Number of regions * 4096 instead of number of bytes)
2022-09-07 20:01:44 +02:00
b4484e951d LOTS MORE LOGGING. which is great, of course. 2022-09-07 19:41:08 +02:00
0cc3900e88 Make building with debug symbols conditional in the Makefile 2022-09-07 15:05:57 +02:00
c2391cee5d Added config.h 2022-09-07 15:02:54 +02:00
aa6c578a3c Fix bug in internal_printf 2022-09-07 15:02:38 +02:00
e936a143d3 MAKE LOG FUNCTIONS VARIADIC!! 2022-09-07 15:02:23 +02:00
1820286d8b stuff 2022-09-07 10:33:22 +02:00
97aef95daa Fix format specifiers 2022-09-06 18:31:27 +02:00
c9e13f0128 Add attribute(format) to *printf to detect ill-formed calls to those functions 2022-09-06 18:25:38 +02:00
bd0a24097f Add a KernelMemoryManager namespace to wrap PMM + VMM 2022-09-06 18:08:15 +02:00
0fbc68ca88 Finish VMM 2022-09-06 13:49:17 +02:00
8bff2ee0f5 Add a RangeAllocator which serves as a physical memory allocator 2022-09-06 13:21:54 +02:00
716974a916 Add a minimal shutdown method, that only works on emulators (at least for now) 2022-09-06 12:13:43 +02:00
a8aca62771 Remove loop from the end of reboot since hang is now noreturn as well 2022-09-06 12:13:20 +02:00
003c730117 Make hang() noreturn 2022-09-06 12:12:55 +02:00
99192204fe Update main.cpp with new functionality 2022-09-06 11:48:06 +02:00
a1659aa127 Add a reboot() function
This reboot function first tries to reboot using ACPI, then pulsing the CPU's RESET line through the keyboard, then triple-faulting. If we're still there, it halts.
2022-09-06 11:47:55 +02:00
aa673e1402 Add FADT header 2022-09-06 11:47:00 +02:00
5b132e3197 Fix FindTable method to work properly with RSDT instead of XSDT 2022-09-06 11:46:47 +02:00
f7f8c1068a Move SDTHeader to separate file 2022-09-06 11:46:26 +02:00
78fe37ddb3 Move declaration of IDTR to header 2022-09-06 11:44:37 +02:00
6a6be3292d Memory::get_system and Memory::get_usable 2022-09-05 17:13:12 +02:00
1367e88d88 Finally implement %l and %z format modifiers
Finally, we can use %zx with a 64-bit number instead of %x%x with 2 32-bit values split from a 64-bit number!
2022-09-05 16:59:45 +02:00
b47b86884f Removed InitRD test code from main.cpp 2022-09-05 16:29:32 +02:00
1b727a66ea Ready. Set. Go! 2022-09-05 16:13:51 +02:00