diff options
| author | salmonik <salmonik@tuta.io> | 2026-07-31 16:43:04 +0200 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-07-31 16:43:04 +0200 |
| commit | 43c44ae6fe7dbfcf6af3e5e53c29f65bbf94c9c2 (patch) | |
| tree | 3fe86cc049f154dc33202b6573e091d6cace7305 /CONTEXT.md | |
| parent | vfs: everything is a file — dirs, ramfs, character devices (diff) | |
| download | rs-dos-43c44ae6fe7dbfcf6af3e5e53c29f65bbf94c9c2.tar.gz rs-dos-43c44ae6fe7dbfcf6af3e5e53c29f65bbf94c9c2.zip | |
shell: ^C cancels the line / aborts streams, ^D = EOF → poweroff
- ps2: Ctrl+C and Ctrl+D are now KeyEvents (ctrl modifier + c/d map);
other Ctrl+key combos are swallowed
- shell read_line: ^C clears the line and echoes '^C' (bash-style),
^D on an empty line echoes '^D' and shuts down (EOF), ^D with text
on the line is ignored
- cat/hexdump stream incrementally (was: build whole string then print)
and check for ^C between chunks, so a running dump can be aborted
- verified in QEMU: line cancel, standalone interrupt, ^C aborts an
infinite 'cat /dev/zero' stream, ^D powers off
Diffstat (limited to '')
| -rw-r--r-- | CONTEXT.md | 3 |
1 files changed, 3 insertions, 0 deletions
| @@ -130,6 +130,9 @@ Single Rust crate (`x86_64-unknown-uefi` target). Module breakdown: | |||
| 130 | ✅ **VFS** — “everything is a file”: dirs, ramfs, char devices | 130 | ✅ **VFS** — “everything is a file”: dirs, ramfs, char devices |
| 131 | (`ls`/`cat`/`hexdump`/`mkdir`/`touch`/`rm`, `echo >`/`>>`; devices | 131 | (`ls`/`cat`/`hexdump`/`mkdir`/`touch`/`rm`, `echo >`/`>>`; devices |
| 132 | regenerate on read, `/dev/mem` is raw physical RAM) | 132 | regenerate on read, `/dev/mem` is raw physical RAM) |
| 133 | ✅ **^C / ^D** — Ctrl+C cancels the line or aborts a running stream | ||
| 134 | (`cat`/`hexdump` check between chunks), Ctrl+D on an empty line | ||
| 135 | powers off (EOF) | ||
| 133 | 136 | ||
| 134 | ## Target audience | 137 | ## Target audience |
| 135 | 138 | ||
