c1d08b904e
kernel+libluna: Add Buffer::dequeue_data()
2023-07-30 11:33:05 +02:00
6b0bc66fd2
libluna: Add new socket-related errno codes
2023-07-30 11:33:05 +02:00
4ed7ec5e93
libluna: Store SharedPtr's ref count in the object itself
2023-07-30 11:32:46 +02:00
58fa297068
libluna: Wrap around when iterating through a HashTable's buckets array
...
Why am I so dumb?
2023-07-25 18:19:45 +02:00
7f990b161b
libluna: Fix comparison of StringViews without null termination
...
This regressed in de7e58c274, and made value arguments pretty much unusable.
This really needs a test...
2023-07-25 17:25:18 +02:00
9bb3fed611
libluna: Use the right unsigned integer type for wcscmp()'s return type
2023-07-25 17:23:27 +02:00
9ef09cfc88
libc+libluna: Add case-insensitive string comparison functions
2023-07-22 11:58:28 +02:00
16b385fc7b
libluna: Some fixes so that HashTable collisions work properly
2023-07-21 21:04:25 +02:00
4439ef8ec6
sh: Add a system to easily add flexible shell builtins
2023-07-21 20:44:01 +02:00
de7e58c274
StringView: Fix equality operator
2023-07-21 14:26:54 +02:00
5f698b4774
kernel: Don't create a new kernel stack on exec()
...
The old one was not getting freed, creating a memory leak every exec(),
which can get huge over time.
Plus, there was no need for a new stack.
And we couldn't just free the old one, since sys_execve() runs on the old stack...
2023-07-12 16:06:56 +02:00
b64093dee5
kernel+libc: Implement getpgid()
2023-07-12 13:44:25 +02:00
69f9701097
kernel+libc: Implement isatty()
2023-07-11 12:05:09 +02:00
7328cfe734
kernel: Add basic process groups
2023-07-11 11:51:07 +02:00
8066e8f1d8
kernel+libc: Implement sigprocmask() and friends
2023-07-10 21:01:59 +02:00
15d6aae701
kernel+libc: Implement basic signals
2023-07-10 19:46:57 +02:00
15199a2366
libluna+libc: Implement memchr() and strstr()
2023-07-10 15:30:05 +02:00
56f3d26969
kernel+libluna: Fix the CRC32 algorithm and use it to verify the GPT header
2023-07-10 14:54:55 +02:00
ae0cd155c3
kernel: Fix AddressSpace's move assignment operator
2023-07-09 20:43:03 +02:00
bd757d204e
kernel+libos+libluna: Avoid copying and reallocation when creating Strings
...
This is done by reusing the existing buffers in Vector and Buffer instances.
2023-07-02 19:30:25 +02:00
498e20561f
libluna: Add release_data() overloads to Buffer and Vector
...
This can be used to transfer the underlying data to a String object without copying.
2023-07-02 19:29:04 +02:00
6db0a2649c
libluna: Add a variant of PathParser::join() for relative paths
2023-07-02 16:38:12 +02:00
a62265b504
kernel/ext2: Implement directory traversal
2023-06-25 20:35:37 +02:00
77686b26f8
kernel/Ext2: Read the root inode metadata from the disk
2023-06-25 20:35:36 +02:00
a9460469d9
kernel+libc+apps: Add a source parameter to the mount() system call
2023-06-25 20:35:35 +02:00
8542cf7cbf
libluna: Fix Vector::shallow_copy()
2023-06-19 12:23:39 +02:00
b4a6e4d56d
libluna/PathParser: Make dirname() and basename() static functions
...
This avoids creating a PathParser to use them, which allocates memory that won't be used.
2023-06-19 11:21:58 +02:00
0b553cadc0
libluna: Do not fault if vstring_format() is called with buf=nullptr
...
Instead, just discard the output and return the number of bytes formatted, as mandated by the C standard.
2023-06-19 10:44:33 +02:00
ae01a31104
kernel: Make sure the stack is 16-byte aligned on program startup
...
This is required by the System V ABI and fixes some movaps-related GPFs in ndisasm.
2023-06-19 10:41:32 +02:00
21cc7e3729
libluna: Rename parse_length() to parse_type() in Format.cpp
2023-06-19 01:00:05 +02:00
a2c081f219
libluna: Allow passing a base to scan_(un)signed_integer()
2023-06-19 00:58:02 +02:00
08997007f2
libluna: Stop checking initialization status on every bitmap method call
...
Since our asserts (expect()) are enabled on release as well, this is kinda expensive.
It's up to the caller, if they receive a null pointer dereference it's
their fault for not initializing their bitmap :)
We do still assert out-of-range indexing and stuff like that.
2023-06-18 19:28:28 +02:00
148c1c7341
libluna: Add the clear_data() method to Vector and use it to optimize Base64::decode
...
This method clears the Vector's data without deallocating the
backing buffer, so that it can be reused without reallocation.
2023-06-18 19:24:26 +02:00
d45e9e2a8c
libluna: Simplify the API for Utf8StateDecoder by splitting it into multiple methods
2023-06-18 18:38:01 +02:00
2f08e0f5b0
libos: Make long value arguments use '=' and make value arguments' values always required
2023-06-17 20:58:54 +02:00
e79d4297ea
kernel: Make the root inode be a mountpoint as well + add pivot_root()
2023-06-17 17:27:22 +02:00
a6330eaffc
libluna: Add a #pragma once to Types.h
2023-06-17 12:04:47 +02:00
592558d7ad
kernel: Add GUID partition table support
2023-06-17 12:03:37 +02:00
4f86cd9f08
libluna: Add a so very basic HashMap
2023-06-17 00:07:43 +02:00
6307b01689
kernel/ATA: Read ATA strings properly instead of backwards
...
Now we can see the model string. What does it say...
"QEMU DVD-ROM". Let's go!
2023-06-16 21:10:31 +02:00
e118c9ea0d
kernel/ATA: Implement enough to send an IDENTIFY command and read the model number :)
2023-06-16 21:10:31 +02:00
d589834eb7
libluna: Add HashTable
2023-06-15 15:50:04 +02:00
a1bf4dafbe
libluna: Remove implicit vector copying and add an explicit way to do it
...
Closes #28 .
2023-06-09 22:54:22 +02:00
d2334a67dd
apps: Add mktemp
2023-06-03 12:15:57 +02:00
fd62de6474
libluna: Do not sort empty arrays; avoids a segfault
2023-06-03 11:55:46 +02:00
cc72a1655d
libc+libluna: Move libluna hooks out of libc and into a central place in libluna
2023-06-03 11:18:52 +02:00
51a5727c8d
libluna: Fix a crash in quicksort
2023-05-28 21:51:50 +02:00
88d1da59e8
kernel+libc: Add access()
2023-05-27 12:04:27 +02:00
bd8aaa917f
kernel+libc+ln: Add support for userspace hard link creation
2023-05-27 11:32:40 +02:00
b0506bf88f
kernel: Add umask
2023-05-26 22:27:49 +02:00