generated from erix/meta
drv-ps2-keyboard is the PS/2 keyboard protocol translator daemon.
- Rust 100%
|
|
||
|---|---|---|
| .github | ||
| src | ||
| .editorconfig | ||
| .gitignore | ||
| ARCHITECTURE.md | ||
| Cargo.toml | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| linker.ld | ||
| README.md | ||
| ROADMAP.md | ||
| rustfmt.toml | ||
| SECURITY.md | ||
drv-ps2-keyboard
drv-ps2-keyboard is the PS/2 keyboard protocol translator daemon.
It reads raw keyboard bytes from drv-i8042, decodes PS/2 set-1 make/break
scancodes into normalized key events, and forwards them to inputd.
Naming note
The repository and binary name remain drv-ps2-keyboard, while service
discovery uses the shortened name drv-ps2-kbd (SERVICE_NAME_DRV_PS2_KEYBOARD)
to satisfy the 15-byte service-name limit.
What it does
- Validates startup envelope and role (
SERVICE_ROLE_DRV_PS2_KEYBOARD). - Registers itself with
named. - Resolves
drv-i8042andinputdendpoints throughnamed. - Polls keyboard bytes via
drv-i8042 READ_KEYBOARD_BYTE. - Decodes set-1 scancodes (including extended prefix handling).
- Forwards normalized events to
inputd APPEND_EVENTusinglib-input.
Runtime model
- Single-threaded translate-and-forward loop.
- Fixed message buffer (
1024bytes). - Monotonic request IDs for i8042 reads and input appends.
- No dynamic allocation.
Feature flags
drv-ps2-keyboard-runtimedrv-ps2-keyboard-runtime-phase3-input- compatibility aliases:
drv-ps2-keyboard-integration-smokedrv-ps2-keyboard-integration-phase3-inputdrv-ps2-keyboard-integration-force-fail
Build and test
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-targets --all-features
Dependencies
lib-bootstraplib-capabilib-ipclib-servicelib-inputipc-syscall-x86_64
No third-party crates are used.