mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	Starting with the upcoming Rust 1.80.0 (since upstream commit 35130d7233e9
("Detect pub structs never constructed and unused associated constants
in traits")), the `dead_code` pass detects more cases, which triggers
in the `bindings` crate:
    warning: struct `boot_params` is never constructed
        --> rust/bindings/bindings_generated.rs:10684:12
        |
    10684 | pub struct boot_params {
        |            ^^^^^^^^^^^
        |
        = note: `#[warn(dead_code)]` on by default
As well as in the `uapi` one:
    warning: struct `boot_params` is never constructed
        --> rust/uapi/uapi_generated.rs:10392:12
        |
    10392 | pub struct boot_params {
        |            ^^^^^^^^^^^
        |
        = note: `#[warn(dead_code)]` on by default
These are all expected, since we do not use all the structs in the
bindings that `bindgen` generates from the C headers.
Therefore, allow them.
Reviewed-by: Björn Roy Baron <bjorn3_gh@protonmail.com>
Reviewed-by: Finn Behrens <me@kloenk.dev>
Tested-by: Benno Lossin <benno.lossin@proton.me>
Tested-by: Andreas Hindborg <a.hindborg@samsung.com>
Link: https://lore.kernel.org/r/20240709160615.998336-4-ojeda@kernel.org
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
		
	
			
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
// SPDX-License-Identifier: GPL-2.0
 | 
						|
 | 
						|
//! Bindings.
 | 
						|
//!
 | 
						|
//! Imports the generated bindings by `bindgen`.
 | 
						|
//!
 | 
						|
//! This crate may not be directly used. If you need a kernel C API that is
 | 
						|
//! not ported or wrapped in the `kernel` crate, then do so first instead of
 | 
						|
//! using this crate.
 | 
						|
 | 
						|
#![no_std]
 | 
						|
// See <https://github.com/rust-lang/rust-bindgen/issues/1651>.
 | 
						|
#![cfg_attr(test, allow(deref_nullptr))]
 | 
						|
#![cfg_attr(test, allow(unaligned_references))]
 | 
						|
#![cfg_attr(test, allow(unsafe_op_in_unsafe_fn))]
 | 
						|
#![allow(
 | 
						|
    clippy::all,
 | 
						|
    missing_docs,
 | 
						|
    non_camel_case_types,
 | 
						|
    non_upper_case_globals,
 | 
						|
    non_snake_case,
 | 
						|
    improper_ctypes,
 | 
						|
    unreachable_pub,
 | 
						|
    unsafe_op_in_unsafe_fn
 | 
						|
)]
 | 
						|
 | 
						|
#[allow(dead_code)]
 | 
						|
mod bindings_raw {
 | 
						|
    // Use glob import here to expose all helpers.
 | 
						|
    // Symbols defined within the module will take precedence to the glob import.
 | 
						|
    pub use super::bindings_helper::*;
 | 
						|
    include!(concat!(
 | 
						|
        env!("OBJTREE"),
 | 
						|
        "/rust/bindings/bindings_generated.rs"
 | 
						|
    ));
 | 
						|
}
 | 
						|
 | 
						|
// When both a directly exposed symbol and a helper exists for the same function,
 | 
						|
// the directly exposed symbol is preferred and the helper becomes dead code, so
 | 
						|
// ignore the warning here.
 | 
						|
#[allow(dead_code)]
 | 
						|
mod bindings_helper {
 | 
						|
    // Import the generated bindings for types.
 | 
						|
    use super::bindings_raw::*;
 | 
						|
    include!(concat!(
 | 
						|
        env!("OBJTREE"),
 | 
						|
        "/rust/bindings/bindings_helpers_generated.rs"
 | 
						|
    ));
 | 
						|
}
 | 
						|
 | 
						|
pub use bindings_raw::*;
 |