| # SPDX-License-Identifier: GPL-2.0 | |
| # We want to map these types to `isize`/`usize` manually, instead of | |
| # define them as `int`/`long` depending on platform bitwidth. | |
| --blocklist-type __kernel_s?size_t | |
| --blocklist-type __kernel_ptrdiff_t | |
| --opaque-type xregs_state | |
| --opaque-type desc_struct | |
| --opaque-type arch_lbr_state | |
| --opaque-type local_apic | |
| # Packed type cannot transitively contain a `#[repr(align)]` type. | |
| --opaque-type alt_instr | |
| --opaque-type x86_msi_data | |
| --opaque-type x86_msi_addr_lo | |
| # s390-only: same packed/align issue as above (E0588). | |
| --opaque-type lowcore | |
| --opaque-type tod_clock | |
| --opaque-type tpi_info | |
| --opaque-type uv_cb.* | |
| --opaque-type uv_secret.* | |
| --opaque-type zpci_fib | |
| # If SMP is disabled, `arch_spinlock_t` is defined as a ZST which triggers a Rust | |
| # warning. We don't need to peek into it anyway. | |
| --opaque-type spinlock | |
| # enums that appear in indirect function calls should specify a cfi type | |
| --newtype-enum lru_status | |
| --with-attribute-custom-enum=lru_status='#[cfi_encoding="10lru_status"]' | |
| # `seccomp`'s comment gets understood as a doctest | |
| --no-doc-comments | |
| # These functions use the `__preserve_most` calling convention, which neither bindgen | |
| # nor Rust currently understand, and which Clang currently declares to be unstable. | |
| --blocklist-function __list_.*_report | |
| # These constants are sometimes not recognized by bindgen depending on config. | |
| # We use const helpers to aid bindgen, to avoid conflicts when constants are | |
| # recognized, block generation of the non-helper constants. | |
| --blocklist-item ARCH_SLAB_MINALIGN | |
| --blocklist-item ARCH_KMALLOC_MINALIGN | |
| --blocklist-item VM_MERGEABLE | |
| --blocklist-item VM_READ | |
| --blocklist-item VM_WRITE | |
| --blocklist-item VM_EXEC | |
| --blocklist-item VM_SHARED | |
| --blocklist-item VM_MAYREAD | |
| --blocklist-item VM_MAYWRITE | |
| --blocklist-item VM_MAYEXEC | |
| --blocklist-item VM_MAYEXEC | |
| --blocklist-item VM_PFNMAP | |
| --blocklist-item VM_IO | |
| --blocklist-item VM_DONTCOPY | |
| --blocklist-item VM_DONTEXPAND | |
| --blocklist-item VM_LOCKONFAULT | |
| --blocklist-item VM_ACCOUNT | |
| --blocklist-item VM_NORESERVE | |
| --blocklist-item VM_HUGETLB | |
| --blocklist-item VM_SYNC | |
| --blocklist-item VM_ARCH_1 | |
| --blocklist-item VM_WIPEONFORK | |
| --blocklist-item VM_DONTDUMP | |
| --blocklist-item VM_SOFTDIRTY | |
| --blocklist-item VM_MIXEDMAP | |
| --blocklist-item VM_HUGEPAGE | |
| --blocklist-item VM_NOHUGEPAGE | |
| # Structs should implement `Zeroable` when all of their fields do. | |
| --with-derive-custom-struct .*=MaybeZeroable | |
| --with-derive-custom-union .*=MaybeZeroable |