On Fri Jun 6, 2025 at 7:06 PM CEST, 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"); > + 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() }; This can be made safe using this series: https://lore.kernel.org/all/20250523145125.523275-1-lossin@xxxxxxxxxx --- Cheers, Benno > + let mut i = 0; > + while i < src.len() { > + acpi.id[i] = src[i]; > + i += 1; > + } > + > + Self(acpi) > + } > +}