Commit Graph

1071 Commits

Author SHA1 Message Date
e56075fb46
Use nothrow in raw_malloc 2022-12-16 20:36:43 +01:00
345e13965e
Add missing include
All checks were successful
continuous-integration/drone/push Build is passing
No one was noticing because everyone using OwnedStringView included Result.h before it
2022-12-16 20:27:44 +01:00
4a6c59d519
Make all methods in OwnedStringView const
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-16 19:48:22 +01:00
2e24e09146
Convert MemoryMapIterator to Option
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-16 19:47:20 +01:00
a32590ff8a
Call expect_value more 2022-12-16 19:44:33 +01:00
cedcfa9c63
Improve cleanup on MemoryManager failure + add methods that use KernelVM
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-16 19:36:38 +01:00
814672c771
Remove some redundant error propagation
All checks were successful
continuous-integration/drone/push Build is passing
Why can printing to the serial port or format onto a string fail?
Even if cstyle_format returns Result<usize>, we shouldn't always follow suit.
2022-12-16 18:32:29 +01:00
41b3c8adb2
Convert to_dynamic_unit to OwnedStringView and rename the old variant to to_dynamic_unit_cstr
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-16 18:18:24 +01:00
be22cf6267
Introduce OwnedStringView
A managed String which uses RAII to free its contents. It's not a proper string though, since it's read-only.
So it's a StringView... but an owned one.

Can't be copied automatically, must be either moved or copied manually by calling clone() on it.
2022-12-16 18:17:15 +01:00
d759058b80
Introduce std::nothrow
Let's make sure we explicitly tell new that we don't want exceptions
2022-12-16 18:14:48 +01:00
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
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #19
2022-12-08 15:13:24 +00:00
b9f3d3c349
Remove ENONE
All checks were successful
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
All checks were successful
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!!
All checks were successful
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
All checks were successful
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
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-07 18:11:24 +01:00
0d437cfcca
Add support for stack traces
All checks were successful
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
All checks were successful
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
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-07 17:06:29 +01:00
beab3454b5
kernel: Enable -Wsign-conversion and -Wcast-align
All checks were successful
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
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-07 11:22:34 +01:00
a3b69a0cfa
Update README.md
All checks were successful
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
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-07 11:01:45 +01:00