mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	Using the `--with-derive-custom-{struct,union}` option of bindgen, add
`#[derive(MaybeZeroable)]` to every struct & union. This makes those
types implement `Zeroable` if all their fields implement it.
Sadly bindgen doesn't add custom derives to the `__BindgenBitfieldUnit`
struct. So manually implement `Zeroable` for that.
Signed-off-by: Benno Lossin <lossin@kernel.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
[ Formatted comment. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
		
	
			
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
# 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
 | 
						|
 | 
						|
# `try` is a reserved keyword since Rust 2018; solved in `bindgen` v0.59.2,
 | 
						|
# commit 2aed6b021680 ("context: Escape the try keyword properly").
 | 
						|
--opaque-type kunit_try_catch
 | 
						|
 | 
						|
# 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
 | 
						|
 | 
						|
# `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
 | 
						|
 | 
						|
# Structs should implement `Zeroable` when all of their fields do.
 | 
						|
--with-derive-custom-struct .*=MaybeZeroable
 | 
						|
--with-derive-custom-union .*=MaybeZeroable
 |