brintos

brintos / linux-shallow public Read only

0
0
Text · 876 B · 2a9eaab Raw
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