// 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::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(CONFIG_RUSTC_HAS_UNNECESSARY_TRANSMUTES, allow(unnecessary_transmutes))]
#![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"));
