asleepymoon
asleepymoon pushed to threads at asleepymoon/Luna 2022-12-07 14:04:42 +00:00
48fe2d4b04 Initialize and demo the scheduler
c561b0b310 x86_64: Invoke the scheduler every millisecond
f97e392f89 Add a Scheduler!!
ad11aa719e Add a Thread class which can be part of a DoublyLinkedList
b9b7d1e201 KernelVM: clean up a bit
Compare 5 commits »
asleepymoon pushed to threads at asleepymoon/Luna 2022-12-07 13:49:01 +00:00
8c04788793 Add a Stack convenience class
c5476115df CPU.h: pragma once
b93a208f22 Make idle_loop noreturn
98a55b2c13 Bitmap: Fix crash by attempting to memset -1 bits (UINT64_MAX)
3248041aef Bitmap: short circuit on 0-byte clears
Compare 10 commits »
asleepymoon created branch threads in asleepymoon/Luna 2022-12-07 13:49:01 +00:00
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-07 10:48:17 +00:00
beab3454b5 kernel: Enable -Wsign-conversion and -Wcast-align
1badc40a4a Run include-what-you-use everywhere
Compare 2 commits »
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-07 10:23:05 +00:00
c2927de191 Remove unused includes
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-07 10:13:51 +00:00
a3b69a0cfa Update README.md
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-07 10:02:16 +00:00
ee276a3a35 Add the nodiscard attribute to make and make_array
dad95a8160 Map the page bitmap to virtual memory
1ebd892c16 Convert uses of u64 to usize
Compare 3 commits »
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-06 18:41:06 +00:00
8598b1e8fc Replace the _noreturn macro with the C++ native attribute [[noreturn]]
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-06 18:36:05 +00:00
c099877c35 Remove unnecessary error propagation in Log.cpp
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-06 18:32:11 +00:00
314acbfe21 Change the serial log to display only milliseconds
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-06 18:28:34 +00:00
39b310b6b9 Make alignment a template parameter to help the compiler optimize
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-06 18:05:40 +00:00
d48eb85d1d Heap: Avoid magic numbers
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-06 17:42:32 +00:00
b5c6ae253d Make LinkedList a lot better
09e447d9d2 Heap: Use LinkedList instead of doing things manually
d8f75f1d3c LinkedList: Add an append_after() method
146da13e43 LinkedList: Make sure to explicitly mark the first node's next and last nodes as nullptr
07e6ebd3cc LinkedList: Fix nonnull_or_error
Compare 7 commits »
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-06 16:38:42 +00:00
87fb195202 Add DoublyLinkedList data structure
dd29156c85 Alloc: make() now takes variadic arguments, to forward to the constructor
eef74e2897 Add a generic error code (ENONE)
Compare 3 commits »
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-06 15:41:59 +00:00
a021e7a309 Move make and destroy to luna
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-06 14:53:36 +00:00
1fa99f4f64 Make {add,sub,mul}_will_overflow more compiler-independent
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-06 14:48:30 +00:00
26b44e651d Change safe_{sub,add,mul} so they perform the operation only once
b338126854 Heap: Use safe_mul in kcalloc()
e91c04b1d1 luna: Introduce safe arithmetic operations, which return an error if an operation would overflow
Compare 3 commits »
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-05 20:03:06 +00:00
8ff9cb4b96 x86_64: Add a friendlier handler for page faults
1d0dd8fa93 Use KernelVM in kmalloc() and friends
ba758bcef8 Initialize the KernelVM
6c3024d4ee Heap: Count the heap blocks' size in the size required for an allocation
0edabd6d87 Heap: Add a new block to the end of the linked list
Compare 7 commits »
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-05 18:26:57 +00:00
eaf8a8aafe Make sure the OS used in CI is Linux
asleepymoon pushed to restart at asleepymoon/Luna 2022-12-05 18:20:19 +00:00
bf7bcd7d56 Rename CI pipeline