Commit Graph

205 Commits

Author SHA1 Message Date
51024f879d
SharedPtr: Delete ptr on failure in all adopt_shared* functions 2023-02-03 22:20:00 +01:00
e9a009478f
SharedPtr: Fixes and support for casting to other SharedPtr types
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-31 19:59:06 +01:00
635437a4a4
luna: Add a new idiomatic way to mark unused parameters as used while keeping their names
Just call ignore(...)
2023-01-25 21:14:44 +01:00
8cb9c14b1e
luna/Format: Make output_(pure_)integer_data take a const reference to vstate
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-22 17:36:02 +01:00
7f8a8cdcaf
kernel, libc: Add an usleep() system call and use that to implement usleep() and sleep() in libc
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-22 15:00:20 +01:00
a7a38d3433
Bitmap: Add a fallible variant of match_region() that does not crash if arguments are out of range
All checks were successful
continuous-integration/drone/push Build is passing
This lets us call deallocate_memory() with any address and it will not crash.
2023-01-22 14:25:51 +01:00
cb59a4e0e3
libc: Add assert.h
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-22 12:51:30 +01:00
34a9b35037
Option, Result: Propagate caller locations when erroring out
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-22 12:00:52 +01:00
0126a8fb6e
luna: Add a new SourceLocation class and use that in check() and expect() 2023-01-22 11:43:48 +01:00
129297a0b0
CString: Fix compilation in strnlen() 2023-01-22 11:43:10 +01:00
cf8d3c6ff9
OwnedStringView: Add a method to extract a substring
Some checks failed
continuous-integration/drone/push Build is failing
2023-01-22 11:27:54 +01:00
12d2039f68
CString: Add strnlen() and strndup() 2023-01-22 11:27:37 +01:00
944d32de36
Bitmap: Introduce new malloc-aware initialization functions
All checks were successful
continuous-integration/drone/push Build is passing
Lets us call resize(new_size) instead of initialize(realloc(location, new_size), new_size)
2023-01-21 23:16:50 +01:00
0e607c2fef
Bitmap: Declare more variables as const
I miss Rust's immutability-by-default...
2023-01-21 23:04:21 +01:00
a6974b605e
tools+CMake: Prefix all environment variables with LUNA_
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-21 22:44:16 +01:00
a3d0fa7d0a
UserVM: Validate the entire range when freeing multiple VM pages
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-16 21:16:38 +01:00
1d92784608
luna, kernel: Replace some uses of char by truly 1-byte wide types
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-16 19:52:34 +01:00
329e8ab182
luna/Heap: Scrub reallocations properly 2023-01-16 19:50:35 +01:00
d0600f5714
luna: Make Utf8StringEncoder short-circuit instead of failing when hitting the length limit
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-14 12:07:08 +01:00
00ee8314b3
luna: Make Utf8String{De,En}coders return the number of bytes written
This means we can avoid a call to code_points() in mbstowcs(),
which would parse a string twice.
2023-01-14 11:55:19 +01:00
da805eec83
Describe what check() and expect() are
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-14 10:59:30 +01:00
eb35abfa52
Vector: Assigment, copy&move constructors, and destructor 2023-01-14 10:50:28 +01:00
3b4b750cbf
luna: Vector is here!!
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-13 22:28:03 +01:00
2d2db300b0
libc: Add malloc(), calloc(), realloc() and free()
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-13 20:00:20 +01:00
5fb2ff09c7
kernel, luna, libc: Move the heap code to a common zone, to be used by both kernel and userspace 2023-01-13 19:27:53 +01:00
09dc8bd522
Bitmap: Add find_region() and find_and_toggle_region() 2023-01-13 18:55:31 +01:00
59db656f25
size_t -> usize 2023-01-13 18:55:05 +01:00
16a62552db
SharedPtr: Add a nullptr constructor 2023-01-13 18:54:39 +01:00
445aeed80d
OwnedPtr: Implement assignment operators 2023-01-13 18:54:25 +01:00
586ca19b62
Add a VERY BASIC and hacky way of allocating memory from userspace
All checks were successful
continuous-integration/drone/push Build is passing
Only supports one-page allocations and doesn't have libc wrappers, which means it has to be invoked using syscall().
2023-01-11 23:02:42 +01:00
0e1e15e85a
Result: Construct a Result from an Option using from_option() 2023-01-11 23:02:42 +01:00
d150c55143
TarStream: Support mode
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-11 18:42:50 +01:00
82b555cf5c
TarStream: Refactor the API to get rid of that awful method in Result
All checks were successful
continuous-integration/drone/push Build is passing
That method being try_set_value_with_specific_error()
2023-01-11 17:30:53 +01:00
6cf042e65e
Result: Remove m_has_value, rely on Option::has_value()
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-11 17:09:32 +01:00
67ebb00bd3
Option, Result: Introduce try_move_value(), which is the release_value() equivalent of try_set_value() 2023-01-11 17:06:17 +01:00
84c82a4e75
luna, kernel: More constness
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-10 19:31:41 +01:00
5aa667c776
luna: Make OwnedStringView::clone() just call from_string_literal()
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-10 19:03:00 +01:00
3ac3d54788
luna: Make check() and expect() output errors in userspace 2023-01-10 19:02:16 +01:00
c82ed5df01
Enable -Os on all targets 2023-01-10 18:13:21 +01:00
c83f6c03b5
Bitmap: Add a 'find_and_toggle' method
All checks were successful
continuous-integration/drone/push Build is passing
Just like find(), but toggles the value when finding it.
Avoids doing this manually in MemoryManager and KernelVM.
2023-01-09 18:08:50 +01:00
4287ec6cb0
Bitmap: Introduce a new method 'find' and use it in MM and KernelVM
All checks were successful
continuous-integration/drone/push Build is passing
This method looks for the first bit with a value, optionally from a starting index, and returns its index.
This should be (haven't benchmarked) way faster than the manual way,
AKA what MM and KernelVM were doing.

This is due to this method using bit and byte manipulation tricks instead of just calling get() until getting the desired result :)
2023-01-09 17:59:52 +01:00
c97f588d44
Fix TRY() with Option 2023-01-07 20:53:23 +01:00
7e377ef712
Implement printf()
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-07 01:49:26 +01:00
a8a64863c8
kernel, libc: Add clock_gettime() 2023-01-07 00:21:08 +01:00
b851dcf9b9
libc: Implement mbstowcs() using Utf8StringDecoder
Some checks failed
continuous-integration/drone/push Build is failing
2023-01-06 21:01:37 +01:00
80f5c790f8
Implement string formatting into libc :)
All checks were successful
continuous-integration/drone/push Build is passing
Of course, using <luna/Format.h> makes it so simple. No need for duplicate code!
2023-01-06 20:15:43 +01:00
a01b56ed39
CString: Support strcpy(), strcat() and strchr() 2023-01-06 16:20:35 +01:00
08608d2344
Depend on libc headers
Some checks failed
continuous-integration/drone/push Build is failing
2023-01-06 13:38:48 +01:00
129e3c434a
Switch to C for userspace, with a very bare-bones libc!!
Some checks failed
continuous-integration/drone/push Build is failing
2023-01-06 13:31:14 +01:00
b27cefb9c5
SystemError: Define _LUNA_SYSTEM_ERROR_EXTENSIONS to compile properly in hosted envs 2023-01-06 13:30:49 +01:00