Commit Graph

101 Commits

Author SHA1 Message Date
56ace11bb1 Copy "hello.size" bytes from hello instead of 512, who knows what there is in there... 2022-09-23 18:03:20 +02:00
7b8d30aacd Add a Device class to PCI and a PCITypes file for string names for PCI device types 2022-09-23 18:01:07 +02:00
8a93c53277 Add a Device class to PCI 2022-09-23 17:24:45 +02:00
c3e5251687 Some more userland and font failing 2022-09-23 16:41:43 +02:00
523b252960 Moon 0.4-dev 2022-09-22 08:17:02 +02:00
11dd165a8e Scheduler: add proper support for user tasks (still faults though) 2022-09-22 08:14:04 +02:00
543fe2885f Add support for user pages 2022-09-22 07:57:30 +02:00
ec01dc2927 Scheduler: Change fixed Task array for (highly inefficient) memory allocation, add userspace task support (which as memory is mapped kernel-only instantly crashes), and support for exiting a task (marking it as exited and reaping it later) 2022-09-21 21:06:00 +02:00
c6c2e286e7 Prepare our GDT for userspace 2022-09-21 21:04:15 +02:00
ee49caa6d3 Interrupts: ensure is_in_handler is true if we know we are in a handler 2022-09-21 21:03:49 +02:00
4401b31440 Remove ds from context, no need for it in x86_64, use ss instead 2022-09-21 21:03:24 +02:00
1b3b93d8bb StackTracer: add a trace_with_ip that prints the symbol name of the saved instruction pointer, for use in interrupts 2022-09-21 21:00:15 +02:00
3a69551dcc StackTracer: only trace frames within the kernel address space 2022-09-21 20:59:41 +02:00
d54ed0dc8b Make ASSERT, PANIC and TODO show a backtrace and scheduler tid if initialized 2022-09-21 20:56:40 +02:00
af8e5aca64 Add basic PCI driver 2022-09-21 17:57:02 +02:00
49ddb47ad4 Reorganize structure 2022-09-21 17:56:53 +02:00
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