rust/pin-init/examples/big_struct_in_place.rs

Source file repositories/reference/linux-study-clean/rust/pin-init/examples/big_struct_in_place.rs

File Facts

System
Linux kernel
Corpus path
rust/pin-init/examples/big_struct_in_place.rs
Extension
.rs
Size
935 bytes
Lines
44
Domain
Rust Kernel Layer
Bucket
Rust API Membrane
Inferred role
Rust Kernel Layer: implementation source
Status
source implementation candidate

Why This File Exists

Rust-side wrappers and abstractions around kernel C APIs, ownership contracts, allocation, synchronization, and module integration.

Dependency Surface

Detected Declarations

Annotated Snippet

fn main() {
    #[cfg(any(feature = "std", feature = "alloc"))]
    {
        // we want to initialize the struct in-place, otherwise we would get a stackoverflow
        let buf: Box<BigStruct> = Box::init(init!(BigStruct {
            buf <- init_zeroed(),
            a: 7,
            b: 186,
            c: 7789,
            d: 34,
            managed_buf <- ManagedBuf::new(),
        }))
        .unwrap();
        println!("{}", core::mem::size_of_val(&*buf));
    }
}

Annotation

Implementation Notes