| 1 | # SPDX-License-Identifier: GPL-2.0 |
| 2 | |
| 3 | # We want to map these types to `isize`/`usize` manually, instead of |
| 4 | # define them as `int`/`long` depending on platform bitwidth. |
| 5 | --blocklist-type __kernel_s?size_t |
| 6 | --blocklist-type __kernel_ptrdiff_t |
| 7 | |
| 8 | --opaque-type xregs_state |
| 9 | --opaque-type desc_struct |
| 10 | --opaque-type arch_lbr_state |
| 11 | --opaque-type local_apic |
| 12 | |
| 13 | # Packed type cannot transitively contain a `#[repr(align)]` type. |
| 14 | --opaque-type alt_instr |
| 15 | --opaque-type x86_msi_data |
| 16 | --opaque-type x86_msi_addr_lo |
| 17 | # s390-only: same packed/align issue as above (E0588). |
| 18 | --opaque-type lowcore |
| 19 | --opaque-type tod_clock |
| 20 | --opaque-type tpi_info |
| 21 | --opaque-type uv_cb.* |
| 22 | --opaque-type uv_secret.* |
| 23 | --opaque-type zpci_fib |
| 24 | |
| 25 | # If SMP is disabled, `arch_spinlock_t` is defined as a ZST which triggers a Rust |
| 26 | # warning. We don't need to peek into it anyway. |
| 27 | --opaque-type spinlock |
| 28 | |
| 29 | # enums that appear in indirect function calls should specify a cfi type |
| 30 | --newtype-enum lru_status |
| 31 | --with-attribute-custom-enum=lru_status='#[cfi_encoding="10lru_status"]' |
| 32 | |
| 33 | # `seccomp`'s comment gets understood as a doctest |
| 34 | --no-doc-comments |
| 35 | |
| 36 | # These functions use the `__preserve_most` calling convention, which neither bindgen |
| 37 | # nor Rust currently understand, and which Clang currently declares to be unstable. |
| 38 | --blocklist-function __list_.*_report |
| 39 | |
| 40 | # These constants are sometimes not recognized by bindgen depending on config. |
| 41 | # We use const helpers to aid bindgen, to avoid conflicts when constants are |
| 42 | # recognized, block generation of the non-helper constants. |
| 43 | --blocklist-item ARCH_SLAB_MINALIGN |
| 44 | --blocklist-item ARCH_KMALLOC_MINALIGN |
| 45 | --blocklist-item VM_MERGEABLE |
| 46 | --blocklist-item VM_READ |
| 47 | --blocklist-item VM_WRITE |
| 48 | --blocklist-item VM_EXEC |
| 49 | --blocklist-item VM_SHARED |
| 50 | --blocklist-item VM_MAYREAD |
| 51 | --blocklist-item VM_MAYWRITE |
| 52 | --blocklist-item VM_MAYEXEC |
| 53 | --blocklist-item VM_MAYEXEC |
| 54 | --blocklist-item VM_PFNMAP |
| 55 | --blocklist-item VM_IO |
| 56 | --blocklist-item VM_DONTCOPY |
| 57 | --blocklist-item VM_DONTEXPAND |
| 58 | --blocklist-item VM_LOCKONFAULT |
| 59 | --blocklist-item VM_ACCOUNT |
| 60 | --blocklist-item VM_NORESERVE |
| 61 | --blocklist-item VM_HUGETLB |
| 62 | --blocklist-item VM_SYNC |
| 63 | --blocklist-item VM_ARCH_1 |
| 64 | --blocklist-item VM_WIPEONFORK |
| 65 | --blocklist-item VM_DONTDUMP |
| 66 | --blocklist-item VM_SOFTDIRTY |
| 67 | --blocklist-item VM_MIXEDMAP |
| 68 | --blocklist-item VM_HUGEPAGE |
| 69 | --blocklist-item VM_NOHUGEPAGE |
| 70 | |
| 71 | # Structs should implement `Zeroable` when all of their fields do. |
| 72 | --with-derive-custom-struct .*=MaybeZeroable |
| 73 | --with-derive-custom-union .*=MaybeZeroable |