xref: /linux/rust/uapi/lib.rs (revision 86f86e6fdedc33c5b8d38b9208b350f8accf57ee)
1 // SPDX-License-Identifier: GPL-2.0
2 
3 //! UAPI Bindings.
4 //!
5 //! Contains the bindings generated by `bindgen` for UAPI interfaces.
6 //!
7 //! This crate may be used directly by drivers that need to interact with
8 //! userspace APIs.
9 
10 #![no_std]
11 #![allow(
12     clippy::all,
13     clippy::as_underscore,
14     clippy::cast_lossless,
15     clippy::ptr_as_ptr,
16     clippy::ref_as_ptr,
17     clippy::undocumented_unsafe_blocks,
18     dead_code,
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 #![cfg_attr(not(CONFIG_RUSTC_HAS_UNNECESSARY_TRANSMUTES), allow(unknown_lints))]
28 #![allow(unnecessary_transmutes)]
29 #![cfg_attr(
30     CONFIG_RUSTC_HAS_SUSPICIOUS_RUNTIME_SYMBOL_DEFINITIONS,
31     allow(suspicious_runtime_symbol_definitions)
32 )]
33 #![feature(cfi_encoding)]
34 
35 // Manual definition of blocklisted types.
36 type __kernel_size_t = usize;
37 type __kernel_ssize_t = isize;
38 type __kernel_ptrdiff_t = isize;
39 
40 use pin_init::MaybeZeroable;
41 
42 include!(concat!(env!("OBJTREE"), "/rust/uapi/uapi_generated.rs"));
43