Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/samples/rust/rust_minimal.rs
26282 views
1
// SPDX-License-Identifier: GPL-2.0
2
3
//! Rust minimal sample.
4
5
use kernel::prelude::*;
6
7
module! {
8
type: RustMinimal,
9
name: "rust_minimal",
10
authors: ["Rust for Linux Contributors"],
11
description: "Rust minimal sample",
12
license: "GPL",
13
}
14
15
struct RustMinimal {
16
numbers: KVec<i32>,
17
}
18
19
impl 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 = KVec::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
33
impl 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
40