Commit | Line | Data |
---|---|---|
8326ac05 MO |
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 | ||
28 | mod 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)] | |
42 | mod bindings_helper { | |
43 | // Import the generated bindings for types. | |
9dc04365 | 44 | use super::bindings_raw::*; |
8326ac05 MO |
45 | include!(concat!( |
46 | env!("OBJTREE"), | |
47 | "/rust/bindings/bindings_helpers_generated.rs" | |
48 | )); | |
49 | } | |
50 | ||
51 | pub use bindings_raw::*; | |
52 | ||
53 | pub const GFP_KERNEL: gfp_t = BINDINGS_GFP_KERNEL; | |
54 | pub const __GFP_ZERO: gfp_t = BINDINGS___GFP_ZERO; |