|
32c8869973
|
Option: Simplify release_value
This avoids copying + we don't need to destroy the item if we move it, since it either gets emptied by moving it or doesn't have anything to destroy.
|
2022-12-16 18:13:40 +01:00 |
|
|
19a4e2ab58
|
Result, Option: Make sure everything is properly moved
|
2022-12-16 18:11:17 +01:00 |
|
|
e729c38200
|
Merge pull request 'Add an Option type and get rid of ENONE' (#19) from optionals-and-empty-errors into restart
continuous-integration/drone/push Build is passing
Reviewed-on: #19
|
2022-12-08 15:13:24 +00:00 |
|
|
b9f3d3c349
|
Remove ENONE
continuous-integration/drone/pr Build is passing
If you want to return an error without meaning, use Option.
|
2022-12-08 16:09:33 +01:00 |
|
|
da104c87cb
|
Heap: Return Option in split()
|
2022-12-08 16:09:12 +01:00 |
|
|
b6173e2b67
|
LinkedList: Return Option instead of ENONE if no value
|
2022-12-08 16:09:04 +01:00 |
|
|
406af68a54
|
Result: Use Option as backend
|
2022-12-08 16:08:18 +01:00 |
|
|
b58eba63f1
|
Add a new Option class which behaves like Result, but has no error number, just a value or no value
|
2022-12-08 16:08:02 +01:00 |
|
|
6cee208e62
|
Kernel: Enable -Wsign-conversion
continuous-integration/drone/push Build is passing
For real this time, turns out me, being dumb, added it to Luna instead of the kernel.
|
2022-12-08 15:09:32 +01:00 |
|
|
779fda307a
|
More scope guards!!
continuous-integration/drone/push Build is passing
|
2022-12-08 15:01:04 +01:00 |
|
|
1d5d1daa57
|
Add scope guards
|
2022-12-08 14:56:11 +01:00 |
|
|
6de7753b4c
|
Add malloc wrappers
continuous-integration/drone/push Build is passing
|
2022-12-07 18:17:49 +01:00 |
|
|
c8302a4fef
|
Add convenience functions to print the stack trace directly
continuous-integration/drone/push Build is passing
|
2022-12-07 18:11:24 +01:00 |
|
|
0d437cfcca
|
Add support for stack traces
continuous-integration/drone/push Build is passing
|
2022-12-07 17:39:59 +01:00 |
|
|
416e96c4d5
|
Merge pull request 'Add a basic scheduler with threads' (#18) from threads into restart
continuous-integration/drone/push Build is passing
Reviewed-on: #18
|
2022-12-07 16:11:59 +00:00 |
|
|
d93d95f23c
|
Add sleeping mechanism
|
2022-12-07 16:11:59 +00:00 |
|
|
757cee4693
|
Add accessors for when you're sure a linked list is not empty
|
2022-12-07 16:11:59 +00:00 |
|
|
70497c37fb
|
Check for runnable threads
|
2022-12-07 16:11:59 +00:00 |
|
|
57517252d8
|
Add a state to Thread
|
2022-12-07 16:11:59 +00:00 |
|
|
f169718a4b
|
Initialize and demo the scheduler
|
2022-12-07 16:11:59 +00:00 |
|
|
c907e16311
|
x86_64: Invoke the scheduler every millisecond
|
2022-12-07 16:11:59 +00:00 |
|
|
13f5d09cfd
|
Add a Scheduler!!
|
2022-12-07 16:11:59 +00:00 |
|
|
12aa014a3d
|
Add a Thread class which can be part of a DoublyLinkedList
|
2022-12-07 16:11:59 +00:00 |
|
|
fbd290c01b
|
KernelVM: clean up a bit
|
2022-12-07 16:11:59 +00:00 |
|
|
8da5521273
|
Add a Stack convenience class
|
2022-12-07 16:11:59 +00:00 |
|
|
0bbd026660
|
CPU.h: pragma once
|
2022-12-07 16:11:59 +00:00 |
|
|
5d988c088f
|
Make idle_loop noreturn
|
2022-12-07 16:11:59 +00:00 |
|
|
f65ed465c4
|
Bitmap: Fix crash by attempting to memset -1 bits (UINT64_MAX)
|
2022-12-07 16:11:59 +00:00 |
|
|
d3458f2f0f
|
Bitmap: short circuit on 0-byte clears
|
2022-12-07 16:11:59 +00:00 |
|
|
4fdd1d57f5
|
Make build-debug.sh also add debug symbols to luna
|
2022-12-07 16:11:59 +00:00 |
|
|
c657b302c9
|
Timer: add raw_ticks
|
2022-12-07 16:11:59 +00:00 |
|
|
fd6a74e61c
|
CPU: Add an idle_loop method
|
2022-12-07 16:11:59 +00:00 |
|
|
287c4ab060
|
Run clang-format
|
2022-12-07 16:11:59 +00:00 |
|
|
bbfaa4645a
|
Add a should_invoke_scheduler method
|
2022-12-07 16:11:59 +00:00 |
|
|
986aa01948
|
size_t -> usize
continuous-integration/drone/push Build is passing
|
2022-12-07 17:06:29 +01:00 |
|
|
beab3454b5
|
kernel: Enable -Wsign-conversion and -Wcast-align
continuous-integration/drone/push Build is passing
|
2022-12-07 11:47:46 +01:00 |
|
|
1badc40a4a
|
Run include-what-you-use everywhere
|
2022-12-07 11:40:02 +01:00 |
|
|
c2927de191
|
Remove unused includes
continuous-integration/drone/push Build is passing
|
2022-12-07 11:22:34 +01:00 |
|
|
a3b69a0cfa
|
Update README.md
continuous-integration/drone/push Build is passing
|
2022-12-07 11:13:16 +01:00 |
|
|
ee276a3a35
|
Add the nodiscard attribute to make and make_array
continuous-integration/drone/push Build is passing
|
2022-12-07 11:01:45 +01:00 |
|
|
dad95a8160
|
Map the page bitmap to virtual memory
|
2022-12-07 10:58:59 +01:00 |
|
|
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]]
continuous-integration/drone/push Build is passing
|
2022-12-06 19:40:35 +01:00 |
|
|
c099877c35
|
Remove unnecessary error propagation in Log.cpp
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
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
continuous-integration/drone/push Build is passing
|
2022-12-06 19:27:58 +01:00 |
|
|
d48eb85d1d
|
Heap: Avoid magic numbers
continuous-integration/drone/push Build is passing
|
2022-12-06 19:05:00 +01:00 |
|
|
b5c6ae253d
|
Make LinkedList a lot better
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 |
|