lib.rs (823d4737d4c226699f4378b71675822f5ebe78ba) | lib.rs (071cedc84e907f6984b3de3285ec2b077d3c3cdb) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2 3//! Crate for all kernel procedural macros. 4 5#[macro_use] 6mod quote; 7mod concat_idents; 8mod helpers; 9mod module; 10mod paste; 11mod pin_data; 12mod pinned_drop; 13mod vtable; | 1// SPDX-License-Identifier: GPL-2.0 2 3//! Crate for all kernel procedural macros. 4 5#[macro_use] 6mod quote; 7mod concat_idents; 8mod helpers; 9mod module; 10mod paste; 11mod pin_data; 12mod pinned_drop; 13mod vtable; |
14mod zeroable; |
|
14 15use proc_macro::TokenStream; 16 17/// Declares a kernel module. 18/// 19/// The `type` argument should be a type which implements the [`Module`] 20/// trait. Also accepts various forms of kernel metadata. 21/// --- 316 unchanged lines hidden (view full) --- 338/// 339/// [`paste`]: https://docs.rs/paste/ 340#[proc_macro] 341pub fn paste(input: TokenStream) -> TokenStream { 342 let mut tokens = input.into_iter().collect(); 343 paste::expand(&mut tokens); 344 tokens.into_iter().collect() 345} | 15 16use proc_macro::TokenStream; 17 18/// Declares a kernel module. 19/// 20/// The `type` argument should be a type which implements the [`Module`] 21/// trait. Also accepts various forms of kernel metadata. 22/// --- 316 unchanged lines hidden (view full) --- 339/// 340/// [`paste`]: https://docs.rs/paste/ 341#[proc_macro] 342pub fn paste(input: TokenStream) -> TokenStream { 343 let mut tokens = input.into_iter().collect(); 344 paste::expand(&mut tokens); 345 tokens.into_iter().collect() 346} |
347 348/// Derives the [`Zeroable`] trait for the given struct. 349/// 350/// This can only be used for structs where every field implements the [`Zeroable`] trait. 351/// 352/// # Examples 353/// 354/// ```rust,ignore 355/// #[derive(Zeroable)] 356/// pub struct DriverData { 357/// id: i64, 358/// buf_ptr: *mut u8, 359/// len: usize, 360/// } 361/// ``` 362#[proc_macro_derive(Zeroable)] 363pub fn derive_zeroable(input: TokenStream) -> TokenStream { 364 zeroable::derive(input) 365} |
|