xref: /linux/rust/uapi/lib.rs (revision 352af6a011d586ff042db4b2d1f7421875eb8a14)
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 // See <https://github.com/rust-lang/rust-bindgen/issues/1651>.
12 #![cfg_attr(test, allow(deref_nullptr))]
13 #![cfg_attr(test, allow(unaligned_references))]
14 #![cfg_attr(test, allow(unsafe_op_in_unsafe_fn))]
15 #![allow(
16     clippy::all,
17     clippy::cast_lossless,
18     clippy::ptr_as_ptr,
19     clippy::ref_as_ptr,
20     clippy::undocumented_unsafe_blocks,
21     dead_code,
22     missing_docs,
23     non_camel_case_types,
24     non_upper_case_globals,
25     non_snake_case,
26     improper_ctypes,
27     unreachable_pub,
28     unsafe_op_in_unsafe_fn
29 )]
30 #![cfg_attr(CONFIG_RUSTC_HAS_UNNECESSARY_TRANSMUTES, allow(unnecessary_transmutes))]
31 
32 // Manual definition of blocklisted types.
33 type __kernel_size_t = usize;
34 type __kernel_ssize_t = isize;
35 type __kernel_ptrdiff_t = isize;
36 
37 include!(concat!(env!("OBJTREE"), "/rust/uapi/uapi_generated.rs"));
38