From 90f24de04dadb11d84a5aaa18ce837cb9be37aec Mon Sep 17 00:00:00 2001 From: Philipp Schuster Date: Sun, 23 Mar 2025 15:45:52 +0100 Subject: [PATCH] clippy: apply latest fixes --- uefi-macros/src/lib.rs | 11 +++----- uefi/src/data_types/strs.rs | 4 +-- uefi/src/mem/aligned_buffer.rs | 2 +- uefi/src/mem/memory_map/impl_.rs | 4 +-- uefi/src/mem/memory_map/mod.rs | 2 +- uefi/src/polyfill.rs | 2 +- uefi/src/proto/ata/mod.rs | 4 +-- uefi/src/proto/boot_policy.rs | 10 ++------ uefi/src/proto/device_path/build.rs | 2 +- uefi/src/proto/loaded_image.rs | 2 +- uefi/src/proto/media/file/info.rs | 6 ++++- uefi/src/proto/media/file/mod.rs | 27 ++++++++++++-------- uefi/src/proto/nvme/mod.rs | 4 +-- uefi/src/proto/scsi/mod.rs | 4 +-- uefi/src/proto/security/memory_protection.rs | 2 +- uefi/src/system.rs | 9 +++---- uefi/src/util.rs | 2 +- xtask/src/device_path/field.rs | 1 + 18 files changed, 49 insertions(+), 49 deletions(-) diff --git a/uefi-macros/src/lib.rs b/uefi-macros/src/lib.rs index 56357b8e..6f23a291 100644 --- a/uefi-macros/src/lib.rs +++ b/uefi-macros/src/lib.rs @@ -69,13 +69,10 @@ pub fn unsafe_protocol(args: TokenStream, input: TokenStream) -> TokenStream { quote!(::uefi::guid!(#lit)) } Expr::Path(ExprPath { path, .. }) => quote!(#path), - _ => { - return err!( - expr, - "macro input must be either a string literal or path to a constant" - ) - .into(); - } + _ => err!( + expr, + "macro input must be either a string literal or path to a constant" + ), }; let item_struct = parse_macro_input!(input as ItemStruct); diff --git a/uefi/src/data_types/strs.rs b/uefi/src/data_types/strs.rs index 0b01552c..16fcf029 100644 --- a/uefi/src/data_types/strs.rs +++ b/uefi/src/data_types/strs.rs @@ -993,10 +993,10 @@ mod tests { fn test_unaligned_cstr16() { let mut buf = [0u16; 6]; let us = unsafe { - let ptr = buf.as_mut_ptr() as *mut u8; + let ptr = buf.as_mut_ptr().cast::(); // Intentionally create an unaligned u16 pointer. This // leaves room for five u16 characters. - let ptr = ptr.add(1) as *mut u16; + let ptr = ptr.add(1).cast::(); // Write out the "test" string. ptr.add(0).write_unaligned(b't'.into()); ptr.add(1).write_unaligned(b'e'.into()); diff --git a/uefi/src/mem/aligned_buffer.rs b/uefi/src/mem/aligned_buffer.rs index c220cf8e..d9beee89 100644 --- a/uefi/src/mem/aligned_buffer.rs +++ b/uefi/src/mem/aligned_buffer.rs @@ -112,7 +112,7 @@ mod tests { #[test] fn test_allocation_alignment() { for request_alignment in [1, 2, 4, 8, 16, 32, 64, 128] { - for request_len in [1 as usize, 32, 64, 128, 1024] { + for request_len in [1_usize, 32, 64, 128, 1024] { let buffer = AlignedBuffer::from_size_align(request_len, request_alignment).unwrap(); assert_eq!(buffer.ptr() as usize % request_alignment, 0); diff --git a/uefi/src/mem/memory_map/impl_.rs b/uefi/src/mem/memory_map/impl_.rs index 63079f7d..ed480198 100644 --- a/uefi/src/mem/memory_map/impl_.rs +++ b/uefi/src/mem/memory_map/impl_.rs @@ -461,13 +461,13 @@ mod tests { ]; /// Returns a copy of [`BASE_MMAP_UNSORTED`] owned on the stack. - fn new_mmap_memory() -> [MemoryDescriptor; 3] { + const fn new_mmap_memory() -> [MemoryDescriptor; 3] { BASE_MMAP_UNSORTED } fn mmap_raw<'a>(memory: &mut [MemoryDescriptor]) -> (&'a mut [u8], MemoryMapMeta) { let desc_size = size_of::(); - let len = memory.len() * desc_size; + let len = core::mem::size_of_val(memory); let ptr = memory.as_mut_ptr().cast::(); let slice = unsafe { core::slice::from_raw_parts_mut(ptr, len) }; let meta = MemoryMapMeta { diff --git a/uefi/src/mem/memory_map/mod.rs b/uefi/src/mem/memory_map/mod.rs index b9297b0e..8fab6334 100644 --- a/uefi/src/mem/memory_map/mod.rs +++ b/uefi/src/mem/memory_map/mod.rs @@ -110,7 +110,7 @@ mod tests_mmap_artificial { fn buffer_to_map(buffer: &mut [MemoryDescriptor]) -> MemoryMapRefMut { let mmap_len = size_of_val(buffer); let mmap = { - unsafe { core::slice::from_raw_parts_mut(buffer.as_mut_ptr() as *mut u8, mmap_len) } + unsafe { core::slice::from_raw_parts_mut(buffer.as_mut_ptr().cast::(), mmap_len) } }; MemoryMapRefMut::new( diff --git a/uefi/src/polyfill.rs b/uefi/src/polyfill.rs index 13207559..438d99fc 100644 --- a/uefi/src/polyfill.rs +++ b/uefi/src/polyfill.rs @@ -18,7 +18,7 @@ pub const unsafe fn maybe_uninit_slice_assume_init_ref(s: &[MaybeUninit]) /// Polyfill for the unstable `MaybeUninit::slice_as_mut_ptr` function. /// /// See . -pub fn maybe_uninit_slice_as_mut_ptr(s: &mut [MaybeUninit]) -> *mut T { +pub const fn maybe_uninit_slice_as_mut_ptr(s: &mut [MaybeUninit]) -> *mut T { s.as_mut_ptr().cast::() } diff --git a/uefi/src/proto/ata/mod.rs b/uefi/src/proto/ata/mod.rs index 32f18a1a..f2c01ece 100644 --- a/uefi/src/proto/ata/mod.rs +++ b/uefi/src/proto/ata/mod.rs @@ -294,7 +294,7 @@ impl<'a> AtaResponse<'a> { /// # Returns /// A reference to the [`AtaStatusBlock`] containing details about the status of the executed operation. #[must_use] - pub fn status(&self) -> &'a AtaStatusBlock { + pub const fn status(&self) -> &'a AtaStatusBlock { unsafe { self.req .asb @@ -310,7 +310,7 @@ impl<'a> AtaResponse<'a> { /// # Returns /// `Option<&[u8]>`: A slice of the data read from the device, or `None` if no read buffer was used. #[must_use] - pub fn read_buffer(&self) -> Option<&'a [u8]> { + pub const fn read_buffer(&self) -> Option<&'a [u8]> { if self.req.packet.in_data_buffer.is_null() { return None; } diff --git a/uefi/src/proto/boot_policy.rs b/uefi/src/proto/boot_policy.rs index 673068fb..b70028be 100644 --- a/uefi/src/proto/boot_policy.rs +++ b/uefi/src/proto/boot_policy.rs @@ -51,14 +51,8 @@ mod tests { #[test] fn boot_policy() { - assert_eq!( - BootPolicy::try_from(Boolean::TRUE).unwrap(), - BootPolicy::BootSelection - ); - assert_eq!( - BootPolicy::try_from(Boolean::FALSE).unwrap(), - BootPolicy::ExactMatch - ); + assert_eq!(BootPolicy::from(Boolean::TRUE), BootPolicy::BootSelection); + assert_eq!(BootPolicy::from(Boolean::FALSE), BootPolicy::ExactMatch); assert_eq!(Boolean::from(BootPolicy::BootSelection), Boolean::TRUE); assert_eq!(Boolean::from(BootPolicy::ExactMatch), Boolean::FALSE); } diff --git a/uefi/src/proto/device_path/build.rs b/uefi/src/proto/device_path/build.rs index 4707e3ad..bed7c92a 100644 --- a/uefi/src/proto/device_path/build.rs +++ b/uefi/src/proto/device_path/build.rs @@ -248,7 +248,7 @@ mod tests { }; use core::slice; - fn path_to_bytes(path: &DevicePath) -> &[u8] { + const fn path_to_bytes(path: &DevicePath) -> &[u8] { unsafe { slice::from_raw_parts(path.as_ffi_ptr().cast::(), size_of_val(path)) } } diff --git a/uefi/src/proto/loaded_image.rs b/uefi/src/proto/loaded_image.rs index 3ab91c4a..df43d53e 100644 --- a/uefi/src/proto/loaded_image.rs +++ b/uefi/src/proto/loaded_image.rs @@ -95,7 +95,7 @@ impl LoadedImage { /// /// [`load_options_as_cstr16`]: `Self::load_options_as_cstr16` #[must_use] - pub fn load_options_as_bytes(&self) -> Option<&[u8]> { + pub const fn load_options_as_bytes(&self) -> Option<&[u8]> { if self.0.load_options.is_null() { None } else { diff --git a/uefi/src/proto/media/file/info.rs b/uefi/src/proto/media/file/info.rs index 2f8feeb0..51811d78 100644 --- a/uefi/src/proto/media/file/info.rs +++ b/uefi/src/proto/media/file/info.rs @@ -436,7 +436,11 @@ mod tests { assert_eq!(align_of_val(info), T::alignment()); // Check the hardcoded name slice offset. assert_eq!( - unsafe { (name.as_ptr() as *const u8).offset_from(info as *const _ as *const u8) }, + unsafe { + name.as_ptr() + .cast::() + .offset_from(core::ptr::from_ref(info).cast::()) + }, T::name_offset() as isize ); } diff --git a/uefi/src/proto/media/file/mod.rs b/uefi/src/proto/media/file/mod.rs index d138d70a..5fca8f3e 100644 --- a/uefi/src/proto/media/file/mod.rs +++ b/uefi/src/proto/media/file/mod.rs @@ -414,7 +414,11 @@ mod tests { Status::BUFFER_TOO_SMALL } else { unsafe { - ptr::copy_nonoverlapping((info as *const FileInfo).cast(), buffer, required_size); + ptr::copy_nonoverlapping( + core::ptr::from_ref::(info).cast(), + buffer, + required_size, + ); } unsafe { *buffer_size = required_size; @@ -423,7 +427,7 @@ mod tests { } } - extern "efiapi" fn stub_open( + const extern "efiapi" fn stub_open( _this: *mut FileProtocolV1, _new_handle: *mut *mut FileProtocolV1, _filename: *const uefi_raw::Char16, @@ -433,15 +437,15 @@ mod tests { Status::UNSUPPORTED } - extern "efiapi" fn stub_close(_this: *mut FileProtocolV1) -> Status { + const extern "efiapi" fn stub_close(_this: *mut FileProtocolV1) -> Status { Status::SUCCESS } - extern "efiapi" fn stub_delete(_this: *mut FileProtocolV1) -> Status { + const extern "efiapi" fn stub_delete(_this: *mut FileProtocolV1) -> Status { Status::UNSUPPORTED } - extern "efiapi" fn stub_read( + const extern "efiapi" fn stub_read( _this: *mut FileProtocolV1, _buffer_size: *mut usize, _buffer: *mut c_void, @@ -449,7 +453,7 @@ mod tests { Status::UNSUPPORTED } - extern "efiapi" fn stub_write( + const extern "efiapi" fn stub_write( _this: *mut FileProtocolV1, _buffer_size: *mut usize, _buffer: *const c_void, @@ -457,18 +461,21 @@ mod tests { Status::UNSUPPORTED } - extern "efiapi" fn stub_get_position( + const extern "efiapi" fn stub_get_position( _this: *const FileProtocolV1, _position: *mut u64, ) -> Status { Status::UNSUPPORTED } - extern "efiapi" fn stub_set_position(_this: *mut FileProtocolV1, _position: u64) -> Status { + const extern "efiapi" fn stub_set_position( + _this: *mut FileProtocolV1, + _position: u64, + ) -> Status { Status::UNSUPPORTED } - extern "efiapi" fn stub_set_info( + const extern "efiapi" fn stub_set_info( _this: *mut FileProtocolV1, _information_type: *const Guid, _buffer_size: usize, @@ -477,7 +484,7 @@ mod tests { Status::UNSUPPORTED } - extern "efiapi" fn stub_flush(_this: *mut FileProtocolV1) -> Status { + const extern "efiapi" fn stub_flush(_this: *mut FileProtocolV1) -> Status { Status::UNSUPPORTED } } diff --git a/uefi/src/proto/nvme/mod.rs b/uefi/src/proto/nvme/mod.rs index f8477312..1834822c 100644 --- a/uefi/src/proto/nvme/mod.rs +++ b/uefi/src/proto/nvme/mod.rs @@ -247,7 +247,7 @@ impl<'buffers> NvmeResponse<'buffers> { /// # Returns /// `Option<&[u8]>`: A slice of the transfer buffer, or `None` if the request was started without. #[must_use] - pub fn transfer_buffer(&self) -> Option<&'buffers [u8]> { + pub const fn transfer_buffer(&self) -> Option<&'buffers [u8]> { if self.req.packet.transfer_buffer.is_null() { return None; } @@ -264,7 +264,7 @@ impl<'buffers> NvmeResponse<'buffers> { /// # Returns /// `Option<&[u8]>`: A slice of the metadata buffer, or `None` if the request was started without. #[must_use] - pub fn metadata_buffer(&self) -> Option<&'buffers [u8]> { + pub const fn metadata_buffer(&self) -> Option<&'buffers [u8]> { if self.req.packet.meta_data_buffer.is_null() { return None; } diff --git a/uefi/src/proto/scsi/mod.rs b/uefi/src/proto/scsi/mod.rs index a96e5627..ceff0053 100644 --- a/uefi/src/proto/scsi/mod.rs +++ b/uefi/src/proto/scsi/mod.rs @@ -300,7 +300,7 @@ impl<'a> ScsiResponse<'a> { /// # Safety /// - If the buffer pointer is `NULL`, the method returns `None` and avoids dereferencing it. #[must_use] - pub fn read_buffer(&self) -> Option<&'a [u8]> { + pub const fn read_buffer(&self) -> Option<&'a [u8]> { if self.0.packet.in_data_buffer.is_null() { return None; } @@ -320,7 +320,7 @@ impl<'a> ScsiResponse<'a> { /// # Safety /// - If the buffer pointer is `NULL`, the method returns `None` and avoids dereferencing it. #[must_use] - pub fn sense_data(&self) -> Option<&'a [u8]> { + pub const fn sense_data(&self) -> Option<&'a [u8]> { if self.0.packet.sense_data.is_null() { return None; } diff --git a/uefi/src/proto/security/memory_protection.rs b/uefi/src/proto/security/memory_protection.rs index 3481195b..86423950 100644 --- a/uefi/src/proto/security/memory_protection.rs +++ b/uefi/src/proto/security/memory_protection.rs @@ -92,7 +92,7 @@ impl MemoryProtection { } /// Convert a byte `Range` to `(base_address, length)`. -fn range_to_base_and_len(r: Range) -> (PhysicalAddress, PhysicalAddress) { +const fn range_to_base_and_len(r: Range) -> (PhysicalAddress, PhysicalAddress) { (r.start, r.end.checked_sub(r.start).unwrap()) } diff --git a/uefi/src/system.rs b/uefi/src/system.rs index c6603e33..9f5eb82f 100644 --- a/uefi/src/system.rs +++ b/uefi/src/system.rs @@ -178,12 +178,9 @@ mod tests { with_config_table(|slice| { for i in slice { - match i.guid { - ConfigTableEntry::ACPI2_GUID => { - acpi2_address = Some(i.address); - break; - } - _ => {} + if i.guid == ConfigTableEntry::ACPI2_GUID { + acpi2_address = Some(i.address); + break; } } }); diff --git a/uefi/src/util.rs b/uefi/src/util.rs index 4abe0cda..0619f80b 100644 --- a/uefi/src/util.rs +++ b/uefi/src/util.rs @@ -4,7 +4,7 @@ use core::ptr::{self, NonNull}; /// Copy the bytes of `val` to `ptr`, then advance pointer to just after the /// newly-copied bytes. -pub unsafe fn ptr_write_unaligned_and_add(ptr: &mut *mut u8, val: T) { +pub const unsafe fn ptr_write_unaligned_and_add(ptr: &mut *mut u8, val: T) { unsafe { ptr.cast::().write_unaligned(val); *ptr = ptr.add(size_of::()); diff --git a/xtask/src/device_path/field.rs b/xtask/src/device_path/field.rs index b835ef9d..fdb54c42 100644 --- a/xtask/src/device_path/field.rs +++ b/xtask/src/device_path/field.rs @@ -139,6 +139,7 @@ impl ToTokens for PackedType { } } +#[allow(clippy::large_enum_variant)] enum BuildType { None, Packed,