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