Message ID | 20250613133517.1229722-1-igor.korotin.linux@gmail.com |
---|---|
Headers | show |
Series | rust: Add ACPI match table support for Rust drivers | expand |
On Fri, Jun 13, 2025 at 02:38:42PM +0100, Igor Korotin wrote: > +impl DeviceId { > + const ACPI_ID_LEN: usize = 16; > + > + /// Create a new device id from an ACPI 'id' string. > + pub const fn new(id: &'static CStr) -> Self { > + assert!(id.len() <= Self::ACPI_ID_LEN, "ID exceeds 16 bytes"); Please use build_assert!() for this check. > + let src = id.as_bytes_with_nul(); > + // Replace with `bindings::acpi_device_id::default()` once stabilized for `const`. > + // SAFETY: FFI type is valid to be zero-initialized. > + let mut acpi: bindings::acpi_device_id = unsafe { core::mem::zeroed() }; > + let mut i = 0; > + while i < src.len() { > + acpi.id[i] = src[i]; > + i += 1; > + } > + > + Self(acpi) > + } > +}