39 lines · rust
1// SPDX-License-Identifier: GPL-2.02 3//! Rust minimal sample.4 5use kernel::prelude::*;6 7module! {8 type: RustMinimal,9 name: "rust_minimal",10 author: "Rust for Linux Contributors",11 description: "Rust minimal sample",12 license: "GPL",13}14 15struct RustMinimal {16 numbers: Vec<i32>,17}18 19impl kernel::Module for RustMinimal {20 fn init(_module: &'static ThisModule) -> Result<Self> {21 pr_info!("Rust minimal sample (init)\n");22 pr_info!("Am I built-in? {}\n", !cfg!(MODULE));23 24 let mut numbers = Vec::new();25 numbers.push(72, GFP_KERNEL)?;26 numbers.push(108, GFP_KERNEL)?;27 numbers.push(200, GFP_KERNEL)?;28 29 Ok(RustMinimal { numbers })30 }31}32 33impl Drop for RustMinimal {34 fn drop(&mut self) {35 pr_info!("My numbers are {:?}\n", self.numbers);36 pr_info!("Rust minimal sample (exit)\n");37 }38}39