Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions components/patina_performance/src/component/performance.rs
Original file line number Diff line number Diff line change
Expand Up @@ -547,7 +547,7 @@ mod tests {
Rc<_>,
MockRuntimeServices,
MockFirmwareBasicBootPerfTable,
> as usize,
> as *const () as usize,
notify_function.unwrap() as usize
);
assert_eq!(&EVENT_GROUP_END_OF_DXE, event_group);
Expand Down Expand Up @@ -621,7 +621,7 @@ mod tests {
.withf_st(|_, _, f, _, group| {
(f.unwrap() as usize)
== fetch_and_add_mm_performance_records::<Rc<_>, MockBootServices, MockFirmwareBasicBootPerfTable>
as usize
as * const () as usize
&& group == &EVENT_GROUP_READY_TO_BOOT
})
.return_const_st(Ok(TEST_EVENT_HANDLE_2));
Expand Down
4 changes: 2 additions & 2 deletions patina_dxe_core/src/allocator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2000,8 +2000,8 @@ mod tests {
#[test]
fn free_pages_error_scenarios_should_be_handled_properly() {
with_locked_state(0x1000000, || {
assert_eq!(free_pages(0x12345000, usize::MAX & !0xFFF), efi::Status::INVALID_PARAMETER);
assert_eq!(free_pages(u64::MAX & !0xFFF, 0x10), efi::Status::INVALID_PARAMETER);
assert_eq!(free_pages(0x12345000, !0xFFF), efi::Status::INVALID_PARAMETER);
assert_eq!(free_pages(!0xFFF, 0x10), efi::Status::INVALID_PARAMETER);
assert_eq!(free_pages(0x12345678, 1), efi::Status::INVALID_PARAMETER);
assert_eq!(free_pages(0x12345000, 1), efi::Status::NOT_FOUND);
});
Expand Down
4 changes: 2 additions & 2 deletions patina_dxe_core/src/driver_services.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2092,7 +2092,7 @@ mod tests {
};
init_driver_services(&mut boot_services);

assert!(boot_services.connect_controller as usize == connect_controller as usize);
assert!(boot_services.disconnect_controller as usize == disconnect_controller as usize);
assert!(boot_services.connect_controller as usize == connect_controller as *const () as usize);
assert!(boot_services.disconnect_controller as usize == disconnect_controller as *const () as usize);
}
}
9 changes: 6 additions & 3 deletions patina_dxe_core/src/dxe_services.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2286,9 +2286,12 @@ mod tests {
assert_eq!(dxe_tbl.header.crc32, crc, "DXE Services table CRC32 should be valid");

// Spot-check a few function pointers are correctly wired
assert_eq!(dxe_tbl.add_memory_space as usize, add_memory_space as usize);
assert_eq!(dxe_tbl.dispatch as usize, MockCore::dispatch_efiapi as usize);
assert_eq!(dxe_tbl.process_firmware_volume as usize, MockCore::process_firmware_volume_efiapi as usize);
assert_eq!(dxe_tbl.add_memory_space as usize, add_memory_space as *const () as usize);
assert_eq!(dxe_tbl.dispatch as usize, MockCore::dispatch_efiapi as *const () as usize);
assert_eq!(
dxe_tbl.process_firmware_volume as usize,
MockCore::process_firmware_volume_efiapi as *const () as usize
);
});
}
}
19 changes: 14 additions & 5 deletions patina_dxe_core/src/event_db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -223,8 +223,8 @@ unsafe impl Send for crate::event_db::Event {}
impl fmt::Debug for Event {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let mut notify_func = 0;
if self.notify_function.is_some() {
notify_func = self.notify_function.unwrap() as usize;
if let Some(func) = self.notify_function {
notify_func = func as *const () as usize;
}

f.debug_struct("Event")
Expand Down Expand Up @@ -875,7 +875,10 @@ mod tests {
assert_eq!(events.get(&index).unwrap().event_type, EventType::TimerNotify);
assert_eq!(events.get(&index).unwrap().event_type as u32, efi::EVT_TIMER | efi::EVT_NOTIFY_SIGNAL);
assert_eq!(events.get(&index).unwrap().notify_tpl, efi::TPL_NOTIFY);
assert_eq!(events.get(&index).unwrap().notify_function.unwrap() as usize, test_notify_function as usize);
assert_eq!(
events.get(&index).unwrap().notify_function.unwrap() as usize,
test_notify_function as *const () as usize
);
assert_eq!(events.get(&index).unwrap().notify_context, None);
assert_eq!(events.get(&index).unwrap().event_group, None);
});
Expand Down Expand Up @@ -1700,7 +1703,10 @@ mod tests {
assert!(notification_data.is_ok());
let event_notification = notification_data.unwrap();
assert_eq!(event_notification.notify_tpl, efi::TPL_NOTIFY);
assert_eq!(event_notification.notify_function.unwrap() as usize, test_notify_function as usize);
assert_eq!(
event_notification.notify_function.unwrap() as usize,
test_notify_function as *const () as usize
);
assert_eq!(event_notification.notify_context.unwrap(), test_context);

let event = SPIN_LOCKED_EVENT_DB
Expand All @@ -1717,7 +1723,10 @@ mod tests {
assert!(notification_data.is_ok());
let event_notification = notification_data.unwrap();
assert_eq!(event_notification.notify_tpl, efi::TPL_NOTIFY);
assert_eq!(event_notification.notify_function.unwrap() as usize, test_notify_function as usize);
assert_eq!(
event_notification.notify_function.unwrap() as usize,
test_notify_function as *const () as usize
);
assert!(event_notification.notify_context.is_none());

let event = SPIN_LOCKED_EVENT_DB.create_event(efi::EVT_TIMER, efi::TPL_NOTIFY, None, None, None).unwrap();
Expand Down
18 changes: 9 additions & 9 deletions patina_dxe_core/src/events.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1374,15 +1374,15 @@ mod tests {
init_events_support(&mut boot_services);

// Verify function pointers are updated
assert!(boot_services.create_event as usize != dummy_create_event as usize);
assert!(boot_services.create_event_ex as usize != dummy_create_event_ex as usize);
assert!(boot_services.close_event as usize != dummy_close_event as usize);
assert!(boot_services.signal_event as usize != dummy_signal_event as usize);
assert!(boot_services.wait_for_event as usize != dummy_wait_for_event as usize);
assert!(boot_services.check_event as usize != dummy_check_event as usize);
assert!(boot_services.set_timer as usize != dummy_set_timer as usize);
assert!(boot_services.raise_tpl as usize != dummy_raise_tpl as usize);
assert!(boot_services.restore_tpl as usize != dummy_restore_tpl as usize);
assert!(boot_services.create_event as usize != dummy_create_event as *const () as usize);
assert!(boot_services.create_event_ex as usize != dummy_create_event_ex as *const () as usize);
assert!(boot_services.close_event as usize != dummy_close_event as *const () as usize);
assert!(boot_services.signal_event as usize != dummy_signal_event as *const () as usize);
assert!(boot_services.wait_for_event as usize != dummy_wait_for_event as *const () as usize);
assert!(boot_services.check_event as usize != dummy_check_event as *const () as usize);
assert!(boot_services.set_timer as usize != dummy_set_timer as *const () as usize);
assert!(boot_services.raise_tpl as usize != dummy_raise_tpl as *const () as usize);
assert!(boot_services.restore_tpl as usize != dummy_restore_tpl as *const () as usize);
});
}
}
2 changes: 1 addition & 1 deletion rust-toolchain.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# - File Sync Settings: https://github.com/OpenDevicePartnership/patina-devops/blob/main/.sync/Files.yml

[toolchain]
channel = "nightly-2025-09-19" # One day post 1.90.0
channel = "nightly-2025-12-12" # One day post 1.92.0
targets = ["x86_64-unknown-uefi", "aarch64-unknown-uefi"]
components = ["rust-src", "clippy", "rustfmt", "rust-docs"]

Expand Down
3 changes: 1 addition & 2 deletions sdk/patina_macro/src/smbios_record_macro.rs
Original file line number Diff line number Diff line change
Expand Up @@ -235,8 +235,7 @@ pub(crate) fn smbios_record_derive(item: TokenStream) -> TokenStream {
};

// Generate serialize_strings helper
let serialize_strings = if record.string_pool_field.is_some() {
let pool_field = record.string_pool_field.as_ref().unwrap();
let serialize_strings = if let Some(pool_field) = record.string_pool_field.as_ref() {
quote! {
let mut string_bytes = alloc::vec::Vec::new();
if self.#pool_field.is_empty() {
Expand Down