// SPDX-License-Identifier: GPL-2.0

//! UAPI Bindings.
//!
//! Contains the bindings generated by `bindgen` for UAPI interfaces.
//!
//! This crate may be used directly by drivers that need to interact with
//! userspace APIs.

#![no_std]
#![allow(
    clippy::all,
    clippy::as_underscore,
    clippy::cast_lossless,
    clippy::ptr_as_ptr,
    clippy::ref_as_ptr,
    clippy::undocumented_unsafe_blocks,
    dead_code,
    missing_docs,
    non_camel_case_types,
    non_upper_case_globals,
    non_snake_case,
    improper_ctypes,
    unreachable_pub,
    unsafe_op_in_unsafe_fn
)]
#![cfg_attr(not(CONFIG_RUSTC_HAS_UNNECESSARY_TRANSMUTES), allow(unknown_lints))]
#![allow(unnecessary_transmutes)]
#![cfg_attr(
    CONFIG_RUSTC_HAS_SUSPICIOUS_RUNTIME_SYMBOL_DEFINITIONS,
    allow(suspicious_runtime_symbol_definitions)
)]
#![feature(cfi_encoding)]

// Manual definition of blocklisted types.
type __kernel_size_t = usize;
type __kernel_ssize_t = isize;
type __kernel_ptrdiff_t = isize;

use pin_init::MaybeZeroable;

include!(concat!(env!("OBJTREE"), "/rust/uapi/uapi_generated.rs"));
