2abb43d709
kernel+libos: Call Vector::try_reserve where it is appropriate
2023-08-22 11:54:00 +02:00
30ff704342
libluna+libos: Install built libraries into the system root
...
This is less important for libluna, as it is built into libc, but is needed to link programs compiled inside Luna with libos.
2023-08-21 14:06:32 +02:00
9954fc1658
libos: Add a pledge wrapper
2023-08-14 10:45:00 +02:00
2e63b93e48
libos: Remove debug statements from Process::spawn()
2023-08-07 22:53:37 +02:00
77ebdda2e0
libos: Add Process::spawn()
2023-08-07 22:49:12 +02:00
df77fc8de8
libluna: Remove make_array() and destroy_array()
...
Placement new on arrays is a bit unreliable and could cause out-of-bounds data accesses.
2023-08-02 14:47:58 +02:00
aac8280e8a
libc+libos: Properly propagate errors through fgetc() and File::getchar()
...
This restores proper ^C behavior in the shell.
2023-08-02 14:46:47 +02:00
7983d63b8e
libos: Add documentation for os::File::BufferingMode
2023-08-02 13:15:51 +02:00
b17793134e
libos: Let users change the buffering mode of a File
2023-08-02 11:54:47 +02:00
200bb6c240
kernel+libc+libos: Add inode type for sockets
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
eeb9e16a74
libos: Make os::File a wrapper around stdio's FILE
...
This way, os::File benefits from the same buffering as stdio.h does.
2023-07-22 12:40:02 +02:00
5458286309
libos: Add Process::exit()
2023-07-21 21:21:08 +02:00
4439ef8ec6
sh: Add a system to easily add flexible shell builtins
2023-07-21 20:44:01 +02:00
82411789e8
libos+apps: Add kill
2023-07-10 22:17:05 +02:00
5c9503ac71
libos+cp: Add prompt functionality
2023-07-08 18:30:39 +02:00
6d9ba8deb4
libos+apps: Make the vector argument more flexible
2023-07-08 16:44:02 +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
f052d8630d
libos: Use Vector::shallow_copy() in ArgumentParser
2023-06-19 12:23:56 +02:00
2f08e0f5b0
libos: Make long value arguments use '=' and make value arguments' values always required
2023-06-17 20:58:54 +02:00
da1439126a
libos: Correct wrong manpage section for execve()
2023-06-09 23:35:23 +02:00
e4e501ecfe
libos: Add Process::wait()
2023-06-09 23:12:31 +02:00
bc07cc94cb
libos: Document it entirely using Doxygen comments =D
...
Also, add copyright information to individual files. This is going to be a hassle to do for EVERY file.
2023-06-09 22:45:06 +02:00
85896214ba
libos: Make File::read_all() read chunked blocks instead of one character at a time
...
This results in a speedup of 0.23s -> 0.13s for Base64 encoding of /bin/ls.
2023-06-04 00:23:06 +02:00
89d7866abb
libos: Show the sticky bit on symbolic modes
2023-06-03 11:35:13 +02:00
d40654a00c
libos+ls: Allow calling ArgumentParser::short_usage() directly
2023-05-28 21:57:04 +02:00
e864ef2d36
libos: Add a way to also list entry sizes, modes and mtimes
2023-05-28 21:51:50 +02:00
62e14e7580
kernel+libos+apps: Support block devices and disallow seeking character devices or pipes
2023-05-26 20:27:47 +02:00
38fae0c97b
ls: Show file modes visually
2023-05-26 18:22:50 +02:00
1a6ad11462
kernel+libc+libos+ls: Add readlink()
2023-05-23 15:42:38 +02:00
7a8ef52408
libos: Support not following symlinks
2023-05-20 21:49:25 +02:00
1fa8aeecce
libos: Allow Process::exec to take a slice of StringViews instead of Strings as arguments
2023-05-20 12:47:10 +02:00
4d106b6b8c
libos: Add error handling to vector argument usage
2023-05-13 13:22:49 +02:00
65d3195caa
libos: Allow ArgumentParser users to specify they want leftover arguments
2023-05-13 13:22:10 +02:00
300d68088b
libos: Add FileSystem::stat()
2023-05-12 23:47:20 +02:00
b08ebdc3cb
libos: Show "Options:" label even if --help and --version are the only
...
options
2023-05-06 22:05:08 +02:00
3eb78aa5f3
libos+init: Add a new Path class to handle both file descriptors and file paths
2023-05-03 17:37:26 +02:00
0fad179485
apps+libc+libos: Remove _LUNA_SYSTEM_ERROR_EXTENSIONS and reorder headers
...
libluna/libos headers can now go after errno.h, so there's no reason to keep them separate.
2023-05-02 10:51:53 +02:00
48df90e636
libos+apps: Use os::*print* instead of (f)printf
2023-05-01 19:32:00 +02:00
a2303665fc
libos: Add os:: print(), println(), eprint(), and eprintln()
2023-05-01 19:31:15 +02:00
ac4bbd135b
libos: Add Directory::list()
2023-04-28 22:41:44 +02:00
6c5d6aaf00
libos: Make remove_tree_at use os::Directory
2023-04-28 21:16:44 +02:00
3e277b5d6f
libos: Introduce os::Directory
2023-04-28 21:16:43 +02:00
80914f0bb9
ArgumentParser: Add support for version information
2023-04-28 16:33:05 +02:00
cb28e2a385
libos: Add a convenience function for opening a file or standard input
2023-04-26 20:41:03 +02:00
fb09eb97ce
libos: Add File::read_all() and File::read_all_as_string()
2023-04-26 20:34:09 +02:00
5b69ce554c
init: Add a few more configuration options for services
...
Notably, redirecting a service's standard streams and waiting for a service to finish before continuing boot.
2023-04-25 21:00:12 +02:00
e378d8ee2f
Revert "libos: Make File::read_line optionally strip the ending newline"
...
This should be done by the caller, as making libos do it will not return a different value if the line was empty or was EOF.
Fortunately, we now have String::trim.
2023-04-22 15:21:04 +02:00
63a2df112d
libos: Make File::read_line optionally strip the ending newline
2023-04-22 13:55:07 +02:00
e654ed6415
libos: Allow passing environment to Process::exec
2023-04-22 13:54:47 +02:00