abbfd5825f
kernel: Make StorageCache have a reference to its parent BlockDevice
...
Build and test / build (push) Successful in 2m10s
This will make it easier to implement sync later on.
2024-08-09 18:52:56 +02:00
bfb45c7d4a
gui: Add a login UI and support the os::IPC::Notifier API
Build and test / build (push) Successful in 3m2s
2024-07-31 19:50:20 +02:00
d3fbddb191
taskbar: Use SIGQUIT to restart
...
Whenever a GUI session ends, SIGHUP is sent to all GUI processes. Previously, taskbar would catch this signal and wrongly restart.
Now, taskbar correctly dies alongside everyone else.
2024-07-31 19:46:02 +02:00
0ab8efd405
libos+init: Add a Notifier API to know when child processes have finished initialization
...
init now supports the "WaitUntilReady" key, which will wait until the child calls os::IPC::notify_parent().
2024-07-31 19:43:09 +02:00
2aefbdc4ee
libos: Fix Action
2024-07-31 19:32:47 +02:00
15dc71e8e1
libui/InputField: Fix a few bugs and add a clear() method
2024-07-31 19:32:22 +02:00
140910763e
all: Reorder directory structure
...
Build and test / build (push) Successful in 1m56s
Why are command-line utilities stored in "apps"?
And why are apps like "editor" or "terminal" top-level directories?
Command-line utilities now go in "utils".
GUI stuff now goes in "gui".
This includes: libui -> gui/libui, wind -> gui/wind, GUI apps -> gui/apps, editor&terminal -> gui/apps...
System services go in "system".
2024-07-21 13:24:46 +02:00
829f455129
apps: Add arch
Build and test / build (push) Successful in 2m16s
2024-07-21 13:07:51 +02:00
d10cb10404
libluna/SHA: Reuse the m_message buffer to avoid duplicating the data to hash
...
Build and test / build (push) Successful in 2m14s
This change is almost insignificant in most cases, but it avoids using 4GB of memory to hash a 2GB file.
2024-07-21 12:52:12 +02:00
c97876bba0
kernel/ATA: Avoid assuming endianness
2024-07-21 12:51:06 +02:00
31c36b9b83
tests: Add tests for SHA256
Build and test / build (push) Successful in 2m22s
2024-07-20 16:34:31 +02:00
5fe0507ab1
libc+libluna: Add endianness-dependent functions and use them in SHA256
Build and test / build (push) Successful in 2m18s
2024-07-20 16:26:06 +02:00
e1c287a45b
libluna: Return a new Digest structure instead of a Buffer from SHA256
Build and test / build (push) Successful in 2m30s
2024-07-20 16:12:43 +02:00
db2f91b1fb
libluna+apps: Add a SHA256 hash implementation
Build and test / build (push) Successful in 2m26s
2024-07-20 15:50:59 +02:00
7345a952ca
libluna: Implement hash table iteration
Build and test / build (push) Successful in 1m47s
2024-07-02 20:51:28 +02:00
903dcfa52c
libc: Partially implement freopen() when a null pathname is provided
...
Build and test / build (push) Successful in 2m1s
The specification says "It is implementation-defined which changes of mode are permitted (if any)", so we can comply by not permitting any mode changes, at least for now.
2024-07-02 12:44:43 +02:00
2ce2d57eff
kernel: Prevent kernel threads from calling exit_and_signal_parent()
...
Build and test / build (push) Successful in 1m53s
Kernel threads are supposed to use kernel_exit() instead, so it makes no sense to have an extra branch for them.
2024-06-23 22:53:30 +02:00
907049c405
kernel: Signal the reap thread when a kernel thread exits via exit_and_signal_parent()
...
Build and test / build (push) Successful in 1m54s
This shouldn't happen, but just in case.
2024-05-02 10:58:34 +02:00
450ef2ce27
docs: Add boot_process.md
2024-05-02 10:57:46 +02:00
01dcb954e5
cp: Show an error message when attempting to copy a directory into a file
Build and test / build (push) Successful in 2m12s
2024-05-01 18:55:34 +02:00
04649fce8a
base: Change ownership of skeleton files when copying them to the home folder
2024-05-01 18:55:18 +02:00
66983ce17c
base: Correct description for the login service
2024-05-01 18:54:53 +02:00
0a46cfc80c
libui: Remove the server->client message "WindowCloseRequest"
...
Build and test / build (push) Waiting to run
This is no longer used as the client manages its own close buttons.
2024-05-01 18:19:34 +02:00
fb52c67f16
kernel/x86_64: Map kernel-side pages as global to avoid TLB flushes
...
Build and test / build (push) Waiting to run
Fixes #34 .
2024-05-01 18:14:43 +02:00
ab70a72434
kernel: Fix extra qualification in Thread.h
...
Build and test / build (push) Failing after 12m15s
Forgot to build after writing the previous commit, but CI caught it anyway.
2024-05-01 10:54:59 +02:00
1d0f18cab9
kernel: Move stack checking and expansion into an architecture-independent file
Build and test / build (push) Failing after 1m45s
2024-05-01 10:52:08 +02:00
de6f5c38d8
kernel: Try to grow the stack on stack overflows, up to a maximum of 8MB
...
Build and test / build (push) Successful in 1m49s
This helps keep GCC happy when compiling slightly complex programs :)
2024-04-28 16:27:18 +02:00
e0ed4be0db
libos: Change the year in the default ArgumentParser copyright message
...
Build and test / build (push) Failing after 12m48s
Almost four months into 2024, I finally remembered that I had to change this.
2024-04-20 17:24:26 +02:00
6293aeea58
shell: Split code into multiple files, add the "echo" builtin, and add support for a .shellrc file
Build and test / build (push) Successful in 1m46s
2024-04-20 17:17:31 +02:00
646a15d295
Update README
Build and test / build (push) Successful in 1m38s
2024-04-20 15:57:01 +02:00
b59a787b9e
kernel: Properly initialize the shebang read buffer with zeros
...
Build and test / build (push) Failing after 11m23s
Before this patch, a shebang line that was too long could have left the buffer without a null terminator, allowing some other stack contents to pass into the m_interpreter_cmdline.
2024-04-18 21:55:16 +02:00
e2ff0ad273
libc: Propagate errors correctly in shadow functions
Build and test / build (push) Successful in 2m58s
2024-04-18 21:25:36 +02:00
62cb53069c
libc: Close all pipe file descriptors in popen() after dup2() is called
2024-04-18 21:25:13 +02:00
fe302f5967
libc: Clean up stdio.h a bit
2024-04-18 21:24:34 +02:00
69f3e28f2c
editor: Use window->add_keyboard_shortcut to handle Ctrl+S
Build and test / build (push) Failing after 13m5s
2024-04-15 19:34:09 +02:00
2f56a52489
libui: Add support for keyboard shortcuts natively
2024-04-15 19:33:32 +02:00
1176e64a7c
editor: Fix creation of new files
...
Build and test / build (push) Successful in 1m44s
The editor is supposed to create files if they don't exist, however before this commit stat() would fail and exit load_file() before we even got to File::open_or_create().
2024-04-15 17:06:04 +00:00
e7780b04ee
editor: Display only the basename of the current file in the window title
2024-04-15 17:06:04 +00:00
6ded7247e0
terminal: Use widget->window() instead of the App's main window
2024-04-15 17:06:04 +00:00
8b3755873b
editor: Use TextInput as a base class
2024-04-15 17:06:04 +00:00
489d54c531
libui: Add a TextInput base class to handle most input fields and add an InputField class for single-line inputs
2024-04-15 17:06:04 +00:00
eb3af60497
editor: Refuse to load non-regular file types
2024-04-15 17:06:04 +00:00
aee100753d
editor: Remove insert mode and use the arrow keys to navigate, plus Ctrl+S to save
2024-04-15 17:06:04 +00:00
0be6a896bb
editor: Add basic loading and saving
2024-04-15 17:06:04 +00:00
7d738433ed
editor: Add a basic text editor
2024-04-15 17:06:04 +00:00
701dc30221
base+su+libc: Add support for a shadow file and use it by default
Build and test / build (push) Successful in 1m39s
2024-04-10 22:37:36 +02:00
6968961d5c
tools: Use the correct architecture in make-package.sh
Build and test / build (push) Waiting to run
2024-04-10 21:53:20 +02:00
d8914b3efa
base: Add taskbar entry for 2048
Build and test / build (push) Successful in 1m32s
2024-04-10 21:44:04 +02:00
82985d691d
taskbar: Make taskbar entries configurable
2024-04-10 21:42:21 +02:00
ff10e5f3b2
Remove the build status badge
...
Build and test / build (push) Failing after 14m33s
It links to drone, which we have phased out in favor of Gitea Actions.
2024-04-01 18:42:34 +02:00