xref: /linux/samples/rust/rust_driver_faux.rs (revision df02351331671abb26788bc13f6d276e26ae068f)
1*78418f30SLyude Paul // SPDX-License-Identifier: GPL-2.0-only
2*78418f30SLyude Paul 
3*78418f30SLyude Paul //! Rust faux device sample.
4*78418f30SLyude Paul 
5*78418f30SLyude Paul use kernel::{c_str, faux, prelude::*, Module};
6*78418f30SLyude Paul 
7*78418f30SLyude Paul module! {
8*78418f30SLyude Paul     type: SampleModule,
9*78418f30SLyude Paul     name: "rust_faux_driver",
10*78418f30SLyude Paul     authors: ["Lyude Paul"],
11*78418f30SLyude Paul     description: "Rust faux device sample",
12*78418f30SLyude Paul     license: "GPL",
13*78418f30SLyude Paul }
14*78418f30SLyude Paul 
15*78418f30SLyude Paul struct SampleModule {
16*78418f30SLyude Paul     _reg: faux::Registration,
17*78418f30SLyude Paul }
18*78418f30SLyude Paul 
19*78418f30SLyude Paul impl Module for SampleModule {
init(_module: &'static ThisModule) -> Result<Self>20*78418f30SLyude Paul     fn init(_module: &'static ThisModule) -> Result<Self> {
21*78418f30SLyude Paul         pr_info!("Initialising Rust Faux Device Sample\n");
22*78418f30SLyude Paul 
23*78418f30SLyude Paul         let reg = faux::Registration::new(c_str!("rust-faux-sample-device"), None)?;
24*78418f30SLyude Paul 
25*78418f30SLyude Paul         dev_info!(reg.as_ref(), "Hello from faux device!\n");
26*78418f30SLyude Paul 
27*78418f30SLyude Paul         Ok(Self { _reg: reg })
28*78418f30SLyude Paul     }
29*78418f30SLyude Paul }
30