mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-30 16:18:41 +02:00 
			
		
		
		
	 2fd6f55c04
			
		
	
	
		2fd6f55c04
		
	
	
	
	
		
			
			Currently bindgen has special logic to recognise `size_t` and `ssize_t` and map them to Rust `usize` and `isize`. Similarly, `ptrdiff_t` is mapped to `isize`. However this falls short for `__kernel_size_t`, `__kernel_ssize_t` and `__kernel_ptrdiff_t`. To ensure that they are mapped to usize/isize rather than 32/64 integers depending on platform, blocklist them in bindgen parameters and manually provide their definition. Signed-off-by: Gary Guo <gary@garyguo.net> Reviewed-by: Alice Ryhl <aliceryhl@google.com> Reviewed-by: Trevor Gross <tmgross@umich.edu> Link: https://lore.kernel.org/r/20240913213041.395655-3-gary@garyguo.net [ Formatted comment. - Miguel ] Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			1.3 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
 |