diff options
| author | Lyude Paul <[email protected]> | 2025-02-10 12:30:26 +0000 |
|---|---|---|
| committer | Greg Kroah-Hartman <[email protected]> | 2025-02-13 15:58:58 +0000 |
| commit | 78418f300d3999f1cf8a9ac71065bf2eca61f4dd (patch) | |
| tree | b3d4fdf6b75576344bd56c5d8e8100a69cc4efa3 /samples/rust/rust_driver_faux.rs | |
| parent | driver core: add a faux bus for use when a simple device/bus is needed (diff) | |
| download | kernel-78418f300d3999f1cf8a9ac71065bf2eca61f4dd.tar.gz kernel-78418f300d3999f1cf8a9ac71065bf2eca61f4dd.zip | |
rust/kernel: Add faux device bindings
This introduces a module for working with faux devices in rust, along with
adding sample code to show how the API is used. Unlike other types of
devices, we don't provide any hooks for device probe/removal - since these
are optional for the faux API and are unnecessary in rust.
Signed-off-by: Lyude Paul <[email protected]>
Cc: MaĆra Canal <[email protected]>
Cc: Danilo Krummrich <[email protected]>
Cc: Miguel Ojeda <[email protected]>
Acked-by: Danilo Krummrich <[email protected]>
Link: https://lore.kernel.org/r/2025021026-exert-accent-b4c6@gregkh
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'samples/rust/rust_driver_faux.rs')
| -rw-r--r-- | samples/rust/rust_driver_faux.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/samples/rust/rust_driver_faux.rs b/samples/rust/rust_driver_faux.rs new file mode 100644 index 000000000000..048c6cb98b29 --- /dev/null +++ b/samples/rust/rust_driver_faux.rs @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: GPL-2.0-only + +//! Rust faux device sample. + +use kernel::{c_str, faux, prelude::*, Module}; + +module! { + type: SampleModule, + name: "rust_faux_driver", + author: "Lyude Paul", + description: "Rust faux device sample", + license: "GPL", +} + +struct SampleModule { + _reg: faux::Registration, +} + +impl Module for SampleModule { + fn init(_module: &'static ThisModule) -> Result<Self> { + pr_info!("Initialising Rust Faux Device Sample\n"); + + let reg = faux::Registration::new(c_str!("rust-faux-sample-device"))?; + + dev_info!(reg.as_ref(), "Hello from faux device!\n"); + + Ok(Self { _reg: reg }) + } +} |
