probed is the hardware discovery daemon for EriX.
Find a file
Erik Inkinen e64aa9dafc
All checks were successful
CI / test (push) Successful in 5s
CI / minimal-versions (push) Successful in 11s
CI / security (push) Successful in 1m25s
probed: drop unstable rustfmt options for stable toolchains
2026-03-23 10:19:56 +02:00
.github feat: add probed hardware discovery service daemon 2026-03-10 14:27:42 +02:00
src probed: split platform runtime and startup paths 2026-03-23 09:37:40 +02:00
.editorconfig Initial commit 2026-03-08 15:54:53 +01:00
.gitignore Initial commit 2026-03-08 15:54:53 +01:00
ARCHITECTURE.md probed: report platform capability discovery to deviced 2026-03-17 13:52:30 +02:00
Cargo.toml runtime-mode: migrate feature gates and document mode model 2026-03-11 08:05:00 +02:00
CODE_OF_CONDUCT.md Initial commit 2026-03-08 15:54:53 +01:00
CONTRIBUTING.md Initial commit 2026-03-08 15:54:53 +01:00
LICENSE Initial commit 2026-03-08 15:54:53 +01:00
linker.ld feat: add probed hardware discovery service daemon 2026-03-10 14:27:42 +02:00
README.md probed: report platform capability discovery to deviced 2026-03-17 13:52:30 +02:00
ROADMAP.md probed: report platform capability discovery to deviced 2026-03-17 13:52:30 +02:00
rustfmt.toml probed: drop unstable rustfmt options for stable toolchains 2026-03-23 10:19:56 +02:00
SECURITY.md docs: align security policy phase numbering 2026-03-11 05:28:14 +02:00

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 named and resolve deviced endpoint.
  • Execute deterministic PCI scan via READ_PCI_CONFIG_DWORD kernel-control op.
  • Read platform capability mask via READ_PLATFORM_CAPS kernel-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_DISCOVER
  • IPC_PHASE2_PROBED_OP_READ_LAST_SCAN

probed consumes:

  • IPC_KERNEL_CONTROL_OP_READ_PCI_CONFIG_DWORD
  • IPC_KERNEL_CONTROL_OP_READ_PLATFORM_CAPS
  • IPC_PHASE2_DEVICED_OP_REPORT_DEVICE
  • IPC_PHASE1_NAMED_OP_REGISTER
  • IPC_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.
  • DISCOVER updates cached counters only on successful completion.
  • READ_LAST_SCAN returns 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.

  • *-runtime and *-runtime-phase* features select production bootstrap/runtime behavior.
  • *-integration-smoke remains available for synthetic end-to-end validation paths.
  • *-integration-force-fail remains 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.