Commit Graph

1020 Commits

Author SHA1 Message Date
1ebd892c16
Convert uses of u64 to usize
Not all of them, but if you're measuring a size it's more appropriate to use usize than u64.
2022-12-07 10:55:47 +01:00
8598b1e8fc
Replace the _noreturn macro with the C++ native attribute [[noreturn]]
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-06 19:40:35 +01:00
c099877c35
Remove unnecessary error propagation in Log.cpp
All checks were successful
continuous-integration/drone/push Build is passing
Serial and TextConsole always succeed, no need to act as if they could fail
2022-12-06 19:35:34 +01:00
314acbfe21
Change the serial log to display only milliseconds
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-06 19:31:41 +01:00
39b310b6b9
Make alignment a template parameter to help the compiler optimize
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-06 19:27:58 +01:00
d48eb85d1d
Heap: Avoid magic numbers
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-06 19:05:00 +01:00
b5c6ae253d
Make LinkedList a lot better
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-06 18:41:35 +01:00
09e447d9d2
Heap: Use LinkedList instead of doing things manually 2022-12-06 18:28:04 +01:00
d8f75f1d3c
LinkedList: Add an append_after() method
Can be used to append an item after another one instead of at the end of the list.
With doubly linked lists, this is extremely easy to achieve (O(1)).
2022-12-06 18:25:08 +01:00
146da13e43
LinkedList: Make sure to explicitly mark the first node's next and last nodes as nullptr 2022-12-06 18:23:19 +01:00
07e6ebd3cc
LinkedList: Fix nonnull_or_error 2022-12-06 18:22:45 +01:00
2734353a5d
Heap: Just align it on a 16-byte boundary if it's not aligned 2022-12-06 18:21:19 +01:00
cccf89dd16
Heap: Remove outdated FIXME 2022-12-06 18:20:18 +01:00
87fb195202
Add DoublyLinkedList data structure
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-06 17:37:43 +01:00
dd29156c85
Alloc: make() now takes variadic arguments, to forward to the constructor 2022-12-06 17:36:20 +01:00
eef74e2897
Add a generic error code (ENONE) 2022-12-06 17:35:38 +01:00
a021e7a309
Move make and destroy to luna
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-06 16:41:22 +01:00
1fa99f4f64
Make {add,sub,mul}_will_overflow more compiler-independent
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-06 15:53:06 +01:00
26b44e651d
Change safe_{sub,add,mul} so they perform the operation only once
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-06 15:47:59 +01:00
b338126854
Heap: Use safe_mul in kcalloc() 2022-12-06 15:44:21 +01:00
e91c04b1d1
luna: Introduce safe arithmetic operations, which return an error if an operation would overflow 2022-12-06 15:40:18 +01:00
8ff9cb4b96
x86_64: Add a friendlier handler for page faults
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-05 21:02:21 +01:00
1d0dd8fa93
Use KernelVM in kmalloc() and friends
Much better now!!
2022-12-05 21:02:05 +01:00
ba758bcef8
Initialize the KernelVM 2022-12-05 21:01:18 +01:00
6c3024d4ee
Heap: Count the heap blocks' size in the size required for an allocation 2022-12-05 21:01:06 +01:00
0edabd6d87
Heap: Add a new block to the end of the linked list
*facepalm*

This was causing page faults when having two blocks and the first one (oldest one) being freed first.
2022-12-05 21:00:21 +01:00
d445b29477
Add a virtual memory allocator for the kernel 2022-12-05 20:36:24 +01:00
a8fb4ca739
Move CI badge 2022-12-05 19:57:41 +01:00
eaf8a8aafe
Make sure the OS used in CI is Linux
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-05 19:26:27 +01:00
bf7bcd7d56
Rename CI pipeline
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-05 19:19:50 +01:00
20eeecb3e1
Run CI on push
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-05 19:16:58 +01:00
4ec6442ba0
Add build status badge 2022-12-05 19:16:11 +01:00
2677fca5b7
Remove formatting step 2022-12-05 19:09:33 +01:00
f767d98037
Please work 2022-12-05 19:07:01 +01:00
adf6844d49
Update drone.yml 2022-12-05 19:03:06 +01:00
999d90d588
Update check-formatting.sh 2022-12-05 19:02:23 +01:00
62e4ed824d
Update drone.yml 2022-12-05 18:50:01 +01:00
ac2da14319
Update config for CI 2022-12-05 18:48:40 +01:00
bd7b9ad237
Update drone.yml 2022-12-05 18:44:44 +01:00
ca0e47b8e4
Update drone.yml 2022-12-05 18:26:31 +01:00
744d39c27b
Update drone.yml 2022-12-05 18:24:34 +01:00
0c9b822304
Update drone.yml 2022-12-05 18:22:52 +01:00
f21d153077
Update drone.yml 2022-12-05 18:21:30 +01:00
82eda5d6aa
Update drone.yml 2022-12-05 18:19:55 +01:00
d8a3d74779
Actual steps 2022-12-05 18:13:12 +01:00
08b4c078dd
Will it work now? 2022-12-05 18:11:22 +01:00
8f3e80ae47
Try to get it right? 2022-12-05 18:08:50 +01:00
4074835185
Update drone.yml 2022-12-05 18:06:30 +01:00
e6c56172d3
Try adding a drone.yml 2022-12-05 18:00:05 +01:00
95d969ed25
Add message to inform of prebuilt toolchains 2022-12-05 17:48:26 +01:00