commits
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* refactor overhaul testing
* fixes
* dont deny warning for test, miri, loom
* add miri to rust components
* refactor: properly remove mpsc-queue
* fmt
* generic up to semihosting
* fmt
* rm x86 code
* refactor: replace linked-list & mpsc-queue with cordyceps (#461)
* Update libs/kasync/src/sync/wait_queue.rs
Co-authored-by: Jonas Kruckenberg <iterpre@protonmail.com>
* Update libs/kasync/src/time/timer/wheel.rs
Co-authored-by: Jonas Kruckenberg <iterpre@protonmail.com>
* rename var
---------
Co-authored-by: Jonas Kruckenberg <iterpre@protonmail.com>
Co-authored-by: Jonas Kruckenberg <iterpre@protonmail.com>
As part of the x86_64 backend development (PR #476), this commit refactors trap handling
to be architecture-independent:
- Create dedicated 'trap' library at libs/trap/ for architecture-independent trap types
- Move Trap, Interrupt, and Exception enums from RISC-V-specific code to shared library
- Update RISC-V library to import trap types from the new shared library
- Update kernel trap_handler to use the generic trap interface
- Add trap library to workspace dependencies
This refactoring enables code sharing between RISC-V and future x86_64 implementations,
eliminating duplication and creating a clean architecture-agnostic interface for trap handling.
Verified: RISC-V kernel boots and runs successfully with these changes.
Related to: https://github.com/JonasKruckenberg/k23/pull/476
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* docs: fix incorrect build and run commands in documentation
Update manual to use correct `just run profile/riscv64/qemu.toml`
command instead of incorrect `just run-riscv64` and `just run` commands.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fmt
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Jonas Kruckenberg <iterpre@protonmail.com>
* integrate async-exec into kernel
* bring back shell
* fix: don't panic on zero stolen tasks
* fix: remove unecessary unparks from trap handler
* fix: remove park/unpark protocol
The protocol previously implemented by Parker & UnparkToken was designed to prevent spurious wakeups. However, spurious wakeups are not a problem for schedulers
since the queues are a simple way of determining whether the wakeup was spurious or not. And indeed it is desireable to check the queue in these cases, as the
interrupt that caused the wakeup might have unblocked a task.
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This change does what the CPU init code should have been doing the whole time: Just warn when the CPU reports unknown extensions instead of aborting
system initialization.
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* feat: async oneshot channel
* async oneshot benchmark
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* refactor: replace linked-list & mpsc-queue with cordyceps (#461)
* Update libs/kasync/src/sync/wait_queue.rs
Co-authored-by: Jonas Kruckenberg <iterpre@protonmail.com>
* Update libs/kasync/src/time/timer/wheel.rs
Co-authored-by: Jonas Kruckenberg <iterpre@protonmail.com>
* rename var
---------
Co-authored-by: Jonas Kruckenberg <iterpre@protonmail.com>
As part of the x86_64 backend development (PR #476), this commit refactors trap handling
to be architecture-independent:
- Create dedicated 'trap' library at libs/trap/ for architecture-independent trap types
- Move Trap, Interrupt, and Exception enums from RISC-V-specific code to shared library
- Update RISC-V library to import trap types from the new shared library
- Update kernel trap_handler to use the generic trap interface
- Add trap library to workspace dependencies
This refactoring enables code sharing between RISC-V and future x86_64 implementations,
eliminating duplication and creating a clean architecture-agnostic interface for trap handling.
Verified: RISC-V kernel boots and runs successfully with these changes.
Related to: https://github.com/JonasKruckenberg/k23/pull/476
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* docs: fix incorrect build and run commands in documentation
Update manual to use correct `just run profile/riscv64/qemu.toml`
command instead of incorrect `just run-riscv64` and `just run` commands.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fmt
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Jonas Kruckenberg <iterpre@protonmail.com>
* integrate async-exec into kernel
* bring back shell
* fix: don't panic on zero stolen tasks
* fix: remove unecessary unparks from trap handler
* fix: remove park/unpark protocol
The protocol previously implemented by Parker & UnparkToken was designed to prevent spurious wakeups. However, spurious wakeups are not a problem for schedulers
since the queues are a simple way of determining whether the wakeup was spurious or not. And indeed it is desireable to check the queue in these cases, as the
interrupt that caused the wakeup might have unblocked a task.