xref: /linux/rust/uapi/lib.rs (revision 2ac74c6db40adaa29c50cbb281ae9a6f63de18e1)
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(CONFIG_RUSTC_HAS_UNNECESSARY_TRANSMUTES, allow(unnecessary_transmutes))]
28 #![cfg_attr(
29     CONFIG_RUSTC_HAS_SUSPICIOUS_RUNTIME_SYMBOL_DEFINITIONS,
30     allow(suspicious_runtime_symbol_definitions)
31 )]
32 #![feature(cfi_encoding)]
33 
34 // Manual definition of blocklisted types.
35 type __kernel_size_t = usize;
36 type __kernel_ssize_t = isize;
37 type __kernel_ptrdiff_t = isize;
38 
39 use pin_init::MaybeZeroable;
40 
41 include!(concat!(env!("OBJTREE"), "/rust/uapi/uapi_generated.rs"));
42