e83d4c8ac9
Use a faster PIT tick rate
2022-09-21 07:29:44 +02:00
4f360693bd
Make the demo reboot when you press a key
2022-09-20 20:51:59 +02:00
29f0253e5b
Little colorful demo
2022-09-20 20:49:31 +02:00
1dce3a0cf7
Give 1 tick of CPU time to the idle task
2022-09-20 20:48:49 +02:00
5a271eaab2
Moon 0.4-dev
2022-09-20 20:05:32 +02:00
ddbe9b8b8b
Few small adjustments to the scheduler
2022-09-20 20:02:08 +02:00
1c12cf016e
Add a Scheduler.
...
Finally.
Just Round Robin with sleeping, but it's still awesome. I think this can finish v0.3, with a few adjustments.
2022-09-20 19:58:04 +02:00
e6c6a1677a
Rename "SavedContext" to "Context"
...
Seemed like a more appropriate name.
2022-09-20 19:56:43 +02:00
063b6345ee
Make reboot and shutdown disable interrupts before proceeding
...
This is getting important now that I've made a Scheduler (yay!!) *will get added next commit*
2022-09-20 19:54:49 +02:00
5ee8e17b76
Ensure we are in an interrupt in the interrupt handler
2022-09-20 17:16:23 +02:00
d0d2d4381c
Add a is_in_handler function to validate being in an interrupt handler
2022-09-20 17:16:07 +02:00
3a796eb64c
Remove semicolon from macro
2022-09-20 16:56:43 +02:00
d1141dd713
Don't need this header
2022-09-20 16:55:32 +02:00
590740e72a
Change moon_version() to use a constant expression
2022-09-20 16:38:32 +02:00
1c1aa96293
Add a moon_version function that returns the full version string
2022-09-20 16:34:24 +02:00
6967fa9117
Update config.h to use a .cpp file that will be recompiled when it changes
2022-09-20 16:30:34 +02:00
15883c2dd3
Guard MOON_SUFFIX in config.h
2022-09-20 16:22:03 +02:00
7f1731ca2c
Moon 0.3-dev
2022-09-19 21:13:45 +02:00
ee8c2759a6
Got a stack tracer working!!
2022-09-19 21:11:43 +02:00
9d3030763b
We can fetch a symbol's name from its address!!
2022-09-19 20:54:05 +02:00
d79596f21b
Add a tool to auto-generate a symbol map, borrowed from SerenityOS :)
2022-09-19 20:35:24 +02:00
d8bfb76eef
Try to make TextRenderer work... still failing
...
I can now safely call try_initialize() in early_init though
2022-09-19 20:17:37 +02:00
86e4fce654
Separate conditions for easier debugging
2022-09-19 19:04:14 +02:00
31460fe148
I.... think I fixed the initrd code?
2022-09-19 17:06:08 +02:00
245d5e514d
Optimizations in Spinlock.asm
2022-09-19 16:36:34 +02:00
cb311c4981
Add initrd/boot/moon.elf and Luna.iso to the clean Makefile target
2022-09-18 20:20:51 +02:00
99e681aeb4
Forgot to add volatile
...
Did I check to see if it compiled before making the previous commit? Yes, of course, why are you asking? ...
2022-09-18 20:16:46 +02:00
d4a982306f
Add spinlocks
2022-09-18 20:15:19 +02:00
be31f2c017
Moon 0.2-dev
2022-09-18 17:16:44 +02:00
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