// SPDX-License-Identifier: GPL-2.0 //! Rust minimal sample. use kernel::prelude::*; module! { type: RustMinimal, name: b"rust_minimal", author: b"Rust for Linux Contributors", description: b"Rust minimal sample", license: b"GPL", } struct RustMinimal { message: String, } impl kernel::Module for RustMinimal { fn init(_name: &'static CStr, _module: &'static ThisModule) -> Result { pr_info!("Rust minimal sample (init)\n"); pr_info!("Am I built-in? {}\n", !cfg!(MODULE)); Ok(RustMinimal { message: "on the heap!".try_to_owned()?, }) } } impl Drop for RustMinimal { fn drop(&mut self) { pr_info!("My message is {}\n", self.message); pr_info!("Rust minimal sample (exit)\n"); } }