xref: /linux/rust/bindgen_parameters (revision b50ecc5aca4d18f1f0c4942f5c797bc85edef144)
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
18# `try` is a reserved keyword since Rust 2018; solved in `bindgen` v0.59.2,
19# commit 2aed6b021680 ("context: Escape the try keyword properly").
20--opaque-type kunit_try_catch
21
22# If SMP is disabled, `arch_spinlock_t` is defined as a ZST which triggers a Rust
23# warning. We don't need to peek into it anyway.
24--opaque-type spinlock
25
26# `seccomp`'s comment gets understood as a doctest
27--no-doc-comments
28
29# These functions use the `__preserve_most` calling convention, which neither bindgen
30# nor Rust currently understand, and which Clang currently declares to be unstable.
31--blocklist-function __list_.*_report
32
33# These constants are sometimes not recognized by bindgen depending on config.
34# We use const helpers to aid bindgen, to avoid conflicts when constants are
35# recognized, block generation of the non-helper constants.
36--blocklist-item ARCH_SLAB_MINALIGN
37