at v6.2 1.5 kB view raw
1// SPDX-License-Identifier: GPL-2.0 2 3//! Bindings. 4//! 5//! Imports the generated bindings by `bindgen`. 6//! 7//! This crate may not be directly used. If you need a kernel C API that is 8//! not ported or wrapped in the `kernel` crate, then do so first instead of 9//! using this crate. 10 11#![no_std] 12#![feature(core_ffi_c)] 13// See <https://github.com/rust-lang/rust-bindgen/issues/1651>. 14#![cfg_attr(test, allow(deref_nullptr))] 15#![cfg_attr(test, allow(unaligned_references))] 16#![cfg_attr(test, allow(unsafe_op_in_unsafe_fn))] 17#![allow( 18 clippy::all, 19 missing_docs, 20 non_camel_case_types, 21 non_upper_case_globals, 22 non_snake_case, 23 improper_ctypes, 24 unreachable_pub, 25 unsafe_op_in_unsafe_fn 26)] 27 28mod bindings_raw { 29 // Use glob import here to expose all helpers. 30 // Symbols defined within the module will take precedence to the glob import. 31 pub use super::bindings_helper::*; 32 include!(concat!( 33 env!("OBJTREE"), 34 "/rust/bindings/bindings_generated.rs" 35 )); 36} 37 38// When both a directly exposed symbol and a helper exists for the same function, 39// the directly exposed symbol is preferred and the helper becomes dead code, so 40// ignore the warning here. 41#[allow(dead_code)] 42mod bindings_helper { 43 // Import the generated bindings for types. 44 include!(concat!( 45 env!("OBJTREE"), 46 "/rust/bindings/bindings_helpers_generated.rs" 47 )); 48} 49 50pub use bindings_raw::*; 51 52pub const GFP_KERNEL: gfp_t = BINDINGS_GFP_KERNEL; 53pub const __GFP_ZERO: gfp_t = BINDINGS___GFP_ZERO;