From bfe3c6d420b01a92162a9e85161046fc6836ece5 Mon Sep 17 00:00:00 2001 From: Philipp Schuster Date: Sun, 23 Mar 2025 13:29:23 +0100 Subject: [PATCH 1/8] rust: update to edition 2024 --- Cargo.toml | 4 +-- rustfmt.toml | 2 ++ template/Cargo.toml | 2 +- uefi-raw/Cargo.toml | 2 +- uefi-std-example/Cargo.toml | 2 +- uefi-test-runner/Cargo.toml | 2 +- uefi-test-runner/examples/sierpinski.rs | 2 +- uefi-test-runner/src/proto/console/gop.rs | 30 ++++++++++++----------- uefi-test-runner/src/proto/load.rs | 10 +++++--- 9 files changed, 32 insertions(+), 24 deletions(-) create mode 100644 rustfmt.toml diff --git a/Cargo.toml b/Cargo.toml index e5b05cf4f..9d1aeb418 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,11 +13,11 @@ members = [ [workspace.package] authors = ["The Rust OSDev team"] categories = ["embedded", "no-std", "api-bindings"] -edition = "2021" +edition = "2024" keywords = ["uefi", "efi"] license = "MIT OR Apache-2.0" repository = "https://github.com/rust-osdev/uefi-rs" -rust-version = "1.81" +rust-version = "1.85.1" [workspace.dependencies] bitflags = "2.0.0" diff --git a/rustfmt.toml b/rustfmt.toml new file mode 100644 index 000000000..a22f268fc --- /dev/null +++ b/rustfmt.toml @@ -0,0 +1,2 @@ +# Temporarily for this commit. +style_edition = "2021" diff --git a/template/Cargo.toml b/template/Cargo.toml index 9ed10f05f..87a237b04 100644 --- a/template/Cargo.toml +++ b/template/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "uefi_app" version = "0.1.0" -edition = "2021" +edition = "2024" publish = false [dependencies] diff --git a/uefi-raw/Cargo.toml b/uefi-raw/Cargo.toml index d8d806920..b77b5530f 100644 --- a/uefi-raw/Cargo.toml +++ b/uefi-raw/Cargo.toml @@ -16,7 +16,7 @@ license.workspace = true repository.workspace = true # uefi-raw is much less likely to need the latest bleeding-edge features. # Hence, it is okay to not use the workspace MSRV. -rust-version = "1.77" +rust-version = "1.85.1" [dependencies] bitflags.workspace = true diff --git a/uefi-std-example/Cargo.toml b/uefi-std-example/Cargo.toml index 5a2e3e293..9ec083c34 100644 --- a/uefi-std-example/Cargo.toml +++ b/uefi-std-example/Cargo.toml @@ -3,7 +3,7 @@ name = "uefi-std-example" version = "0.1.0" authors = ["The Rust OSDev team"] publish = false -edition = "2021" +edition = "2024" [dependencies] # Attention: Don't activate the panic_handler feature, as it will clash with diff --git a/uefi-test-runner/Cargo.toml b/uefi-test-runner/Cargo.toml index f52406776..d608362a4 100644 --- a/uefi-test-runner/Cargo.toml +++ b/uefi-test-runner/Cargo.toml @@ -3,7 +3,7 @@ name = "uefi-test-runner" version = "0.2.0" authors = ["The Rust OSDev team"] publish = false -edition = "2021" +edition = "2024" [dependencies] uefi-raw = { path = "../uefi-raw" } diff --git a/uefi-test-runner/examples/sierpinski.rs b/uefi-test-runner/examples/sierpinski.rs index 92a7b7450..b4514c470 100644 --- a/uefi-test-runner/examples/sierpinski.rs +++ b/uefi-test-runner/examples/sierpinski.rs @@ -11,7 +11,7 @@ use alloc::vec::Vec; use uefi::prelude::*; use uefi::proto::console::gop::{BltOp, BltPixel, BltRegion, GraphicsOutput}; use uefi::proto::rng::Rng; -use uefi::{boot, Result}; +use uefi::{Result, boot}; #[derive(Clone, Copy)] struct Point { diff --git a/uefi-test-runner/src/proto/console/gop.rs b/uefi-test-runner/src/proto/console/gop.rs index 6e490cec6..db42ddfaa 100644 --- a/uefi-test-runner/src/proto/console/gop.rs +++ b/uefi-test-runner/src/proto/console/gop.rs @@ -8,18 +8,20 @@ pub unsafe fn test() { info!("Running graphics output protocol test"); let handle = boot::get_handle_for_protocol::().expect("missing GraphicsOutput protocol"); - let gop = &mut boot::open_protocol::( - OpenProtocolParams { - handle, - agent: boot::image_handle(), - controller: None, - }, - // For this test, don't open in exclusive mode. That - // would break the connection between stdout and the - // video console. - OpenProtocolAttributes::GetProtocol, - ) - .expect("failed to open Graphics Output Protocol"); + let gop = unsafe { + &mut boot::open_protocol::( + OpenProtocolParams { + handle, + agent: boot::image_handle(), + controller: None, + }, + // For this test, don't open in exclusive mode. That + // would break the connection between stdout and the + // video console. + OpenProtocolAttributes::GetProtocol, + ) + .expect("failed to open Graphics Output Protocol") + }; set_graphics_mode(gop); fill_color(gop); @@ -73,10 +75,10 @@ fn draw_fb(gop: &mut GraphicsOutput) { type PixelWriter = unsafe fn(&mut FrameBuffer, usize, [u8; 3]); unsafe fn write_pixel_rgb(fb: &mut FrameBuffer, pixel_base: usize, rgb: [u8; 3]) { - fb.write_value(pixel_base, rgb); + unsafe { fb.write_value(pixel_base, rgb) } } unsafe fn write_pixel_bgr(fb: &mut FrameBuffer, pixel_base: usize, rgb: [u8; 3]) { - fb.write_value(pixel_base, [rgb[2], rgb[1], rgb[0]]); + unsafe { fb.write_value(pixel_base, [rgb[2], rgb[1], rgb[0]]) } } let write_pixel: PixelWriter = match mi.pixel_format() { PixelFormat::Rgb => write_pixel_rgb, diff --git a/uefi-test-runner/src/proto/load.rs b/uefi-test-runner/src/proto/load.rs index 176025ada..c025239f0 100644 --- a/uefi-test-runner/src/proto/load.rs +++ b/uefi-test-runner/src/proto/load.rs @@ -23,7 +23,7 @@ unsafe extern "efiapi" fn raw_load_file( buffer: *mut c_void, ) -> Status { log::debug!("Called static extern \"efiapi\" `raw_load_file` glue function"); - let this = this.cast::().as_ref().unwrap(); + let this = unsafe { this.cast::().as_ref().unwrap() }; this.load_file(buffer_size, buffer.cast()) } @@ -60,11 +60,15 @@ impl CustomLoadFile2Protocol { } unsafe fn install_protocol(handle: Handle, guid: Guid, protocol: &mut CustomLoadFile2Protocol) { - boot::install_protocol_interface(Some(handle), &guid, addr_of!(*protocol).cast()).unwrap(); + unsafe { + boot::install_protocol_interface(Some(handle), &guid, addr_of!(*protocol).cast()).unwrap(); + } } unsafe fn uninstall_protocol(handle: Handle, guid: Guid, protocol: &mut CustomLoadFile2Protocol) { - boot::uninstall_protocol_interface(handle, &guid, addr_of!(*protocol).cast()).unwrap(); + unsafe { + boot::uninstall_protocol_interface(handle, &guid, addr_of!(*protocol).cast()).unwrap(); + } } /// This tests the LoadFile and LoadFile2 protocols. As this protocol is not From 5cbf1a1c5e31c82aa244dd2ebf6d59d00fb6d25a Mon Sep 17 00:00:00 2001 From: Philipp Schuster Date: Sun, 23 Mar 2025 15:10:32 +0100 Subject: [PATCH 2/8] rust: fix device path code generation for 2024 edition rust: fix unsafe entry attribute --- uefi/src/proto/device_path/device_path_gen.rs | 56 +++++++++---------- xtask/src/device_path/node.rs | 4 +- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/uefi/src/proto/device_path/device_path_gen.rs b/uefi/src/proto/device_path/device_path_gen.rs index d30b93ee8..ef02e1da3 100644 --- a/uefi/src/proto/device_path/device_path_gen.rs +++ b/uefi/src/proto/device_path/device_path_gen.rs @@ -274,11 +274,11 @@ pub mod hardware { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Vendor") .field("vendor_guid", &{ self.vendor_guid }) - .field("vendor_defined_data", { + .field("vendor_defined_data", &{ let ptr = addr_of!(self.vendor_defined_data); let (ptr, len) = ptr_meta::to_raw_parts(ptr); let byte_len = size_of::() * len; - unsafe { &slice::from_raw_parts(ptr.cast::(), byte_len) } + unsafe { slice::from_raw_parts(ptr.cast::(), byte_len) } }) .finish() } @@ -580,11 +580,11 @@ pub mod acpi { impl fmt::Debug for Adr { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Adr") - .field("adr", { + .field("adr", &{ let ptr = addr_of!(self.adr); let (ptr, len) = ptr_meta::to_raw_parts(ptr); let byte_len = size_of::() * len; - unsafe { &slice::from_raw_parts(ptr.cast::(), byte_len) } + unsafe { slice::from_raw_parts(ptr.cast::(), byte_len) } }) .finish() } @@ -1187,11 +1187,11 @@ pub mod messaging { .field("interface_number", &{ self.interface_number }) .field("device_vendor_id", &{ self.device_vendor_id }) .field("device_product_id", &{ self.device_product_id }) - .field("serial_number", { + .field("serial_number", &{ let ptr = addr_of!(self.serial_number); let (ptr, len) = ptr_meta::to_raw_parts(ptr); let byte_len = size_of::() * len; - unsafe { &slice::from_raw_parts(ptr.cast::(), byte_len) } + unsafe { slice::from_raw_parts(ptr.cast::(), byte_len) } }) .finish() } @@ -1841,11 +1841,11 @@ pub mod messaging { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Vendor") .field("vendor_guid", &{ self.vendor_guid }) - .field("vendor_defined_data", { + .field("vendor_defined_data", &{ let ptr = addr_of!(self.vendor_defined_data); let (ptr, len) = ptr_meta::to_raw_parts(ptr); let byte_len = size_of::() * len; - unsafe { &slice::from_raw_parts(ptr.cast::(), byte_len) } + unsafe { slice::from_raw_parts(ptr.cast::(), byte_len) } }) .finish() } @@ -1997,11 +1997,11 @@ pub mod messaging { .field("options", &{ self.options }) .field("logical_unit_number", &{ self.logical_unit_number }) .field("target_portal_group_tag", &{ self.target_portal_group_tag }) - .field("iscsi_target_name", { + .field("iscsi_target_name", &{ let ptr = addr_of!(self.iscsi_target_name); let (ptr, len) = ptr_meta::to_raw_parts(ptr); let byte_len = size_of::() * len; - unsafe { &slice::from_raw_parts(ptr.cast::(), byte_len) } + unsafe { slice::from_raw_parts(ptr.cast::(), byte_len) } }) .finish() } @@ -2104,11 +2104,11 @@ pub mod messaging { impl fmt::Debug for Uri { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Uri") - .field("value", { + .field("value", &{ let ptr = addr_of!(self.value); let (ptr, len) = ptr_meta::to_raw_parts(ptr); let byte_len = size_of::() * len; - unsafe { &slice::from_raw_parts(ptr.cast::(), byte_len) } + unsafe { slice::from_raw_parts(ptr.cast::(), byte_len) } }) .finish() } @@ -2435,11 +2435,11 @@ pub mod messaging { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Dns") .field("address_type", &{ self.address_type }) - .field("addresses", { + .field("addresses", &{ let ptr = addr_of!(self.addresses); let (ptr, len) = ptr_meta::to_raw_parts(ptr); let byte_len = size_of::() * len; - unsafe { &slice::from_raw_parts(ptr.cast::(), byte_len) } + unsafe { slice::from_raw_parts(ptr.cast::(), byte_len) } }) .finish() } @@ -2540,11 +2540,11 @@ pub mod messaging { f.debug_struct("RestService") .field("service_type", &{ self.service_type }) .field("access_mode", &{ self.access_mode }) - .field("vendor_guid_and_data", { + .field("vendor_guid_and_data", &{ let ptr = addr_of!(self.vendor_guid_and_data); let (ptr, len) = ptr_meta::to_raw_parts(ptr); let byte_len = size_of::() * len; - unsafe { &slice::from_raw_parts(ptr.cast::(), byte_len) } + unsafe { slice::from_raw_parts(ptr.cast::(), byte_len) } }) .finish() } @@ -2611,11 +2611,11 @@ pub mod messaging { f.debug_struct("NvmeOfNamespace") .field("nidt", &{ self.nidt }) .field("nid", &{ self.nid }) - .field("subsystem_nqn", { + .field("subsystem_nqn", &{ let ptr = addr_of!(self.subsystem_nqn); let (ptr, len) = ptr_meta::to_raw_parts(ptr); let byte_len = size_of::() * len; - unsafe { &slice::from_raw_parts(ptr.cast::(), byte_len) } + unsafe { slice::from_raw_parts(ptr.cast::(), byte_len) } }) .finish() } @@ -2888,11 +2888,11 @@ pub mod media { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Vendor") .field("vendor_guid", &{ self.vendor_guid }) - .field("vendor_defined_data", { + .field("vendor_defined_data", &{ let ptr = addr_of!(self.vendor_defined_data); let (ptr, len) = ptr_meta::to_raw_parts(ptr); let byte_len = size_of::() * len; - unsafe { &slice::from_raw_parts(ptr.cast::(), byte_len) } + unsafe { slice::from_raw_parts(ptr.cast::(), byte_len) } }) .finish() } @@ -2943,11 +2943,11 @@ pub mod media { impl fmt::Debug for FilePath { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("FilePath") - .field("path_name", { + .field("path_name", &{ let ptr = addr_of!(self.path_name); let (ptr, len) = ptr_meta::to_raw_parts(ptr); let byte_len = size_of::() * len; - unsafe { &slice::from_raw_parts(ptr.cast::(), byte_len) } + unsafe { slice::from_raw_parts(ptr.cast::(), byte_len) } }) .finish() } @@ -3038,11 +3038,11 @@ pub mod media { impl fmt::Debug for PiwgFirmwareFile { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("PiwgFirmwareFile") - .field("data", { + .field("data", &{ let ptr = addr_of!(self.data); let (ptr, len) = ptr_meta::to_raw_parts(ptr); let byte_len = size_of::() * len; - unsafe { &slice::from_raw_parts(ptr.cast::(), byte_len) } + unsafe { slice::from_raw_parts(ptr.cast::(), byte_len) } }) .finish() } @@ -3092,11 +3092,11 @@ pub mod media { impl fmt::Debug for PiwgFirmwareVolume { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("PiwgFirmwareVolume") - .field("data", { + .field("data", &{ let ptr = addr_of!(self.data); let (ptr, len) = ptr_meta::to_raw_parts(ptr); let byte_len = size_of::() * len; - unsafe { &slice::from_raw_parts(ptr.cast::(), byte_len) } + unsafe { slice::from_raw_parts(ptr.cast::(), byte_len) } }) .finish() } @@ -3332,11 +3332,11 @@ pub mod bios_boot_spec { f.debug_struct("BootSpecification") .field("device_type", &{ self.device_type }) .field("status_flag", &{ self.status_flag }) - .field("description_string", { + .field("description_string", &{ let ptr = addr_of!(self.description_string); let (ptr, len) = ptr_meta::to_raw_parts(ptr); let byte_len = size_of::() * len; - unsafe { &slice::from_raw_parts(ptr.cast::(), byte_len) } + unsafe { slice::from_raw_parts(ptr.cast::(), byte_len) } }) .finish() } diff --git a/xtask/src/device_path/node.rs b/xtask/src/device_path/node.rs index 0a6746c37..cc65172c9 100644 --- a/xtask/src/device_path/node.rs +++ b/xtask/src/device_path/node.rs @@ -208,11 +208,11 @@ impl Node { // It's not trivial to nicely format the DST data since // the slice might be unaligned. Treat it as a byte // slice instead. - quote!({ + quote!(&{ let ptr = addr_of!(#field_val); let (ptr, len) = ptr_meta::to_raw_parts(ptr); let byte_len = size_of::<#slice_elem_ty>() * len; - unsafe { &slice::from_raw_parts(ptr.cast::(), byte_len) } + unsafe { slice::from_raw_parts(ptr.cast::(), byte_len) } }) } else { // Wrap in `{...}` to make a copy of the (potentially From 907c63c2aad29f1b711ec8bbf996217153603da6 Mon Sep 17 00:00:00 2001 From: Philipp Schuster Date: Sun, 23 Mar 2025 15:38:32 +0100 Subject: [PATCH 3/8] rust: fix unsafe entry attribute for 2024 edition --- uefi-macros/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/uefi-macros/src/lib.rs b/uefi-macros/src/lib.rs index 94bb01f0d..76d19df90 100644 --- a/uefi-macros/src/lib.rs +++ b/uefi-macros/src/lib.rs @@ -215,7 +215,7 @@ pub fn entry(args: TokenStream, input: TokenStream) -> TokenStream { let result = quote! { #fn_type_check - #[export_name = "efi_main"] + #[unsafe(export_name = "efi_main")] #f }; From 83412b60a08ff3a01b82c8f2cae6474d807ec6c1 Mon Sep 17 00:00:00 2001 From: Philipp Schuster Date: Sun, 23 Mar 2025 13:29:38 +0100 Subject: [PATCH 4/8] rustfmt: update to edition 2024 We can delete rustfmt.toml as the style version defaults to the crate's rust edition. --- rustfmt.toml | 2 - uefi-macros/src/lib.rs | 8 +- uefi-raw/src/lib.rs | 2 +- uefi-raw/src/protocol/ata.rs | 2 +- uefi-raw/src/protocol/block.rs | 2 +- uefi-raw/src/protocol/console.rs | 2 +- uefi-raw/src/protocol/console/serial.rs | 2 +- uefi-raw/src/protocol/device_path.rs | 2 +- uefi-raw/src/protocol/disk.rs | 2 +- uefi-raw/src/protocol/driver.rs | 2 +- uefi-raw/src/protocol/file_system.rs | 2 +- uefi-raw/src/protocol/firmware_volume.rs | 2 +- uefi-raw/src/protocol/hii/database.rs | 2 +- uefi-raw/src/protocol/loaded_image.rs | 2 +- uefi-raw/src/protocol/media.rs | 2 +- uefi-raw/src/protocol/memory_protection.rs | 2 +- uefi-raw/src/protocol/misc.rs | 2 +- uefi-raw/src/protocol/network/dhcp4.rs | 2 +- uefi-raw/src/protocol/network/http.rs | 2 +- uefi-raw/src/protocol/network/ip4_config2.rs | 2 +- uefi-raw/src/protocol/network/pxe.rs | 2 +- uefi-raw/src/protocol/network/snp.rs | 2 +- uefi-raw/src/protocol/network/tls.rs | 2 +- uefi-raw/src/protocol/nvme.rs | 2 +- uefi-raw/src/protocol/rng.rs | 2 +- uefi-raw/src/protocol/scsi.rs | 2 +- uefi-raw/src/protocol/shell_params.rs | 2 +- uefi-raw/src/protocol/string.rs | 2 +- uefi-raw/src/protocol/tcg/v1.rs | 2 +- uefi-raw/src/protocol/tcg/v2.rs | 2 +- uefi-raw/src/protocol/usb/host_controller.rs | 2 +- uefi-raw/src/protocol/usb/io.rs | 2 +- uefi-raw/src/table/runtime.rs | 4 +- uefi-raw/src/table/system.rs | 2 +- uefi-test-runner/src/bin/shell_launcher.rs | 2 +- uefi-test-runner/src/boot/misc.rs | 2 +- uefi-test-runner/src/boot/mod.rs | 4 +- uefi-test-runner/src/fs/mod.rs | 2 +- uefi-test-runner/src/main.rs | 2 +- uefi-test-runner/src/proto/ata/pass_thru.rs | 2 +- uefi-test-runner/src/proto/console/gop.rs | 2 +- uefi-test-runner/src/proto/console/serial.rs | 2 +- uefi-test-runner/src/proto/debug.rs | 8 +- uefi-test-runner/src/proto/device_path.rs | 20 +++-- uefi-test-runner/src/proto/driver.rs | 10 ++- uefi-test-runner/src/proto/load.rs | 4 +- uefi-test-runner/src/proto/media.rs | 8 +- uefi-test-runner/src/proto/mod.rs | 16 ++-- uefi-test-runner/src/proto/network/http.rs | 4 +- uefi-test-runner/src/proto/network/pxe.rs | 4 +- uefi-test-runner/src/proto/network/snp.rs | 14 ++-- uefi-test-runner/src/proto/nvme/pass_thru.rs | 2 +- uefi-test-runner/src/proto/pi/mp.rs | 2 +- uefi-test-runner/src/proto/scsi/pass_thru.rs | 2 +- .../src/proto/string/unicode_collation.rs | 2 +- uefi-test-runner/src/proto/tcg.rs | 11 +-- uefi-test-runner/src/runtime/vars.rs | 2 +- uefi/src/boot.rs | 4 +- uefi/src/data_types/mod.rs | 10 +-- uefi/src/data_types/owned_strs.rs | 2 +- uefi/src/data_types/strs.rs | 4 +- uefi/src/fs/dir_entry_iter.rs | 2 +- uefi/src/fs/file_system/fs.rs | 2 +- uefi/src/fs/path/mod.rs | 4 +- uefi/src/fs/path/pathbuf.rs | 2 +- uefi/src/fs/path/validation.rs | 4 +- uefi/src/lib.rs | 2 +- uefi/src/mem/aligned_buffer.rs | 2 +- uefi/src/mem/memory_map/impl_.rs | 4 +- uefi/src/mem/util.rs | 4 +- uefi/src/prelude.rs | 2 +- uefi/src/proto/ata/pass_thru.rs | 4 +- uefi/src/proto/console/gop.rs | 2 +- uefi/src/proto/device_path/mod.rs | 4 +- uefi/src/proto/device_path/util.rs | 2 +- uefi/src/proto/driver/component_name.rs | 22 +++-- uefi/src/proto/media/file/dir.rs | 2 +- uefi/src/proto/media/file/info.rs | 2 +- uefi/src/proto/media/load_file.rs | 4 +- uefi/src/proto/media/partition.rs | 2 +- uefi/src/proto/network/http.rs | 2 +- uefi/src/proto/network/ip4config2.rs | 2 +- uefi/src/proto/network/snp.rs | 2 +- uefi/src/proto/nvme/pass_thru.rs | 4 +- uefi/src/proto/scsi/pass_thru.rs | 4 +- uefi/src/proto/shell_params.rs | 2 +- uefi/src/proto/string/unicode_collation.rs | 2 +- uefi/src/proto/tcg/v2.rs | 2 +- uefi/src/result/status.rs | 8 +- uefi/src/runtime.rs | 2 +- uefi/src/table/cfg.rs | 2 +- xtask/src/cargo.rs | 2 +- xtask/src/check_raw.rs | 84 ++++++++++--------- xtask/src/device_path/field.rs | 2 +- xtask/src/device_path/group.rs | 2 +- xtask/src/device_path/mod.rs | 4 +- xtask/src/device_path/util.rs | 2 +- xtask/src/disk.rs | 2 +- xtask/src/main.rs | 2 +- xtask/src/qemu.rs | 4 +- xtask/src/util.rs | 2 +- 101 files changed, 231 insertions(+), 202 deletions(-) delete mode 100644 rustfmt.toml diff --git a/rustfmt.toml b/rustfmt.toml deleted file mode 100644 index a22f268fc..000000000 --- a/rustfmt.toml +++ /dev/null @@ -1,2 +0,0 @@ -# Temporarily for this commit. -style_edition = "2021" diff --git a/uefi-macros/src/lib.rs b/uefi-macros/src/lib.rs index 76d19df90..56357b8e1 100644 --- a/uefi-macros/src/lib.rs +++ b/uefi-macros/src/lib.rs @@ -7,11 +7,11 @@ extern crate proc_macro; use proc_macro::TokenStream; use proc_macro2::TokenStream as TokenStream2; -use quote::{quote, quote_spanned, TokenStreamExt}; +use quote::{TokenStreamExt, quote, quote_spanned}; use syn::spanned::Spanned; use syn::{ - parse_macro_input, parse_quote, parse_quote_spanned, Error, Expr, ExprLit, ExprPath, ItemFn, - ItemStruct, Lit, Visibility, + Error, Expr, ExprLit, ExprPath, ItemFn, ItemStruct, Lit, Visibility, parse_macro_input, + parse_quote, parse_quote_spanned, }; macro_rules! err { @@ -74,7 +74,7 @@ pub fn unsafe_protocol(args: TokenStream, input: TokenStream) -> TokenStream { expr, "macro input must be either a string literal or path to a constant" ) - .into() + .into(); } }; diff --git a/uefi-raw/src/lib.rs b/uefi-raw/src/lib.rs index 7f8050b56..a67ac564d 100644 --- a/uefi-raw/src/lib.rs +++ b/uefi-raw/src/lib.rs @@ -34,7 +34,7 @@ pub mod time; mod status; pub use status::Status; -pub use uguid::{guid, Guid}; +pub use uguid::{Guid, guid}; use core::ffi::c_void; use core::fmt::{self, Debug, Formatter}; diff --git a/uefi-raw/src/protocol/ata.rs b/uefi-raw/src/protocol/ata.rs index b49b86e37..5d7c2b1c5 100644 --- a/uefi-raw/src/protocol/ata.rs +++ b/uefi-raw/src/protocol/ata.rs @@ -3,7 +3,7 @@ use super::device_path::DevicePathProtocol; use crate::{Event, Status}; use core::ffi::c_void; -use uguid::{guid, Guid}; +use uguid::{Guid, guid}; bitflags::bitflags! { /// ATA Controller attributes. diff --git a/uefi-raw/src/protocol/block.rs b/uefi-raw/src/protocol/block.rs index 571aa71a4..fb6a98fa4 100644 --- a/uefi-raw/src/protocol/block.rs +++ b/uefi-raw/src/protocol/block.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use crate::{guid, Boolean, Guid, Status}; +use crate::{Boolean, Guid, Status, guid}; use core::ffi::c_void; /// Logical block address. diff --git a/uefi-raw/src/protocol/console.rs b/uefi-raw/src/protocol/console.rs index 86b2332dd..c34f7c0ae 100644 --- a/uefi-raw/src/protocol/console.rs +++ b/uefi-raw/src/protocol/console.rs @@ -2,7 +2,7 @@ pub mod serial; -use crate::{guid, Boolean, Char16, Event, Guid, PhysicalAddress, Status}; +use crate::{Boolean, Char16, Event, Guid, PhysicalAddress, Status, guid}; use bitflags::bitflags; use core::ptr; diff --git a/uefi-raw/src/protocol/console/serial.rs b/uefi-raw/src/protocol/console/serial.rs index 0050f209a..675f5570d 100644 --- a/uefi-raw/src/protocol/console/serial.rs +++ b/uefi-raw/src/protocol/console/serial.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use crate::{guid, Guid, Status}; +use crate::{Guid, Status, guid}; use bitflags::bitflags; bitflags! { diff --git a/uefi-raw/src/protocol/device_path.rs b/uefi-raw/src/protocol/device_path.rs index f72ccb7b7..ac8cf031e 100644 --- a/uefi-raw/src/protocol/device_path.rs +++ b/uefi-raw/src/protocol/device_path.rs @@ -2,7 +2,7 @@ mod device_path_gen; -use crate::{guid, Boolean, Char16, Guid}; +use crate::{Boolean, Char16, Guid, guid}; pub use device_path_gen::{acpi, bios_boot_spec, end, hardware, media, messaging}; diff --git a/uefi-raw/src/protocol/disk.rs b/uefi-raw/src/protocol/disk.rs index 1f97c32a8..e555e6ab2 100644 --- a/uefi-raw/src/protocol/disk.rs +++ b/uefi-raw/src/protocol/disk.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use crate::{guid, Event, Guid, Status}; +use crate::{Event, Guid, Status, guid}; use core::ffi::c_void; #[derive(Debug)] diff --git a/uefi-raw/src/protocol/driver.rs b/uefi-raw/src/protocol/driver.rs index 9e16d7890..119a6f65c 100644 --- a/uefi-raw/src/protocol/driver.rs +++ b/uefi-raw/src/protocol/driver.rs @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 use crate::protocol::device_path::DevicePathProtocol; -use crate::{guid, Guid, Handle, Status}; +use crate::{Guid, Handle, Status, guid}; #[derive(Debug)] #[repr(C)] diff --git a/uefi-raw/src/protocol/file_system.rs b/uefi-raw/src/protocol/file_system.rs index 71a06de18..f6d1cb403 100644 --- a/uefi-raw/src/protocol/file_system.rs +++ b/uefi-raw/src/protocol/file_system.rs @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 use crate::time::Time; -use crate::{guid, Boolean, Char16, Event, Guid, Status}; +use crate::{Boolean, Char16, Event, Guid, Status, guid}; use bitflags::bitflags; use core::ffi::c_void; diff --git a/uefi-raw/src/protocol/firmware_volume.rs b/uefi-raw/src/protocol/firmware_volume.rs index 2dfd98916..9184700f1 100644 --- a/uefi-raw/src/protocol/firmware_volume.rs +++ b/uefi-raw/src/protocol/firmware_volume.rs @@ -2,7 +2,7 @@ use crate::firmware_storage::FirmwareVolumeAttributes; use crate::protocol::block::Lba; -use crate::{guid, Guid, Handle, PhysicalAddress, Status}; +use crate::{Guid, Handle, PhysicalAddress, Status, guid}; use core::ffi::c_void; use core::ops::RangeInclusive; diff --git a/uefi-raw/src/protocol/hii/database.rs b/uefi-raw/src/protocol/hii/database.rs index 054f81e54..a701f9914 100644 --- a/uefi-raw/src/protocol/hii/database.rs +++ b/uefi-raw/src/protocol/hii/database.rs @@ -3,7 +3,7 @@ //! Bindings for HII Database Protocol use super::{HiiHandle, HiiPackageHeader, HiiPackageListHeader, KeyDescriptor}; -use crate::{guid, Guid, Handle, Status}; +use crate::{Guid, Handle, Status, guid}; /// EFI_HII_KEYBOARD_LAYOUT #[derive(Debug)] diff --git a/uefi-raw/src/protocol/loaded_image.rs b/uefi-raw/src/protocol/loaded_image.rs index 7ba4ada6a..fff5ece06 100644 --- a/uefi-raw/src/protocol/loaded_image.rs +++ b/uefi-raw/src/protocol/loaded_image.rs @@ -3,7 +3,7 @@ use crate::protocol::device_path::DevicePathProtocol; use crate::table::boot::MemoryType; use crate::table::system::SystemTable; -use crate::{guid, Guid, Handle, Status}; +use crate::{Guid, Handle, Status, guid}; use core::ffi::c_void; #[derive(Clone, Copy, Debug)] diff --git a/uefi-raw/src/protocol/media.rs b/uefi-raw/src/protocol/media.rs index 2d1fe5d40..6baffb108 100644 --- a/uefi-raw/src/protocol/media.rs +++ b/uefi-raw/src/protocol/media.rs @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 use crate::protocol::device_path::DevicePathProtocol; -use crate::{guid, Boolean, Guid, Status}; +use crate::{Boolean, Guid, Status, guid}; use core::ffi::c_void; #[derive(Debug)] diff --git a/uefi-raw/src/protocol/memory_protection.rs b/uefi-raw/src/protocol/memory_protection.rs index 8e3198990..21c9defdb 100644 --- a/uefi-raw/src/protocol/memory_protection.rs +++ b/uefi-raw/src/protocol/memory_protection.rs @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 use crate::table::boot::MemoryAttribute; -use crate::{guid, Guid, PhysicalAddress, Status}; +use crate::{Guid, PhysicalAddress, Status, guid}; #[derive(Debug)] #[repr(C)] diff --git a/uefi-raw/src/protocol/misc.rs b/uefi-raw/src/protocol/misc.rs index a6048c471..2fb9c4982 100644 --- a/uefi-raw/src/protocol/misc.rs +++ b/uefi-raw/src/protocol/misc.rs @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 use crate::table::runtime; -use crate::{guid, Guid, Status}; +use crate::{Guid, Status, guid}; #[derive(Debug)] #[repr(C)] diff --git a/uefi-raw/src/protocol/network/dhcp4.rs b/uefi-raw/src/protocol/network/dhcp4.rs index 9f26dc0ef..c8ee47098 100644 --- a/uefi-raw/src/protocol/network/dhcp4.rs +++ b/uefi-raw/src/protocol/network/dhcp4.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use crate::{guid, Boolean, Char8, Event, Guid, Ipv4Address, MacAddress, Status}; +use crate::{Boolean, Char8, Event, Guid, Ipv4Address, MacAddress, Status, guid}; use core::ffi::c_void; newtype_enum! { diff --git a/uefi-raw/src/protocol/network/http.rs b/uefi-raw/src/protocol/network/http.rs index 99ff1220b..115f5fe18 100644 --- a/uefi-raw/src/protocol/network/http.rs +++ b/uefi-raw/src/protocol/network/http.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use crate::{guid, Boolean, Char16, Char8, Event, Guid, Ipv4Address, Ipv6Address, Status}; +use crate::{Boolean, Char8, Char16, Event, Guid, Ipv4Address, Ipv6Address, Status, guid}; use core::ffi::c_void; use core::fmt::{self, Debug, Formatter}; use core::ptr; diff --git a/uefi-raw/src/protocol/network/ip4_config2.rs b/uefi-raw/src/protocol/network/ip4_config2.rs index 41f334b05..2bed6937d 100644 --- a/uefi-raw/src/protocol/network/ip4_config2.rs +++ b/uefi-raw/src/protocol/network/ip4_config2.rs @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 use crate::protocol::network::ip4::Ip4RouteTable; -use crate::{guid, Char16, Event, Guid, Ipv4Address, MacAddress, Status}; +use crate::{Char16, Event, Guid, Ipv4Address, MacAddress, Status, guid}; use core::ffi::c_void; newtype_enum! { diff --git a/uefi-raw/src/protocol/network/pxe.rs b/uefi-raw/src/protocol/network/pxe.rs index a0bdc6a6f..15d1a39b6 100644 --- a/uefi-raw/src/protocol/network/pxe.rs +++ b/uefi-raw/src/protocol/network/pxe.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use crate::{guid, Boolean, Char8, Guid, IpAddress, MacAddress, Status}; +use crate::{Boolean, Char8, Guid, IpAddress, MacAddress, Status, guid}; use bitflags::bitflags; use core::ffi::c_void; use core::fmt::{self, Debug, Formatter}; diff --git a/uefi-raw/src/protocol/network/snp.rs b/uefi-raw/src/protocol/network/snp.rs index 7332567fe..744cacd50 100644 --- a/uefi-raw/src/protocol/network/snp.rs +++ b/uefi-raw/src/protocol/network/snp.rs @@ -4,7 +4,7 @@ use core::ffi; use bitflags::bitflags; -use crate::{guid, Boolean, Event, Guid, IpAddress, MacAddress, Status}; +use crate::{Boolean, Event, Guid, IpAddress, MacAddress, Status, guid}; #[derive(Debug)] #[repr(C)] diff --git a/uefi-raw/src/protocol/network/tls.rs b/uefi-raw/src/protocol/network/tls.rs index 905c57b48..fc7c7f569 100644 --- a/uefi-raw/src/protocol/network/tls.rs +++ b/uefi-raw/src/protocol/network/tls.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use crate::{guid, Guid, Status}; +use crate::{Guid, Status, guid}; use core::ffi::c_void; newtype_enum! { diff --git a/uefi-raw/src/protocol/nvme.rs b/uefi-raw/src/protocol/nvme.rs index 856cfbd66..f599e6b05 100644 --- a/uefi-raw/src/protocol/nvme.rs +++ b/uefi-raw/src/protocol/nvme.rs @@ -3,7 +3,7 @@ use super::device_path::DevicePathProtocol; use crate::Status; use core::ffi::c_void; -use uguid::{guid, Guid}; +use uguid::{Guid, guid}; bitflags::bitflags! { /// In an NVMe command, the `flags` field specifies which cdw (command specific word) diff --git a/uefi-raw/src/protocol/rng.rs b/uefi-raw/src/protocol/rng.rs index b1efc5489..40984f051 100644 --- a/uefi-raw/src/protocol/rng.rs +++ b/uefi-raw/src/protocol/rng.rs @@ -2,7 +2,7 @@ //! `Rng` protocol. -use crate::{guid, Guid, Status}; +use crate::{Guid, Status, guid}; newtype_enum! { /// The algorithms listed are optional, not meant to be exhaustive diff --git a/uefi-raw/src/protocol/scsi.rs b/uefi-raw/src/protocol/scsi.rs index 02ee07aa4..2ca555d53 100644 --- a/uefi-raw/src/protocol/scsi.rs +++ b/uefi-raw/src/protocol/scsi.rs @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 use super::device_path::DevicePathProtocol; -use crate::{guid, Event, Guid, Status}; +use crate::{Event, Guid, Status, guid}; use core::ffi::c_void; pub const SCSI_TARGET_MAX_BYTES: usize = 0x10; diff --git a/uefi-raw/src/protocol/shell_params.rs b/uefi-raw/src/protocol/shell_params.rs index 70671a748..4b5b8bf46 100644 --- a/uefi-raw/src/protocol/shell_params.rs +++ b/uefi-raw/src/protocol/shell_params.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use crate::{guid, Char16, Guid}; +use crate::{Char16, Guid, guid}; use core::ffi::c_void; pub type ShellFileHandle = *const c_void; diff --git a/uefi-raw/src/protocol/string.rs b/uefi-raw/src/protocol/string.rs index 9c792d4fd..37b9695ca 100644 --- a/uefi-raw/src/protocol/string.rs +++ b/uefi-raw/src/protocol/string.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use crate::{guid, Char16, Char8, Guid}; +use crate::{Char8, Char16, Guid, guid}; #[derive(Debug)] #[repr(C)] diff --git a/uefi-raw/src/protocol/tcg/v1.rs b/uefi-raw/src/protocol/tcg/v1.rs index 32bcb3b96..40c06012f 100644 --- a/uefi-raw/src/protocol/tcg/v1.rs +++ b/uefi-raw/src/protocol/tcg/v1.rs @@ -10,7 +10,7 @@ //! [TCG]: https://trustedcomputinggroup.org/ //! [TPM]: https://en.wikipedia.org/wiki/Trusted_Platform_Module -use crate::{guid, Guid, PhysicalAddress, Status}; +use crate::{Guid, PhysicalAddress, Status, guid}; use core::ffi::c_void; /// Information about the protocol and the TPM device. diff --git a/uefi-raw/src/protocol/tcg/v2.rs b/uefi-raw/src/protocol/tcg/v2.rs index 7021ffccb..a92c8c9b4 100644 --- a/uefi-raw/src/protocol/tcg/v2.rs +++ b/uefi-raw/src/protocol/tcg/v2.rs @@ -13,7 +13,7 @@ //! [TPM]: https://en.wikipedia.org/wiki/Trusted_Platform_Module use super::EventType; -use crate::{guid, Guid, PhysicalAddress, Status}; +use crate::{Guid, PhysicalAddress, Status, guid}; use bitflags::bitflags; use core::ffi::c_void; diff --git a/uefi-raw/src/protocol/usb/host_controller.rs b/uefi-raw/src/protocol/usb/host_controller.rs index b23afd4d0..b363933e1 100644 --- a/uefi-raw/src/protocol/usb/host_controller.rs +++ b/uefi-raw/src/protocol/usb/host_controller.rs @@ -4,7 +4,7 @@ use core::ffi; use bitflags::bitflags; -use crate::{guid, Boolean, Guid, Status}; +use crate::{Boolean, Guid, Status, guid}; use super::{AsyncUsbTransferCallback, DataDirection, DeviceRequest, UsbTransferStatus}; diff --git a/uefi-raw/src/protocol/usb/io.rs b/uefi-raw/src/protocol/usb/io.rs index bd41a55a0..5567de74f 100644 --- a/uefi-raw/src/protocol/usb/io.rs +++ b/uefi-raw/src/protocol/usb/io.rs @@ -2,7 +2,7 @@ use core::ffi; -use crate::{guid, Boolean, Char16, Guid, Status}; +use crate::{Boolean, Char16, Guid, Status, guid}; use super::{ AsyncUsbTransferCallback, ConfigDescriptor, DataDirection, DeviceDescriptor, DeviceRequest, diff --git a/uefi-raw/src/table/runtime.rs b/uefi-raw/src/table/runtime.rs index e2f60202d..2738e5b8e 100644 --- a/uefi-raw/src/table/runtime.rs +++ b/uefi-raw/src/table/runtime.rs @@ -3,10 +3,10 @@ //! UEFI services available at runtime, even after the OS boots. use crate::capsule::CapsuleHeader; -use crate::table::boot::MemoryDescriptor; use crate::table::Header; +use crate::table::boot::MemoryDescriptor; use crate::time::Time; -use crate::{guid, Boolean, Char16, Guid, PhysicalAddress, Status}; +use crate::{Boolean, Char16, Guid, PhysicalAddress, Status, guid}; use bitflags::bitflags; use core::ffi::c_void; diff --git a/uefi-raw/src/table/system.rs b/uefi-raw/src/table/system.rs index 3faaee536..0a6d94273 100644 --- a/uefi-raw/src/table/system.rs +++ b/uefi-raw/src/table/system.rs @@ -1,10 +1,10 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 use crate::protocol::console::{SimpleTextInputProtocol, SimpleTextOutputProtocol}; +use crate::table::Header; use crate::table::boot::BootServices; use crate::table::configuration::ConfigurationTable; use crate::table::runtime::RuntimeServices; -use crate::table::Header; use crate::{Char16, Handle}; use core::mem::size_of; use core::ptr; diff --git a/uefi-test-runner/src/bin/shell_launcher.rs b/uefi-test-runner/src/bin/shell_launcher.rs index edd8aa89b..f48e28c2d 100644 --- a/uefi-test-runner/src/bin/shell_launcher.rs +++ b/uefi-test-runner/src/bin/shell_launcher.rs @@ -17,10 +17,10 @@ use alloc::vec::Vec; use log::info; use uefi::boot::{self, LoadImageSource}; use uefi::prelude::*; +use uefi::proto::BootPolicy; use uefi::proto::device_path::build::{self, DevicePathBuilder}; use uefi::proto::device_path::{DevicePath, DeviceSubType, DeviceType, LoadedImageDevicePath}; use uefi::proto::loaded_image::LoadedImage; -use uefi::proto::BootPolicy; /// Get the device path of the shell app. This is the same as the /// currently-loaded image's device path, but with the file path part changed. diff --git a/uefi-test-runner/src/boot/misc.rs b/uefi-test-runner/src/boot/misc.rs index 53cb0fb68..21a5b07d2 100644 --- a/uefi-test-runner/src/boot/misc.rs +++ b/uefi-test-runner/src/boot/misc.rs @@ -8,7 +8,7 @@ use uefi::boot::{ }; use uefi::mem::memory_map::MemoryType; use uefi::proto::unsafe_protocol; -use uefi::{boot, guid, system, Event, Guid, Identify}; +use uefi::{Event, Guid, Identify, boot, guid, system}; pub fn test() { test_tpl(); diff --git a/uefi-test-runner/src/boot/mod.rs b/uefi-test-runner/src/boot/mod.rs index 7fbbaccfd..420a6116a 100644 --- a/uefi-test-runner/src/boot/mod.rs +++ b/uefi-test-runner/src/boot/mod.rs @@ -3,11 +3,11 @@ use alloc::string::ToString; use uefi::boot::{LoadImageSource, SearchType}; use uefi::fs::FileSystem; +use uefi::proto::BootPolicy; use uefi::proto::console::text::Output; use uefi::proto::device_path::media::FilePath; use uefi::proto::device_path::{DevicePath, LoadedImageDevicePath}; -use uefi::proto::BootPolicy; -use uefi::{boot, CString16, Identify}; +use uefi::{CString16, Identify, boot}; mod memory; mod misc; diff --git a/uefi-test-runner/src/fs/mod.rs b/uefi-test-runner/src/fs/mod.rs index c487912ed..fed2f1b6f 100644 --- a/uefi-test-runner/src/fs/mod.rs +++ b/uefi-test-runner/src/fs/mod.rs @@ -7,7 +7,7 @@ use alloc::vec::Vec; use uefi::boot::ScopedProtocol; use uefi::fs::{FileSystem, IoError, IoErrorContext, PathBuf}; use uefi::proto::media::fs::SimpleFileSystem; -use uefi::{cstr16, fs, Status}; +use uefi::{Status, cstr16, fs}; /// Tests functionality from the `uefi::fs` module. This test relies on a /// working File System Protocol, which is tested at a dedicated place. diff --git a/uefi-test-runner/src/main.rs b/uefi-test-runner/src/main.rs index 2e45d8438..2d05191f6 100644 --- a/uefi-test-runner/src/main.rs +++ b/uefi-test-runner/src/main.rs @@ -15,7 +15,7 @@ use uefi::prelude::*; use uefi::proto::console::serial::Serial; use uefi::proto::device_path::build::{self, DevicePathBuilder}; use uefi::proto::device_path::messaging::Vendor; -use uefi::{print, println, system, Result}; +use uefi::{Result, print, println, system}; mod boot; mod fs; diff --git a/uefi-test-runner/src/proto/ata/pass_thru.rs b/uefi-test-runner/src/proto/ata/pass_thru.rs index cb4e1271f..46d71084b 100644 --- a/uefi-test-runner/src/proto/ata/pass_thru.rs +++ b/uefi-test-runner/src/proto/ata/pass_thru.rs @@ -2,8 +2,8 @@ use uefi::boot; use uefi::boot::{OpenProtocolAttributes, OpenProtocolParams}; -use uefi::proto::ata::pass_thru::AtaPassThru; use uefi::proto::ata::AtaRequestBuilder; +use uefi::proto::ata::pass_thru::AtaPassThru; pub fn test() { info!("Running ATA PassThru tests"); diff --git a/uefi-test-runner/src/proto/console/gop.rs b/uefi-test-runner/src/proto/console/gop.rs index db42ddfaa..2b0898b6f 100644 --- a/uefi-test-runner/src/proto/console/gop.rs +++ b/uefi-test-runner/src/proto/console/gop.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use crate::{send_request_to_host, HostRequest}; +use crate::{HostRequest, send_request_to_host}; use uefi::boot::{self, OpenProtocolAttributes, OpenProtocolParams}; use uefi::proto::console::gop::{BltOp, BltPixel, FrameBuffer, GraphicsOutput, PixelFormat}; diff --git a/uefi-test-runner/src/proto/console/serial.rs b/uefi-test-runner/src/proto/console/serial.rs index e7ecf8b0b..8b44b4a2c 100644 --- a/uefi-test-runner/src/proto/console/serial.rs +++ b/uefi-test-runner/src/proto/console/serial.rs @@ -2,7 +2,7 @@ use crate::reconnect_serial_to_console; use uefi::proto::console::serial::{ControlBits, Serial}; -use uefi::{boot, Result, ResultExt, Status}; +use uefi::{Result, ResultExt, Status, boot}; // For the duration of this function, the serial device is opened in // exclusive mode. That means logs will not work, which means we should diff --git a/uefi-test-runner/src/proto/debug.rs b/uefi-test-runner/src/proto/debug.rs index 74ae9256f..e5e6c0f76 100644 --- a/uefi-test-runner/src/proto/debug.rs +++ b/uefi-test-runner/src/proto/debug.rs @@ -80,10 +80,10 @@ fn test_debug_support() { // make sure that the max processor index is a sane value, i.e. it works let maximum_processor_index = debug_support.get_maximum_processor_index(); assert_ne!( - maximum_processor_index, - usize::MAX, - "get_maximum_processor_index() returning garbage, unless you really have 18,446,744,073,709,551,615 processors" - ); + maximum_processor_index, + usize::MAX, + "get_maximum_processor_index() returning garbage, unless you really have 18,446,744,073,709,551,615 processors" + ); info!("- Architecture: {:?}", debug_support.arch()); info!("- Maximum Processor Index: {:?}", maximum_processor_index); diff --git a/uefi-test-runner/src/proto/device_path.rs b/uefi-test-runner/src/proto/device_path.rs index 094d30de6..0d36e46f9 100644 --- a/uefi-test-runner/src/proto/device_path.rs +++ b/uefi-test-runner/src/proto/device_path.rs @@ -6,7 +6,7 @@ use uefi::proto::device_path::build::{self, DevicePathBuilder}; use uefi::proto::device_path::text::{ AllowShortcuts, DevicePathFromText, DevicePathToText, DisplayOnly, }; -use uefi::proto::device_path::{messaging, DevicePath, DevicePathNode, LoadedImageDevicePath}; +use uefi::proto::device_path::{DevicePath, DevicePathNode, LoadedImageDevicePath, messaging}; use uefi::proto::loaded_image::LoadedImage; use uefi::proto::media::disk::DiskIo; use uefi::{boot, cstr16}; @@ -240,11 +240,21 @@ fn test_device_path_append() { ); assert_eq!( - path.append_path(&path2).unwrap().to_string(DisplayOnly(false), AllowShortcuts(false)).unwrap(), - cstr16!("Ata(Primary,Master,0x1)/VenMsg(E0C14753-F9BE-11D2-9A0C-0090273FC14D)/Ata(Primary,Master,0x1)/VenMsg(E0C14753-F9BE-11D2-9A0C-0090273FC14D)") + path.append_path(&path2) + .unwrap() + .to_string(DisplayOnly(false), AllowShortcuts(false)) + .unwrap(), + cstr16!( + "Ata(Primary,Master,0x1)/VenMsg(E0C14753-F9BE-11D2-9A0C-0090273FC14D)/Ata(Primary,Master,0x1)/VenMsg(E0C14753-F9BE-11D2-9A0C-0090273FC14D)" + ) ); assert_eq!( - path.append_node(node).unwrap().to_string(DisplayOnly(false), AllowShortcuts(false)).unwrap(), - cstr16!("Ata(Primary,Master,0x1)/VenMsg(E0C14753-F9BE-11D2-9A0C-0090273FC14D)/Ata(Primary,Master,0x1)") + path.append_node(node) + .unwrap() + .to_string(DisplayOnly(false), AllowShortcuts(false)) + .unwrap(), + cstr16!( + "Ata(Primary,Master,0x1)/VenMsg(E0C14753-F9BE-11D2-9A0C-0090273FC14D)/Ata(Primary,Master,0x1)" + ) ); } diff --git a/uefi-test-runner/src/proto/driver.rs b/uefi-test-runner/src/proto/driver.rs index c5ce96ccd..c35bf3e75 100644 --- a/uefi-test-runner/src/proto/driver.rs +++ b/uefi-test-runner/src/proto/driver.rs @@ -104,10 +104,12 @@ fn test_component_name(english: &str) { .find_map(|handle| { let component_name = C::open(*handle).ok()?; - assert!(component_name - .supported_languages() - .ok()? - .any(|lang| lang == english)); + assert!( + component_name + .supported_languages() + .ok()? + .any(|lang| lang == english) + ); let driver_name = component_name.driver_name(english).ok()?; if driver_name == fat_driver_name { diff --git a/uefi-test-runner/src/proto/load.rs b/uefi-test-runner/src/proto/load.rs index c025239f0..5fdda7c9b 100644 --- a/uefi-test-runner/src/proto/load.rs +++ b/uefi-test-runner/src/proto/load.rs @@ -7,10 +7,10 @@ use core::ffi::c_void; use core::pin::Pin; use core::ptr; use core::ptr::addr_of; +use uefi::proto::BootPolicy; use uefi::proto::device_path::build::DevicePathBuilder; use uefi::proto::media::load_file::{LoadFile, LoadFile2}; -use uefi::proto::BootPolicy; -use uefi::{boot, Guid, Handle}; +use uefi::{Guid, Handle, boot}; use uefi_raw::protocol::device_path::DevicePathProtocol; use uefi_raw::protocol::media::{LoadFile2Protocol, LoadFileProtocol}; use uefi_raw::{Boolean, Status}; diff --git a/uefi-test-runner/src/proto/media.rs b/uefi-test-runner/src/proto/media.rs index e50f0c638..3c6726dc7 100644 --- a/uefi-test-runner/src/proto/media.rs +++ b/uefi-test-runner/src/proto/media.rs @@ -175,9 +175,11 @@ fn test_existing_file(directory: &mut Directory) { file.delete().unwrap(); // Verify the file is gone. - assert!(directory - .open(input_file_path, FileMode::Read, FileAttribute::empty()) - .is_err()); + assert!( + directory + .open(input_file_path, FileMode::Read, FileAttribute::empty()) + .is_err() + ); } /// Test file creation. diff --git a/uefi-test-runner/src/proto/mod.rs b/uefi-test-runner/src/proto/mod.rs index 59951e888..7dfdb51d9 100644 --- a/uefi-test-runner/src/proto/mod.rs +++ b/uefi-test-runner/src/proto/mod.rs @@ -2,7 +2,7 @@ use uefi::boot::{self, OpenProtocolParams}; use uefi::proto::loaded_image::LoadedImage; -use uefi::{proto, Identify}; +use uefi::{Identify, proto}; pub fn test() { info!("Testing various protocols"); @@ -61,12 +61,14 @@ fn test_protocols_per_handle() { } fn test_test_protocol() { - assert!(boot::test_protocol::(OpenProtocolParams { - handle: boot::image_handle(), - agent: boot::image_handle(), - controller: None, - }) - .unwrap()); + assert!( + boot::test_protocol::(OpenProtocolParams { + handle: boot::image_handle(), + agent: boot::image_handle(), + controller: None, + }) + .unwrap() + ); } #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] diff --git a/uefi-test-runner/src/proto/network/http.rs b/uefi-test-runner/src/proto/network/http.rs index 225dbfeef..73109ce9a 100644 --- a/uefi-test-runner/src/proto/network/http.rs +++ b/uefi-test-runner/src/proto/network/http.rs @@ -2,11 +2,11 @@ use alloc::vec::Vec; -use uefi::proto::device_path::text::{AllowShortcuts, DisplayOnly}; use uefi::proto::device_path::DevicePath; +use uefi::proto::device_path::text::{AllowShortcuts, DisplayOnly}; use uefi::proto::network::http::{HttpBinding, HttpHelper}; use uefi::proto::network::ip4config2::Ip4Config2; -use uefi::{boot, Handle}; +use uefi::{Handle, boot}; use uefi_raw::protocol::network::http::HttpStatusCode; diff --git a/uefi-test-runner/src/proto/network/pxe.rs b/uefi-test-runner/src/proto/network/pxe.rs index 9f29733f7..48d9c69f8 100644 --- a/uefi-test-runner/src/proto/network/pxe.rs +++ b/uefi-test-runner/src/proto/network/pxe.rs @@ -1,8 +1,8 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use uefi::proto::network::pxe::{BaseCode, DhcpV4Packet, IpFilter, IpFilters, UdpOpFlags}; use uefi::proto::network::IpAddress; -use uefi::{boot, CStr8}; +use uefi::proto::network::pxe::{BaseCode, DhcpV4Packet, IpFilter, IpFilters, UdpOpFlags}; +use uefi::{CStr8, boot}; pub fn test() { // Skip the test if the `pxe` feature is not enabled. diff --git a/uefi-test-runner/src/proto/network/snp.rs b/uefi-test-runner/src/proto/network/snp.rs index 6ab00a07d..9ce416d9c 100644 --- a/uefi-test-runner/src/proto/network/snp.rs +++ b/uefi-test-runner/src/proto/network/snp.rs @@ -2,9 +2,9 @@ use core::time::Duration; -use uefi::proto::network::snp::{InterruptStatus, ReceiveFlags, SimpleNetwork}; use uefi::proto::network::MacAddress; -use uefi::{boot, Status}; +use uefi::proto::network::snp::{InterruptStatus, ReceiveFlags, SimpleNetwork}; +use uefi::{Status, boot}; pub fn test() { info!("Testing the simple network protocol"); @@ -78,10 +78,12 @@ pub fn test() { \x04\x01\x02\x03\x04"; let dest_addr = MacAddress([0xffu8; 32]); - assert!(!simple_network - .get_interrupt_status() - .unwrap() - .contains(InterruptStatus::TRANSMIT)); + assert!( + !simple_network + .get_interrupt_status() + .unwrap() + .contains(InterruptStatus::TRANSMIT) + ); // Send the frame simple_network diff --git a/uefi-test-runner/src/proto/nvme/pass_thru.rs b/uefi-test-runner/src/proto/nvme/pass_thru.rs index 5597e63b9..d2571892f 100644 --- a/uefi-test-runner/src/proto/nvme/pass_thru.rs +++ b/uefi-test-runner/src/proto/nvme/pass_thru.rs @@ -2,8 +2,8 @@ use core::time::Duration; use uefi::boot; -use uefi::proto::device_path::text::{AllowShortcuts, DisplayOnly}; use uefi::proto::device_path::DevicePath; +use uefi::proto::device_path::text::{AllowShortcuts, DisplayOnly}; use uefi::proto::media::block::BlockIO; use uefi::proto::nvme::pass_thru::NvmePassThru; use uefi::proto::nvme::{NvmeQueueType, NvmeRequestBuilder}; diff --git a/uefi-test-runner/src/proto/pi/mp.rs b/uefi-test-runner/src/proto/pi/mp.rs index 9d1f0d787..5378f36ba 100644 --- a/uefi-test-runner/src/proto/pi/mp.rs +++ b/uefi-test-runner/src/proto/pi/mp.rs @@ -5,7 +5,7 @@ use core::ptr; use core::sync::atomic::{AtomicUsize, Ordering}; use core::time::Duration; use uefi::proto::pi::mp::MpServices; -use uefi::{boot, Status}; +use uefi::{Status, boot}; /// Number of cores qemu is configured to have const NUM_CPUS: usize = 4; diff --git a/uefi-test-runner/src/proto/scsi/pass_thru.rs b/uefi-test-runner/src/proto/scsi/pass_thru.rs index e0a16e836..8c63e25ca 100644 --- a/uefi-test-runner/src/proto/scsi/pass_thru.rs +++ b/uefi-test-runner/src/proto/scsi/pass_thru.rs @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use uefi::proto::scsi::pass_thru::ExtScsiPassThru; use uefi::proto::scsi::ScsiRequestBuilder; +use uefi::proto::scsi::pass_thru::ExtScsiPassThru; pub fn test() { info!("Running extended SCSI Pass Thru tests"); diff --git a/uefi-test-runner/src/proto/string/unicode_collation.rs b/uefi-test-runner/src/proto/string/unicode_collation.rs index 73de65808..b9329ff29 100644 --- a/uefi-test-runner/src/proto/string/unicode_collation.rs +++ b/uefi-test-runner/src/proto/string/unicode_collation.rs @@ -2,7 +2,7 @@ use core::cmp::Ordering; use uefi::proto::string::unicode_collation::{StrConversionError, UnicodeCollation}; -use uefi::{boot, CStr16, CStr8}; +use uefi::{CStr8, CStr16, boot}; pub fn test() { info!("Testing the Unicode Collation protocol"); diff --git a/uefi-test-runner/src/proto/tcg.rs b/uefi-test-runner/src/proto/tcg.rs index 26959ae1d..a0759439e 100644 --- a/uefi-test-runner/src/proto/tcg.rs +++ b/uefi-test-runner/src/proto/tcg.rs @@ -2,7 +2,7 @@ use alloc::vec::Vec; use uefi::boot; -use uefi::proto::tcg::{v1, v2, AlgorithmId, EventType, HashAlgorithm, PcrIndex}; +use uefi::proto::tcg::{AlgorithmId, EventType, HashAlgorithm, PcrIndex, v1, v2}; // Environmental note: // @@ -264,10 +264,11 @@ pub fn test_tcg_v2() { // Check that there was no attempt to change the active banks in the // previous boot. - assert!(tcg - .get_result_of_set_active_pcr_banks() - .expect("get_result_of_set_active_pcr_banks failed") - .is_none()); + assert!( + tcg.get_result_of_set_active_pcr_banks() + .expect("get_result_of_set_active_pcr_banks failed") + .is_none() + ); // PCR 8 is initially zero. assert_eq!(tcg_v2_read_pcr_8(&mut tcg), [0; 20]); diff --git a/uefi-test-runner/src/runtime/vars.rs b/uefi-test-runner/src/runtime/vars.rs index 062884212..d02a7ba87 100644 --- a/uefi-test-runner/src/runtime/vars.rs +++ b/uefi-test-runner/src/runtime/vars.rs @@ -3,7 +3,7 @@ use log::info; use uefi::prelude::*; use uefi::runtime::{VariableAttributes, VariableVendor}; -use uefi::{guid, runtime, CStr16, Error}; +use uefi::{CStr16, Error, guid, runtime}; /// Test variable name. const NAME: &CStr16 = cstr16!("UefiRsTestVar"); diff --git a/uefi/src/boot.rs b/uefi/src/boot.rs index 820389660..56b35eac2 100644 --- a/uefi/src/boot.rs +++ b/uefi/src/boot.rs @@ -22,7 +22,7 @@ //! [`proto`]: crate::proto pub use uefi_raw::table::boot::{ - EventType, MemoryAttribute, MemoryDescriptor, MemoryType, Tpl, PAGE_SIZE, + EventType, MemoryAttribute, MemoryDescriptor, MemoryType, PAGE_SIZE, Tpl, }; use crate::data_types::PhysicalAddress; @@ -37,7 +37,7 @@ use crate::proto::{BootPolicy, Protocol, ProtocolPointer}; use crate::runtime::{self, ResetType}; use crate::table::Revision; use crate::util::opt_nonnull_to_ptr; -use crate::{table, Char16, Error, Event, Guid, Handle, Result, Status, StatusExt}; +use crate::{Char16, Error, Event, Guid, Handle, Result, Status, StatusExt, table}; use core::ffi::c_void; use core::mem::MaybeUninit; use core::ops::{Deref, DerefMut}; diff --git a/uefi/src/data_types/mod.rs b/uefi/src/data_types/mod.rs index 9b428e53b..0f36ce52d 100644 --- a/uefi/src/data_types/mod.rs +++ b/uefi/src/data_types/mod.rs @@ -119,11 +119,7 @@ pub trait Align { fn offset_up_to_alignment(val: usize) -> usize { assert!(Self::alignment() != 0); let r = val % Self::alignment(); - if r == 0 { - 0 - } else { - Self::alignment() - r - } + if r == 0 { 0 } else { Self::alignment() - r } } /// Round `val` up so that it is aligned. @@ -162,14 +158,14 @@ mod guid; pub use guid::{Guid, Identify}; pub mod chars; -pub use chars::{Char16, Char8}; +pub use chars::{Char8, Char16}; #[macro_use] mod opaque; mod strs; pub use strs::{ - CStr16, CStr8, EqStrUntilNul, FromSliceWithNulError, FromStrWithBufError, PoolString, + CStr8, CStr16, EqStrUntilNul, FromSliceWithNulError, FromStrWithBufError, PoolString, UnalignedCStr16Error, }; diff --git a/uefi/src/data_types/owned_strs.rs b/uefi/src/data_types/owned_strs.rs index 8e01749b4..ed4ea1f8d 100644 --- a/uefi/src/data_types/owned_strs.rs +++ b/uefi/src/data_types/owned_strs.rs @@ -2,8 +2,8 @@ use super::chars::{Char16, NUL_16}; use super::strs::{CStr16, FromSliceWithNulError}; -use crate::data_types::strs::EqStrUntilNul; use crate::data_types::UnalignedSlice; +use crate::data_types::strs::EqStrUntilNul; use crate::polyfill::vec_into_raw_parts; use alloc::borrow::{Borrow, ToOwned}; use alloc::string::String; diff --git a/uefi/src/data_types/strs.rs b/uefi/src/data_types/strs.rs index 2b625e6b8..0b01552c3 100644 --- a/uefi/src/data_types/strs.rs +++ b/uefi/src/data_types/strs.rs @@ -2,8 +2,8 @@ use uefi_raw::Status; -use super::chars::{Char16, Char8, NUL_16, NUL_8}; use super::UnalignedSlice; +use super::chars::{Char8, Char16, NUL_8, NUL_16}; use crate::mem::PoolAllocation; use crate::polyfill::maybe_uninit_slice_assume_init_ref; use core::borrow::Borrow; @@ -801,7 +801,7 @@ where #[cfg(test)] mod tests { use super::*; - use crate::{cstr16, cstr8}; + use crate::{cstr8, cstr16}; use alloc::format; use alloc::string::String; diff --git a/uefi/src/fs/dir_entry_iter.rs b/uefi/src/fs/dir_entry_iter.rs index 4e4a437de..716dd0d9b 100644 --- a/uefi/src/fs/dir_entry_iter.rs +++ b/uefi/src/fs/dir_entry_iter.rs @@ -3,7 +3,7 @@ //! Module for directory iteration. See [`UefiDirectoryIter`]. use super::*; -use crate::{cstr16, CStr16, Result}; +use crate::{CStr16, Result, cstr16}; use alloc::boxed::Box; /// Common skip dirs in UEFI/FAT-style file systems. diff --git a/uefi/src/fs/file_system/fs.rs b/uefi/src/fs/file_system/fs.rs index 0a2261870..4e89b0d65 100644 --- a/uefi/src/fs/file_system/fs.rs +++ b/uefi/src/fs/file_system/fs.rs @@ -2,8 +2,8 @@ //! Module for [`FileSystem`]. -use crate::fs::*; use crate::Status; +use crate::fs::*; use alloc::boxed::Box; use alloc::string::String; use alloc::vec; diff --git a/uefi/src/fs/path/mod.rs b/uefi/src/fs/path/mod.rs index ab2bf33ac..a6b41787c 100644 --- a/uefi/src/fs/path/mod.rs +++ b/uefi/src/fs/path/mod.rs @@ -23,9 +23,9 @@ pub use path::{Components, Path}; pub use pathbuf::PathBuf; use crate::data_types::chars::NUL_16; -use crate::{cstr16, CStr16, Char16}; -pub(super) use validation::validate_path; +use crate::{CStr16, Char16, cstr16}; pub use validation::PathError; +pub(super) use validation::validate_path; /// The default separator for paths. pub const SEPARATOR: Char16 = unsafe { Char16::from_u16_unchecked('\\' as u16) }; diff --git a/uefi/src/fs/path/pathbuf.rs b/uefi/src/fs/path/pathbuf.rs index 22df40b70..5f3a3b45a 100644 --- a/uefi/src/fs/path/pathbuf.rs +++ b/uefi/src/fs/path/pathbuf.rs @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use crate::fs::path::Path; use crate::fs::SEPARATOR; +use crate::fs::path::Path; use crate::{CStr16, CString16, Char16}; use core::fmt::{Display, Formatter}; diff --git a/uefi/src/fs/path/validation.rs b/uefi/src/fs/path/validation.rs index 6230dcbe1..e1beeb626 100644 --- a/uefi/src/fs/path/validation.rs +++ b/uefi/src/fs/path/validation.rs @@ -8,8 +8,8 @@ //! [`fs`]: crate::fs use super::Path; -use crate::fs::CHARACTER_DENY_LIST; use crate::Char16; +use crate::fs::CHARACTER_DENY_LIST; use core::fmt::{self, Display, Formatter}; /// Errors related to file paths. @@ -68,7 +68,7 @@ pub fn validate_path>(path: P) -> Result<(), PathError> { mod tests { use super::*; use crate::fs::PathBuf; - use crate::{cstr16, CString16}; + use crate::{CString16, cstr16}; #[test] fn test_validate_path() { diff --git a/uefi/src/lib.rs b/uefi/src/lib.rs index ebccb2430..7ac51a8b1 100644 --- a/uefi/src/lib.rs +++ b/uefi/src/lib.rs @@ -258,7 +258,7 @@ mod util; #[cfg(feature = "alloc")] pub use data_types::CString16; -pub use data_types::{CStr16, CStr8, Char16, Char8, Event, Guid, Handle, Identify}; +pub use data_types::{CStr8, CStr16, Char8, Char16, Event, Guid, Handle, Identify}; pub use result::{Error, Result, ResultExt, Status, StatusExt}; /// Re-export ucs2_cstr so that it can be used in the implementation of the /// cstr16 macro. It is hidden since it's not intended to be used directly. diff --git a/uefi/src/mem/aligned_buffer.rs b/uefi/src/mem/aligned_buffer.rs index 4f9209366..c220cf8e3 100644 --- a/uefi/src/mem/aligned_buffer.rs +++ b/uefi/src/mem/aligned_buffer.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use alloc::alloc::{alloc, dealloc, Layout, LayoutError}; +use alloc::alloc::{Layout, LayoutError, alloc, dealloc}; use core::error::Error; use core::fmt; use core::ptr::NonNull; diff --git a/uefi/src/mem/memory_map/impl_.rs b/uefi/src/mem/memory_map/impl_.rs index 23e0917e1..63079f7d2 100644 --- a/uefi/src/mem/memory_map/impl_.rs +++ b/uefi/src/mem/memory_map/impl_.rs @@ -349,7 +349,9 @@ impl Drop for MemoryMapBackingMemory { log::error!("Failed to deallocate memory map: {e:?}"); } } else { - log::debug!("Boot services are exited. Memory map won't be freed using the UEFI boot services allocator."); + log::debug!( + "Boot services are exited. Memory map won't be freed using the UEFI boot services allocator." + ); } } } diff --git a/uefi/src/mem/util.rs b/uefi/src/mem/util.rs index 2f380c251..6962c51c2 100644 --- a/uefi/src/mem/util.rs +++ b/uefi/src/mem/util.rs @@ -210,7 +210,7 @@ mod tests { let mut buf: Align16<[u8; 16]> = Align16([0; 16]); let data: &mut SomeDataAlign16 = uefi_function_stub_read(&mut buf.0).unwrap(); - assert_eq!(&data.0 .0, &[1, 2, 3, 4]); + assert_eq!(&data.0.0, &[1, 2, 3, 4]); } /// This unit tests checks the [`make_boxed`] utility. The test has different code and behavior @@ -234,6 +234,6 @@ mod tests { #[cfg(feature = "unstable")] let data: Box = make_boxed(fetch_data_fn, Global).unwrap(); - assert_eq!(&data.0 .0, &[1, 2, 3, 4]); + assert_eq!(&data.0.0, &[1, 2, 3, 4]); } } diff --git a/uefi/src/prelude.rs b/uefi/src/prelude.rs index bf5b9127a..886f59f09 100644 --- a/uefi/src/prelude.rs +++ b/uefi/src/prelude.rs @@ -5,5 +5,5 @@ //! This includes the system table modules, `Status` codes, etc. pub use crate::{ - boot, cstr16, cstr8, entry, runtime, system, Handle, ResultExt, Status, StatusExt, + Handle, ResultExt, Status, StatusExt, boot, cstr8, cstr16, entry, runtime, system, }; diff --git a/uefi/src/proto/ata/pass_thru.rs b/uefi/src/proto/ata/pass_thru.rs index 1d6b736cc..0edb41600 100644 --- a/uefi/src/proto/ata/pass_thru.rs +++ b/uefi/src/proto/ata/pass_thru.rs @@ -3,15 +3,15 @@ //! ATA Pass Thru Protocol. use super::{AtaRequest, AtaResponse}; +use crate::StatusExt; use crate::mem::{AlignedBuffer, PoolAllocation}; use crate::proto::device_path::PoolDevicePathNode; -use crate::StatusExt; use core::alloc::LayoutError; use core::ptr::{self, NonNull}; use uefi_macros::unsafe_protocol; +use uefi_raw::Status; use uefi_raw::protocol::ata::AtaPassThruProtocol; use uefi_raw::protocol::device_path::DevicePathProtocol; -use uefi_raw::Status; /// Mode structure with controller-specific information. pub type AtaPassThruMode = uefi_raw::protocol::ata::AtaPassThruMode; diff --git a/uefi/src/proto/console/gop.rs b/uefi/src/proto/console/gop.rs index f2e3daf0e..8c0e1b020 100644 --- a/uefi/src/proto/console/gop.rs +++ b/uefi/src/proto/console/gop.rs @@ -54,7 +54,7 @@ use crate::proto::unsafe_protocol; use crate::util::usize_from_u32; -use crate::{boot, Result, StatusExt}; +use crate::{Result, StatusExt, boot}; use core::fmt::{Debug, Formatter}; use core::marker::PhantomData; use core::ptr::{self, NonNull}; diff --git a/uefi/src/proto/device_path/mod.rs b/uefi/src/proto/device_path/mod.rs index d3e6bf049..14fef5e92 100644 --- a/uefi/src/proto/device_path/mod.rs +++ b/uefi/src/proto/device_path/mod.rs @@ -82,12 +82,12 @@ pub mod util; mod device_path_gen; pub use device_path_gen::{ - acpi, bios_boot_spec, end, hardware, media, messaging, DevicePathNodeEnum, + DevicePathNodeEnum, acpi, bios_boot_spec, end, hardware, media, messaging, }; pub use uefi_raw::protocol::device_path::{DeviceSubType, DeviceType}; use crate::mem::PoolAllocation; -use crate::proto::{unsafe_protocol, ProtocolPointer}; +use crate::proto::{ProtocolPointer, unsafe_protocol}; use core::ffi::c_void; use core::fmt::{self, Debug, Display, Formatter}; use core::ops::Deref; diff --git a/uefi/src/proto/device_path/util.rs b/uefi/src/proto/device_path/util.rs index f1a5f62e1..674305535 100644 --- a/uefi/src/proto/device_path/util.rs +++ b/uefi/src/proto/device_path/util.rs @@ -6,8 +6,8 @@ use super::{DevicePath, DevicePathNode, PoolDevicePath}; use crate::mem::PoolAllocation; use core::ptr::NonNull; use uefi_macros::unsafe_protocol; -use uefi_raw::protocol::device_path::DevicePathUtilitiesProtocol; use uefi_raw::Status; +use uefi_raw::protocol::device_path::DevicePathUtilitiesProtocol; /// Protocol with utility functions for working with device paths. #[derive(Debug)] diff --git a/uefi/src/proto/driver/component_name.rs b/uefi/src/proto/driver/component_name.rs index fec5d9c9e..3e328e586 100644 --- a/uefi/src/proto/driver/component_name.rs +++ b/uefi/src/proto/driver/component_name.rs @@ -347,17 +347,19 @@ fn language_to_cstr(language: &str) -> Result { #[cfg(test)] mod tests { use super::*; - use alloc::vec::Vec; use LanguageIterKind::{V1, V2}; + use alloc::vec::Vec; #[test] fn test_language_iter_v1() { // Empty string. let data = "\0"; - assert!(LanguageIter::new(data.as_ptr(), V1) - .unwrap() - .next() - .is_none()); + assert!( + LanguageIter::new(data.as_ptr(), V1) + .unwrap() + .next() + .is_none() + ); // Two languages. let data = "engfra\0"; @@ -389,10 +391,12 @@ mod tests { fn test_language_iter_v2() { // Empty string. let data = "\0"; - assert!(LanguageIter::new(data.as_ptr(), V2) - .unwrap() - .next() - .is_none()); + assert!( + LanguageIter::new(data.as_ptr(), V2) + .unwrap() + .next() + .is_none() + ); // Two languages. let data = "en;fr\0"; diff --git a/uefi/src/proto/media/file/dir.rs b/uefi/src/proto/media/file/dir.rs index 79661c902..c87628d39 100644 --- a/uefi/src/proto/media/file/dir.rs +++ b/uefi/src/proto/media/file/dir.rs @@ -1,8 +1,8 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 use super::{File, FileHandle, FileInfo, FromUefi, RegularFile}; -use crate::data_types::Align; use crate::Result; +use crate::data_types::Align; use core::ffi::c_void; #[cfg(feature = "alloc")] use {crate::mem::make_boxed, alloc::boxed::Box}; diff --git a/uefi/src/proto/media/file/info.rs b/uefi/src/proto/media/file/info.rs index 8a51b7ea5..2f8feeb03 100644 --- a/uefi/src/proto/media/file/info.rs +++ b/uefi/src/proto/media/file/info.rs @@ -427,8 +427,8 @@ impl FileProtocolInfo for FileSystemVolumeLabel {} #[cfg(test)] mod tests { use super::*; - use crate::runtime::{Daylight, Time, TimeParams}; use crate::CString16; + use crate::runtime::{Daylight, Time, TimeParams}; use alloc::vec; fn validate_layout(info: &T, name: &[Char16]) { diff --git a/uefi/src/proto/media/load_file.rs b/uefi/src/proto/media/load_file.rs index 665145a46..ead2c5e83 100644 --- a/uefi/src/proto/media/load_file.rs +++ b/uefi/src/proto/media/load_file.rs @@ -2,15 +2,15 @@ //! LoadFile and LoadFile2 protocols. -use crate::proto::unsafe_protocol; #[cfg(doc)] use crate::Status; +use crate::proto::unsafe_protocol; #[cfg(all(feature = "alloc", feature = "unstable"))] use alloc::alloc::Global; use uefi_raw::protocol::media::{LoadFile2Protocol, LoadFileProtocol}; #[cfg(feature = "alloc")] use { - crate::{mem::make_boxed, proto::device_path::DevicePath, Result, StatusExt}, + crate::{Result, StatusExt, mem::make_boxed, proto::device_path::DevicePath}, alloc::boxed::Box, uefi::proto::BootPolicy, uefi_raw::Boolean, diff --git a/uefi/src/proto/media/partition.rs b/uefi/src/proto/media/partition.rs index 99f1c774e..1230c8e49 100644 --- a/uefi/src/proto/media/partition.rs +++ b/uefi/src/proto/media/partition.rs @@ -3,7 +3,7 @@ //! Partition information protocol. use crate::proto::unsafe_protocol; -use crate::{guid, Char16, Guid}; +use crate::{Char16, Guid, guid}; newtype_enum! { /// MBR OS type. diff --git a/uefi/src/proto/network/http.rs b/uefi/src/proto/network/http.rs index c808476e2..ea3ab2519 100644 --- a/uefi/src/proto/network/http.rs +++ b/uefi/src/proto/network/http.rs @@ -9,7 +9,7 @@ use alloc::string::String; use alloc::vec; use alloc::vec::Vec; -use core::ffi::{c_char, c_void, CStr}; +use core::ffi::{CStr, c_char, c_void}; use core::ptr; use log::debug; diff --git a/uefi/src/proto/network/ip4config2.rs b/uefi/src/proto/network/ip4config2.rs index f6b9b7c64..66b99bfae 100644 --- a/uefi/src/proto/network/ip4config2.rs +++ b/uefi/src/proto/network/ip4config2.rs @@ -13,10 +13,10 @@ use uefi::boot::ScopedProtocol; use uefi::prelude::*; use uefi::proto::unsafe_protocol; use uefi::{print, println}; +use uefi_raw::Ipv4Address; use uefi_raw::protocol::network::ip4_config2::{ Ip4Config2DataType, Ip4Config2InterfaceInfo, Ip4Config2Policy, Ip4Config2Protocol, }; -use uefi_raw::Ipv4Address; /// IP4 Config2 [`Protocol`]. Configure IPv4 networking. /// diff --git a/uefi/src/proto/network/snp.rs b/uefi/src/proto/network/snp.rs index 208477d59..4f7456fcc 100644 --- a/uefi/src/proto/network/snp.rs +++ b/uefi/src/proto/network/snp.rs @@ -16,8 +16,8 @@ use crate::{Result, StatusExt}; use core::ffi::c_void; use core::ptr; use core::ptr::NonNull; -use uefi_raw::protocol::network::snp::SimpleNetworkProtocol; use uefi_raw::Boolean; +use uefi_raw::protocol::network::snp::SimpleNetworkProtocol; pub use uefi_raw::protocol::network::snp::{ InterruptStatus, NetworkMode, NetworkState, NetworkStatistics, ReceiveFlags, diff --git a/uefi/src/proto/nvme/pass_thru.rs b/uefi/src/proto/nvme/pass_thru.rs index 668b70734..6e667ba65 100644 --- a/uefi/src/proto/nvme/pass_thru.rs +++ b/uefi/src/proto/nvme/pass_thru.rs @@ -3,15 +3,15 @@ //! NVM Express Pass Thru Protocol. use super::{NvmeRequest, NvmeResponse}; +use crate::StatusExt; use crate::mem::{AlignedBuffer, PoolAllocation}; use crate::proto::device_path::PoolDevicePathNode; -use crate::StatusExt; use core::alloc::LayoutError; use core::ptr::{self, NonNull}; use uefi_macros::unsafe_protocol; +use uefi_raw::Status; use uefi_raw::protocol::device_path::DevicePathProtocol; use uefi_raw::protocol::nvme::{NvmExpressCompletion, NvmExpressPassThruProtocol}; -use uefi_raw::Status; /// Nvme Pass Thru Protocol Mode structure. /// diff --git a/uefi/src/proto/scsi/pass_thru.rs b/uefi/src/proto/scsi/pass_thru.rs index 5d256d184..3d8dc006a 100644 --- a/uefi/src/proto/scsi/pass_thru.rs +++ b/uefi/src/proto/scsi/pass_thru.rs @@ -3,17 +3,17 @@ //! Extended SCSI Pass Thru protocols. use super::{ScsiRequest, ScsiResponse}; +use crate::StatusExt; use crate::mem::{AlignedBuffer, PoolAllocation}; use crate::proto::device_path::PoolDevicePathNode; use crate::proto::unsafe_protocol; -use crate::StatusExt; use core::alloc::LayoutError; use core::ptr::{self, NonNull}; +use uefi_raw::Status; use uefi_raw::protocol::device_path::DevicePathProtocol; use uefi_raw::protocol::scsi::{ ExtScsiPassThruMode, ExtScsiPassThruProtocol, SCSI_TARGET_MAX_BYTES, }; -use uefi_raw::Status; /// Structure representing a SCSI target address. pub type ScsiTarget = [u8; SCSI_TARGET_MAX_BYTES]; diff --git a/uefi/src/proto/shell_params.rs b/uefi/src/proto/shell_params.rs index 2d4d60209..288bd47a7 100644 --- a/uefi/src/proto/shell_params.rs +++ b/uefi/src/proto/shell_params.rs @@ -3,7 +3,7 @@ //! `ShellParams` protocol use crate::proto::unsafe_protocol; -use crate::{data_types, Char16}; +use crate::{Char16, data_types}; use core::slice::from_raw_parts; use uefi_raw::protocol::shell_params::ShellParametersProtocol; diff --git a/uefi/src/proto/string/unicode_collation.rs b/uefi/src/proto/string/unicode_collation.rs index 0836298f6..bab4d6f87 100644 --- a/uefi/src/proto/string/unicode_collation.rs +++ b/uefi/src/proto/string/unicode_collation.rs @@ -5,7 +5,7 @@ //! This protocol is used in the boot services environment to perform //! lexical comparison functions on Unicode strings for given languages. -use crate::data_types::{CStr16, CStr8}; +use crate::data_types::{CStr8, CStr16}; use crate::proto::unsafe_protocol; use core::cmp::Ordering; use core::fmt::{self, Display, Formatter}; diff --git a/uefi/src/proto/tcg/v2.rs b/uefi/src/proto/tcg/v2.rs index d13573d6e..39c425bba 100644 --- a/uefi/src/proto/tcg/v2.rs +++ b/uefi/src/proto/tcg/v2.rs @@ -12,7 +12,7 @@ //! [TCG]: https://trustedcomputinggroup.org/ //! [TPM]: https://en.wikipedia.org/wiki/Trusted_Platform_Module -use super::{v1, AlgorithmId, EventType, HashAlgorithm, PcrIndex}; +use super::{AlgorithmId, EventType, HashAlgorithm, PcrIndex, v1}; use crate::data_types::{Align, PhysicalAddress, UnalignedSlice}; use crate::proto::unsafe_protocol; use crate::util::{ptr_write_unaligned_and_add, usize_from_u32}; diff --git a/uefi/src/result/status.rs b/uefi/src/result/status.rs index a1ea354b6..f66ac1926 100644 --- a/uefi/src/result/status.rs +++ b/uefi/src/result/status.rs @@ -95,9 +95,11 @@ mod tests { assert!(Status::BUFFER_TOO_SMALL.to_result().is_err()); assert_eq!(Status::SUCCESS.to_result_with_val(|| 123).unwrap(), 123); - assert!(Status::WARN_DELETE_FAILURE - .to_result_with_val(|| 123) - .is_err()); + assert!( + Status::WARN_DELETE_FAILURE + .to_result_with_val(|| 123) + .is_err() + ); assert!(Status::BUFFER_TOO_SMALL.to_result_with_val(|| 123).is_err()); assert!(Status::SUCCESS.to_result_with_err(|_| 123).is_ok()); diff --git a/uefi/src/runtime.rs b/uefi/src/runtime.rs index 4f8966224..624897399 100644 --- a/uefi/src/runtime.rs +++ b/uefi/src/runtime.rs @@ -16,9 +16,9 @@ use uefi_raw::table::boot::MemoryDescriptor; #[cfg(feature = "alloc")] use { - crate::mem::make_boxed, crate::CString16, crate::Guid, + crate::mem::make_boxed, alloc::borrow::ToOwned, alloc::boxed::Box, alloc::{vec, vec::Vec}, diff --git a/uefi/src/table/cfg.rs b/uefi/src/table/cfg.rs index 408871591..ad5a825b5 100644 --- a/uefi/src/table/cfg.rs +++ b/uefi/src/table/cfg.rs @@ -11,7 +11,7 @@ //! //! See . -use crate::{guid, Guid}; +use crate::{Guid, guid}; use bitflags::bitflags; use core::ffi::c_void; diff --git a/xtask/src/cargo.rs b/xtask/src/cargo.rs index cd982332d..af6e3fe80 100644 --- a/xtask/src/cargo.rs +++ b/xtask/src/cargo.rs @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 use crate::arch::UefiArch; -use anyhow::{bail, Result}; +use anyhow::{Result, bail}; use std::env; use std::ffi::OsString; use std::process::Command; diff --git a/xtask/src/check_raw.rs b/xtask/src/check_raw.rs index a696fd175..0930e639a 100644 --- a/xtask/src/check_raw.rs +++ b/xtask/src/check_raw.rs @@ -17,9 +17,9 @@ use syn::punctuated::Punctuated; use syn::spanned::Spanned; use syn::token::Comma; use syn::{ - parenthesized, Abi, Attribute, Field, Fields, FieldsNamed, FieldsUnnamed, File, Item, - ItemConst, ItemMacro, ItemStruct, ItemType, ItemUnion, LitInt, ReturnType, Type, TypeArray, - TypeBareFn, TypePtr, Visibility, + Abi, Attribute, Field, Fields, FieldsNamed, FieldsUnnamed, File, Item, ItemConst, ItemMacro, + ItemStruct, ItemType, ItemUnion, LitInt, ReturnType, Type, TypeArray, TypeBareFn, TypePtr, + Visibility, parenthesized, }; use walkdir::WalkDir; @@ -492,22 +492,26 @@ mod tests { }; // Valid fn ptr. - assert!(check_fn_ptr( - &parse_quote! { - unsafe extern "efiapi" fn() - }, - src(), - ) - .is_ok()); + assert!( + check_fn_ptr( + &parse_quote! { + unsafe extern "efiapi" fn() + }, + src(), + ) + .is_ok() + ); // Valid fn ptr with c-variadics. - assert!(check_fn_ptr( - &parse_quote! { - unsafe extern "C" fn(usize, ...) - }, - src(), - ) - .is_ok()); + assert!( + check_fn_ptr( + &parse_quote! { + unsafe extern "C" fn(usize, ...) + }, + src(), + ) + .is_ok() + ); // Not `extern efiapi`. check_fn_err( @@ -545,16 +549,18 @@ mod tests { #[test] fn test_struct() { // Valid struct. - assert!(check_struct( - &parse_quote! { - #[repr(C)] - pub struct S { - pub f: u32, - } - }, - src(), - ) - .is_ok()); + assert!( + check_struct( + &parse_quote! { + #[repr(C)] + pub struct S { + pub f: u32, + } + }, + src(), + ) + .is_ok() + ); // Missing `pub` on struct. check_item_err( @@ -637,17 +643,19 @@ mod tests { #[test] fn test_union() { // Valid union. - assert!(check_union( - &parse_quote! { - #[repr(C)] - pub union U { - pub a: u32, - pub b: u64, - } - }, - src(), - ) - .is_ok()); + assert!( + check_union( + &parse_quote! { + #[repr(C)] + pub union U { + pub a: u32, + pub b: u64, + } + }, + src(), + ) + .is_ok() + ); // Missing `pub` on union. check_item_err( diff --git a/xtask/src/device_path/field.rs b/xtask/src/device_path/field.rs index 2406e4b0a..b835ef9df 100644 --- a/xtask/src/device_path/field.rs +++ b/xtask/src/device_path/field.rs @@ -2,7 +2,7 @@ use crate::device_path::util::is_doc_attr; use proc_macro2::{Span, TokenStream}; -use quote::{quote, ToTokens, TokenStreamExt}; +use quote::{ToTokens, TokenStreamExt, quote}; use syn::{Attribute, Expr, ExprLit, Field, Ident, Lit, Path, Type, TypeArray}; /// A fixed-size non-array type. diff --git a/xtask/src/device_path/group.rs b/xtask/src/device_path/group.rs index b4767edd1..16ee3d279 100644 --- a/xtask/src/device_path/group.rs +++ b/xtask/src/device_path/group.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use super::node::{is_node_attr, Node}; +use super::node::{Node, is_node_attr}; use heck::ToUpperCamelCase; use proc_macro2::{Span, TokenStream}; use quote::quote; diff --git a/xtask/src/device_path/mod.rs b/xtask/src/device_path/mod.rs index b03fa5e03..caffa2f02 100644 --- a/xtask/src/device_path/mod.rs +++ b/xtask/src/device_path/mod.rs @@ -6,7 +6,7 @@ mod node; mod util; use crate::opt::GenCodeOpt; -use anyhow::{bail, Result}; +use anyhow::{Result, bail}; use fs_err as fs; use group::NodeGroup; use proc_macro2::TokenStream; @@ -54,7 +54,7 @@ fn gen_uefi_raw_code_as_string(groups: &[NodeGroup]) -> Result { use bitflags::bitflags; use crate::protocol::device_path; use crate::table::boot::MemoryType; - use crate::{guid, Guid, IpAddress}; + use crate::{Guid, IpAddress, guid}; use device_path::DevicePathProtocol as DevicePathHeader; #[cfg(doc)] use device_path::DeviceType; diff --git a/xtask/src/device_path/util.rs b/xtask/src/device_path/util.rs index 297c48dac..59cdc6627 100644 --- a/xtask/src/device_path/util.rs +++ b/xtask/src/device_path/util.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use anyhow::{bail, Context, Result}; +use anyhow::{Context, Result, bail}; use std::io::Write; use std::process::{Command, Stdio}; use std::thread; diff --git a/xtask/src/disk.rs b/xtask/src/disk.rs index 753f091be..ec732cf94 100644 --- a/xtask/src/disk.rs +++ b/xtask/src/disk.rs @@ -2,7 +2,7 @@ use anyhow::Result; use fatfs::{Date, DateTime, FileSystem, FormatVolumeOptions, FsOptions, Time}; -use mbrman::{MBRPartitionEntry, BOOT_INACTIVE, CHS, MBR}; +use mbrman::{BOOT_INACTIVE, CHS, MBR, MBRPartitionEntry}; use std::io::{Cursor, Read, Write}; use std::ops::Range; use std::path::Path; diff --git a/xtask/src/main.rs b/xtask/src/main.rs index 89f61a285..3677cce47 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -14,7 +14,7 @@ mod tpm; mod util; use crate::opt::{FmtOpt, TestOpt}; -use anyhow::{bail, Result}; +use anyhow::{Result, bail}; use arch::UefiArch; use cargo::{Cargo, CargoAction, Feature, Package, TargetTypes}; use clap::Parser; diff --git a/xtask/src/qemu.rs b/xtask/src/qemu.rs index e40cdc2ed..f9bea7660 100644 --- a/xtask/src/qemu.rs +++ b/xtask/src/qemu.rs @@ -7,10 +7,10 @@ use crate::pipe::Pipe; use crate::tpm::Swtpm; use crate::util::command_to_string; use crate::{net, platform}; -use anyhow::{bail, Context, Result}; +use anyhow::{Context, Result, bail}; use ovmf_prebuilt::{FileType, Prebuilt, Source}; use regex::bytes::Regex; -use serde_json::{json, Value}; +use serde_json::{Value, json}; use std::env; use std::ffi::OsString; use std::io::{BufRead, BufReader, Read, Write}; diff --git a/xtask/src/util.rs b/xtask/src/util.rs index 90e02dada..398aa64d1 100644 --- a/xtask/src/util.rs +++ b/xtask/src/util.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 -use anyhow::{bail, Result}; +use anyhow::{Result, bail}; use std::process::Command; /// Format a `Command` as a `String. From b8e1df0f5d02a7b28e2e8147382338cf52b9520b Mon Sep 17 00:00:00 2001 From: Philipp Schuster Date: Sun, 23 Mar 2025 15:53:53 +0100 Subject: [PATCH 5/8] rustfmt: fixes for device_path_gen for 2024 edition --- rustfmt.toml | 8 ++++++++ uefi-raw/src/protocol/device_path/device_path_gen.rs | 2 +- uefi/src/proto/device_path/device_path_gen.rs | 6 +++--- xtask/src/device_path/mod.rs | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 rustfmt.toml diff --git a/rustfmt.toml b/rustfmt.toml new file mode 100644 index 000000000..f396ceb51 --- /dev/null +++ b/rustfmt.toml @@ -0,0 +1,8 @@ +# We keep this file explicitley to ensure that direct invocations of `rustfmt` +# also use the proper style edition. Unlike `cargo fmt`, which forwards the +# Rust edition specified in Cargo.toml to `rustfmt`, `rustfmt` still defaults to +# the 2021 edition and is unaware of `Cargo.toml`. +# +# We use a direct invocation of `rustfmt` in our device path generation code. + +style_edition = "2024" diff --git a/uefi-raw/src/protocol/device_path/device_path_gen.rs b/uefi-raw/src/protocol/device_path/device_path_gen.rs index 9914779c4..825a27929 100644 --- a/uefi-raw/src/protocol/device_path/device_path_gen.rs +++ b/uefi-raw/src/protocol/device_path/device_path_gen.rs @@ -10,7 +10,7 @@ #![allow(missing_debug_implementations)] use crate::protocol::device_path; use crate::table::boot::MemoryType; -use crate::{guid, Guid, IpAddress}; +use crate::{Guid, IpAddress, guid}; use bitflags::bitflags; use device_path::DevicePathProtocol as DevicePathHeader; #[cfg(doc)] diff --git a/uefi/src/proto/device_path/device_path_gen.rs b/uefi/src/proto/device_path/device_path_gen.rs index ef02e1da3..9b0c35f3e 100644 --- a/uefi/src/proto/device_path/device_path_gen.rs +++ b/uefi/src/proto/device_path/device_path_gen.rs @@ -15,7 +15,7 @@ use crate::proto::device_path::{ self, DevicePathHeader, DevicePathNode, DeviceSubType, DeviceType, NodeConversionError, }; use crate::proto::network::IpAddress; -use crate::{guid, Guid}; +use crate::{Guid, guid}; use bitflags::bitflags; use core::mem::{size_of, size_of_val}; use core::ptr::addr_of; @@ -3647,10 +3647,10 @@ impl TryFrom<&DevicePathNode> for DevicePathNodeEnum<'_> { /// Build device paths from their component nodes. pub mod build { use super::*; + use crate::CStr16; use crate::proto::device_path::build::{BuildError, BuildNode}; use crate::proto::device_path::{DeviceSubType, DeviceType}; - use crate::CStr16; - use core::mem::{size_of_val, MaybeUninit}; + use core::mem::{MaybeUninit, size_of_val}; /// Device path build nodes for [`DeviceType::END`]. pub mod end { use super::*; diff --git a/xtask/src/device_path/mod.rs b/xtask/src/device_path/mod.rs index caffa2f02..821a705b6 100644 --- a/xtask/src/device_path/mod.rs +++ b/xtask/src/device_path/mod.rs @@ -73,7 +73,7 @@ fn gen_uefi_code_as_string(groups: &[NodeGroup]) -> Result { let code = quote!( use bitflags::bitflags; use crate::data_types::UnalignedSlice; - use crate::{guid, Guid}; + use crate::{Guid, guid}; use crate::polyfill::maybe_uninit_slice_as_mut_ptr; use crate::proto::device_path::{ self, DevicePathHeader, DevicePathNode, DeviceSubType, DeviceType, From 90f24de04dadb11d84a5aaa18ce837cb9be37aec Mon Sep 17 00:00:00 2001 From: Philipp Schuster Date: Sun, 23 Mar 2025 15:45:52 +0100 Subject: [PATCH 6/8] 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 56357b8e1..6f23a291d 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 0b01552c3..16fcf029a 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 c220cf8e3..d9beee89f 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 63079f7d2..ed4801984 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 b9297b0ee..8fab63344 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 132075592..438d99fc5 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 32f18a1af..f2c01ece4 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 673068fb6..b70028bec 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 4707e3ada..bed7c92a9 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 3ab91c4a4..df43d53e5 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 2f8feeb03..51811d786 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 d138d70a3..5fca8f3e3 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 f84773129..1834822c3 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 a96e56278..ceff0053b 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 3481195b8..86423950d 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 c6603e339..9f5eb82fb 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 4abe0cda1..0619f80ba 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 b835ef9df..fdb54c420 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, From 532eacb7dd3c220fc9d195220906cb7360281982 Mon Sep 17 00:00:00 2001 From: Philipp Schuster Date: Sat, 17 May 2025 13:30:28 +0200 Subject: [PATCH 7/8] clippy: add const to more fns --- uefi/src/mem/aligned_buffer.rs | 2 +- uefi/src/mem/memory_map/impl_.rs | 2 +- uefi/src/proto/ata/pass_thru.rs | 2 +- uefi/src/proto/console/gop.rs | 2 +- uefi/src/proto/console/text/output.rs | 2 +- uefi/src/proto/device_path/build.rs | 2 +- uefi/src/proto/loaded_image.rs | 4 ++-- uefi/src/proto/network/mod.rs | 2 +- uefi/src/proto/nvme/pass_thru.rs | 2 +- uefi/src/proto/scsi/pass_thru.rs | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/uefi/src/mem/aligned_buffer.rs b/uefi/src/mem/aligned_buffer.rs index d9beee89f..0318e64e1 100644 --- a/uefi/src/mem/aligned_buffer.rs +++ b/uefi/src/mem/aligned_buffer.rs @@ -47,7 +47,7 @@ impl AlignedBuffer { /// Get a mutable pointer to the aligned memory region managed by this instance. #[must_use] - pub fn ptr_mut(&mut self) -> *mut u8 { + pub const fn ptr_mut(&mut self) -> *mut u8 { self.ptr.as_ptr() } diff --git a/uefi/src/mem/memory_map/impl_.rs b/uefi/src/mem/memory_map/impl_.rs index ed4801984..2df199507 100644 --- a/uefi/src/mem/memory_map/impl_.rs +++ b/uefi/src/mem/memory_map/impl_.rs @@ -335,7 +335,7 @@ impl MemoryMapBackingMemory { /// Returns a mutable slice to the underlying memory. #[must_use] - pub fn as_mut_slice(&mut self) -> &mut [u8] { + pub const fn as_mut_slice(&mut self) -> &mut [u8] { unsafe { self.0.as_mut() } } } diff --git a/uefi/src/proto/ata/pass_thru.rs b/uefi/src/proto/ata/pass_thru.rs index 0edb41600..3b7a277c5 100644 --- a/uefi/src/proto/ata/pass_thru.rs +++ b/uefi/src/proto/ata/pass_thru.rs @@ -105,7 +105,7 @@ pub struct AtaDevice<'a> { } impl AtaDevice<'_> { - fn proto_mut(&mut self) -> *mut AtaPassThruProtocol { + const fn proto_mut(&mut self) -> *mut AtaPassThruProtocol { ptr::from_ref(self.proto).cast_mut() } diff --git a/uefi/src/proto/console/gop.rs b/uefi/src/proto/console/gop.rs index 8c0e1b020..81ad17afa 100644 --- a/uefi/src/proto/console/gop.rs +++ b/uefi/src/proto/console/gop.rs @@ -569,7 +569,7 @@ impl FrameBuffer<'_> { /// /// On some implementations this framebuffer pointer can be used after /// exiting boot services, but that is not guaranteed by the UEFI Specification. - pub fn as_mut_ptr(&mut self) -> *mut u8 { + pub const fn as_mut_ptr(&mut self) -> *mut u8 { self.base } diff --git a/uefi/src/proto/console/text/output.rs b/uefi/src/proto/console/text/output.rs index 8e94f032c..6eb7ab5fb 100644 --- a/uefi/src/proto/console/text/output.rs +++ b/uefi/src/proto/console/text/output.rs @@ -72,7 +72,7 @@ impl Output { /// Returns an iterator of all supported text modes. // TODO: Bring back impl Trait once the story around bounds improves - pub fn modes(&mut self) -> OutputModeIter<'_> { + pub const fn modes(&mut self) -> OutputModeIter<'_> { let max = self.data().max_mode as usize; OutputModeIter { output: self, diff --git a/uefi/src/proto/device_path/build.rs b/uefi/src/proto/device_path/build.rs index bed7c92a9..66efe2c2f 100644 --- a/uefi/src/proto/device_path/build.rs +++ b/uefi/src/proto/device_path/build.rs @@ -79,7 +79,7 @@ pub struct DevicePathBuilder<'a> { impl<'a> DevicePathBuilder<'a> { /// Create a builder backed by a statically-sized buffer. - pub fn with_buf(buf: &'a mut [MaybeUninit]) -> Self { + pub const fn with_buf(buf: &'a mut [MaybeUninit]) -> Self { Self { storage: BuilderStorage::Buf { buf, offset: 0 }, } diff --git a/uefi/src/proto/loaded_image.rs b/uefi/src/proto/loaded_image.rs index df43d53e5..33a526498 100644 --- a/uefi/src/proto/loaded_image.rs +++ b/uefi/src/proto/loaded_image.rs @@ -131,7 +131,7 @@ impl LoadedImage { /// long enough. /// /// [shim]: https://github.com/rhboot/shim/blob/4d64389c6c941d21548b06423b8131c872e3c3c7/pe.c#L1143 - pub unsafe fn set_image(&mut self, data: *const c_void, size: u64) { + pub const unsafe fn set_image(&mut self, data: *const c_void, size: u64) { self.0.image_base = data; self.0.image_size = size; } @@ -167,7 +167,7 @@ impl LoadedImage { /// must ensure that the memory lives long enough. /// /// [`boot::start_image`]: crate::boot::start_image - pub unsafe fn set_load_options(&mut self, options: *const u8, size: u32) { + pub const unsafe fn set_load_options(&mut self, options: *const u8, size: u32) { self.0.load_options = options.cast(); self.0.load_options_size = size; } diff --git a/uefi/src/proto/network/mod.rs b/uefi/src/proto/network/mod.rs index b3eb665b6..925287f2c 100644 --- a/uefi/src/proto/network/mod.rs +++ b/uefi/src/proto/network/mod.rs @@ -58,7 +58,7 @@ impl IpAddress { } #[must_use] - fn as_raw_ptr_mut(&mut self) -> *mut uefi_raw::IpAddress { + const fn as_raw_ptr_mut(&mut self) -> *mut uefi_raw::IpAddress { // The uefi-raw type is defined differently, but the layout is // compatible. self.0.as_mut_ptr().cast() diff --git a/uefi/src/proto/nvme/pass_thru.rs b/uefi/src/proto/nvme/pass_thru.rs index 6e667ba65..ece5954e9 100644 --- a/uefi/src/proto/nvme/pass_thru.rs +++ b/uefi/src/proto/nvme/pass_thru.rs @@ -119,7 +119,7 @@ pub struct NvmeNamespace<'a> { } impl NvmeNamespace<'_> { - fn proto_mut(&mut self) -> *mut NvmExpressPassThruProtocol { + const fn proto_mut(&mut self) -> *mut NvmExpressPassThruProtocol { ptr::from_ref(self.proto).cast_mut() } diff --git a/uefi/src/proto/scsi/pass_thru.rs b/uefi/src/proto/scsi/pass_thru.rs index 3d8dc006a..7070902eb 100644 --- a/uefi/src/proto/scsi/pass_thru.rs +++ b/uefi/src/proto/scsi/pass_thru.rs @@ -130,7 +130,7 @@ pub struct ScsiDevice<'a> { target_lun: ScsiTargetLun, } impl ScsiDevice<'_> { - fn proto_mut(&mut self) -> *mut ExtScsiPassThruProtocol { + const fn proto_mut(&mut self) -> *mut ExtScsiPassThruProtocol { ptr::from_ref(self.proto).cast_mut() } From 6eac8c128aa538587dc72bf1b8a085a3b29bcdfc Mon Sep 17 00:00:00 2001 From: Philipp Schuster Date: Sun, 23 Mar 2025 15:47:19 +0100 Subject: [PATCH 8/8] doc: update changelogs --- uefi-macros/CHANGELOG.md | 3 +++ uefi-raw/CHANGELOG.md | 4 ++++ uefi/CHANGELOG.md | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/uefi-macros/CHANGELOG.md b/uefi-macros/CHANGELOG.md index 4c3a3102f..b84705b0c 100644 --- a/uefi-macros/CHANGELOG.md +++ b/uefi-macros/CHANGELOG.md @@ -1,5 +1,8 @@ # uefi-macros - [Unreleased] +## Changed + +- **Breaking:** The MSRV is now 1.85.1 and the crate uses the Rust 2024 edition. # uefi-macros - 0.18.1 (2025-05-04) diff --git a/uefi-raw/CHANGELOG.md b/uefi-raw/CHANGELOG.md index 12304e015..b6e5acd49 100644 --- a/uefi-raw/CHANGELOG.md +++ b/uefi-raw/CHANGELOG.md @@ -23,6 +23,10 @@ - `DevicePathProtocol` now derives `Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash` +## Changed + +- **Breaking:** The MSRV is now 1.85.1 and the crate uses the Rust 2024 edition. + # uefi-raw - 0.10.0 (2025-02-07) diff --git a/uefi/CHANGELOG.md b/uefi/CHANGELOG.md index 838e1173c..c31ba7949 100644 --- a/uefi/CHANGELOG.md +++ b/uefi/CHANGELOG.md @@ -8,7 +8,7 @@ - `table::cfg::*_GUID` constants now deprecated. Use `ConfigTableEntry::*_GUID` instead. - `system::with_config_table`, `system::with_stdin`, `system::with_stdout` and `system::with_stderr` now take mutably closure. - +- **Breaking:** The MSRV is now 1.85.1 and the crate uses the Rust 2024 edition. # uefi - 0.35.0 (2025-05-04)