probed is the hardware discovery daemon for EriX.
- 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 | ||
probed
probed is the hardware discovery daemon for EriX.
It scans PCI configuration space and platform capability bits through
kernel-control calls and reports recognized devices to deviced using typed
IPC contracts. probed does not start or stop drivers; it only produces
discovery metadata.
Responsibilities
- Validate startup envelope and role contract (
SERVICE_ROLE_PROBED). - Register itself in
namedand resolvedevicedendpoint. - Execute deterministic PCI scan via
READ_PCI_CONFIG_DWORDkernel-control op. - Read platform capability mask via
READ_PLATFORM_CAPSkernel-control op. - Map known VM PCI identities to seeded synthetic device IDs.
- Report discovered devices through
deviced REPORT_DEVICE. - Expose deterministic scan counters through
READ_LAST_SCAN.
IPC Surface
probed serves the following operations from lib-ipc:
IPC_PHASE2_PROBED_OP_DISCOVERIPC_PHASE2_PROBED_OP_READ_LAST_SCAN
probed consumes:
IPC_KERNEL_CONTROL_OP_READ_PCI_CONFIG_DWORDIPC_KERNEL_CONTROL_OP_READ_PLATFORM_CAPSIPC_PHASE2_DEVICED_OP_REPORT_DEVICEIPC_PHASE1_NAMED_OP_REGISTERIPC_PHASE1_NAMED_OP_LOOKUP
Runtime Behavior
- Discovery is deterministic and panic-free.
- Probe policy is strict: absent probe evidence keeps corresponding drivers
stopped in
deviced. DISCOVERupdates cached counters only on successful completion.READ_LAST_SCANreturns the most recent counters.- All request validation failures return deterministic IPC result codes.
Build
cargo build --all-targets --all-features
Test
cargo test --all-targets --all-features
cargo clippy --all-targets --all-features -- -D warnings
License
ISC.
Build and Test Modes
This repository supports additive runtime and integration feature gates.
*-runtimeand*-runtime-phase*features select production bootstrap/runtime behavior.*-integration-smokeremains available for synthetic end-to-end validation paths.*-integration-force-failremains test-only and MUST NOT be enabled for runtime appliance builds.
Compatibility aliases are kept so existing scenario feature names continue to compile while the runtime naming becomes canonical.