/* SPDX-License-Identifier: GPL-2.0 */ /* * Header that contains the code (mostly headers) for which Rust bindings * will be automatically generated by `bindgen`. * * Sorted alphabetically. */ /* * First, avoid forward references to `enum` types. * * This workarounds a `bindgen` issue with them: * . * * Without this, the generated Rust type may be the wrong one (`i32`) or * the proper one (typically `c_uint`) depending on how the headers are * included, which in turn may depend on the particular kernel configuration * or the architecture. * * The alternative would be to use casts and likely an * `#[allow(clippy::unnecessary_cast)]` in the Rust source files. Instead, * this approach allows us to keep the correct code in the source files and * simply remove this section when the issue is fixed upstream and we bump * the minimum `bindgen` version. * * This workaround may not be possible in some cases, depending on how the C * headers are set up. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* * The driver-core Rust code needs to know about some C driver-core private * structures. */ #include <../../drivers/base/base.h> #if defined(CONFIG_DRM_PANIC_SCREEN_QR_CODE) // Used by `#[export]` in `drivers/gpu/drm/drm_panic_qr.rs`. #include #endif /* `bindgen` gets confused at certain things. */ const size_t RUST_CONST_HELPER_ARCH_SLAB_MINALIGN = ARCH_SLAB_MINALIGN; const size_t RUST_CONST_HELPER_ARCH_KMALLOC_MINALIGN = ARCH_KMALLOC_MINALIGN; const size_t RUST_CONST_HELPER_PAGE_SIZE = PAGE_SIZE; const gfp_t RUST_CONST_HELPER_GFP_ATOMIC = GFP_ATOMIC; const gfp_t RUST_CONST_HELPER_GFP_KERNEL = GFP_KERNEL; const gfp_t RUST_CONST_HELPER_GFP_KERNEL_ACCOUNT = GFP_KERNEL_ACCOUNT; const gfp_t RUST_CONST_HELPER_GFP_NOWAIT = GFP_NOWAIT; const gfp_t RUST_CONST_HELPER___GFP_ZERO = __GFP_ZERO; const gfp_t RUST_CONST_HELPER___GFP_HIGHMEM = ___GFP_HIGHMEM; const gfp_t RUST_CONST_HELPER___GFP_NOWARN = ___GFP_NOWARN; const blk_features_t RUST_CONST_HELPER_BLK_FEAT_ROTATIONAL = BLK_FEAT_ROTATIONAL; const fop_flags_t RUST_CONST_HELPER_FOP_UNSIGNED_OFFSET = FOP_UNSIGNED_OFFSET; const xa_mark_t RUST_CONST_HELPER_XA_PRESENT = XA_PRESENT; const gfp_t RUST_CONST_HELPER_XA_FLAGS_ALLOC = XA_FLAGS_ALLOC; const gfp_t RUST_CONST_HELPER_XA_FLAGS_ALLOC1 = XA_FLAGS_ALLOC1; const vm_flags_t RUST_CONST_HELPER_VM_MERGEABLE = VM_MERGEABLE; const vm_flags_t RUST_CONST_HELPER_VM_READ = VM_READ; const vm_flags_t RUST_CONST_HELPER_VM_WRITE = VM_WRITE; const vm_flags_t RUST_CONST_HELPER_VM_EXEC = VM_EXEC; const vm_flags_t RUST_CONST_HELPER_VM_SHARED = VM_SHARED; const vm_flags_t RUST_CONST_HELPER_VM_MAYREAD = VM_MAYREAD; const vm_flags_t RUST_CONST_HELPER_VM_MAYWRITE = VM_MAYWRITE; const vm_flags_t RUST_CONST_HELPER_VM_MAYEXEC = VM_MAYEXEC; const vm_flags_t RUST_CONST_HELPER_VM_MAYSHARE = VM_MAYEXEC; const vm_flags_t RUST_CONST_HELPER_VM_PFNMAP = VM_PFNMAP; const vm_flags_t RUST_CONST_HELPER_VM_IO = VM_IO; const vm_flags_t RUST_CONST_HELPER_VM_DONTCOPY = VM_DONTCOPY; const vm_flags_t RUST_CONST_HELPER_VM_DONTEXPAND = VM_DONTEXPAND; const vm_flags_t RUST_CONST_HELPER_VM_LOCKONFAULT = VM_LOCKONFAULT; const vm_flags_t RUST_CONST_HELPER_VM_ACCOUNT = VM_ACCOUNT; const vm_flags_t RUST_CONST_HELPER_VM_NORESERVE = VM_NORESERVE; const vm_flags_t RUST_CONST_HELPER_VM_HUGETLB = VM_HUGETLB; const vm_flags_t RUST_CONST_HELPER_VM_SYNC = VM_SYNC; const vm_flags_t RUST_CONST_HELPER_VM_ARCH_1 = VM_ARCH_1; const vm_flags_t RUST_CONST_HELPER_VM_WIPEONFORK = VM_WIPEONFORK; const vm_flags_t RUST_CONST_HELPER_VM_DONTDUMP = VM_DONTDUMP; const vm_flags_t RUST_CONST_HELPER_VM_SOFTDIRTY = VM_SOFTDIRTY; const vm_flags_t RUST_CONST_HELPER_VM_MIXEDMAP = VM_MIXEDMAP; const vm_flags_t RUST_CONST_HELPER_VM_HUGEPAGE = VM_HUGEPAGE; const vm_flags_t RUST_CONST_HELPER_VM_NOHUGEPAGE = VM_NOHUGEPAGE; #if IS_ENABLED(CONFIG_ANDROID_BINDER_IPC_RUST) #include "../../drivers/android/binder/rust_binder.h" #include "../../drivers/android/binder/rust_binder_events.h" #include "../../drivers/android/binder/page_range_helper.h" #endif