Commit Graph

1011 Commits

Author SHA1 Message Date
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
762131a425
Make more constexpr 2022-12-05 16:43:52 +01:00
2eaa458555
Remove release_value call 2022-12-05 16:41:39 +01:00
1e3706ac01
Make ARCH_PAGE_SIZE and ARCH_TIMER_FREQ known at compile-time 2022-12-05 16:36:41 +01:00
4f183958e3
General constness + [[gnu::packed]] everywhere 2022-12-05 16:13:38 +01:00
a63a8b32b5
Make new and delete noexcept and return nullptr on failure 2022-12-05 13:45:32 +01:00
891320f7d3
Heap: Make const 2022-12-05 13:41:58 +01:00
7cc139c3f7
Make expect and check use unlikely 2022-12-05 13:35:33 +01:00
ea7893ba71
Make CHECK_PAGE_ALIGNED use expect() instead of check() 2022-12-05 13:28:36 +01:00
55a30ac487
Make CHECK_PAGE_ALIGNED use expect() instead of check() 2022-12-05 13:26:50 +01:00