Skip to content

Commit 3a86c11

Browse files
committed
uefi: check_event: consume Event by reference
1 parent f5293c6 commit 3a86c11

File tree

5 files changed

+10
-9
lines changed

5 files changed

+10
-9
lines changed

uefi-test-runner/examples/input.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ fn read_keyboard_events(input: &mut Input) -> Result {
1111
println!("waiting for key press...");
1212

1313
// Pause until a keyboard event occurs.
14-
let mut events = [input.wait_for_key_event().unwrap()];
14+
let event = input.wait_for_key_event()?;
15+
let mut events = [event];
1516
boot::wait_for_event(&mut events).discard_errdata()?;
1617

1718
match input.read_key()? {

uefi-test-runner/src/boot/misc.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,7 @@ fn test_check_event() {
4545
unsafe { boot::create_event(EventType::NOTIFY_WAIT, Tpl::CALLBACK, Some(callback), None) }
4646
.unwrap();
4747

48-
let event_clone = unsafe { event.unsafe_clone() };
49-
let is_signaled = boot::check_event(event_clone).unwrap();
48+
let is_signaled = boot::check_event(&event).unwrap();
5049
assert!(!is_signaled);
5150

5251
boot::close_event(event).unwrap();
@@ -56,8 +55,8 @@ fn test_timer() {
5655
let timer_event =
5756
unsafe { boot::create_event_ex(EventType::TIMER, Tpl::CALLBACK, None, None, None) }
5857
.unwrap();
59-
let mut events = unsafe { [timer_event.unsafe_clone()] };
6058
boot::set_timer(&timer_event, TimerTrigger::Relative(5_0 /*00 ns */)).unwrap();
59+
let mut events = [unsafe { timer_event.unsafe_clone() }];
6160
assert_eq!(boot::wait_for_event(&mut events).unwrap(), 0);
6261

6362
boot::close_event(timer_event).unwrap();
@@ -89,7 +88,7 @@ fn test_callback_with_ctx() {
8988
.expect("Failed to create event with context")
9089
};
9190

92-
boot::check_event(event).expect("Failed to check event");
91+
boot::check_event(&event).expect("Failed to check event");
9392

9493
// Check that `data` was updated inside the event callback.
9594
assert_eq!(data, 456);

uefi-test-runner/src/proto/media.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ fn test_raw_disk_io2(handle: Handle) {
309309

310310
unsafe {
311311
// Create the completion event
312-
let mut event = boot::create_event(EventType::empty(), Tpl::NOTIFY, None, None)
312+
let event = boot::create_event(EventType::empty(), Tpl::NOTIFY, None, None)
313313
.expect("Failed to create disk I/O completion event");
314314

315315
// Initialise the task context
@@ -333,8 +333,7 @@ fn test_raw_disk_io2(handle: Handle) {
333333
.expect("Failed to initiate asynchronous disk I/O read");
334334

335335
// Wait for the transaction to complete
336-
boot::wait_for_event(core::slice::from_mut(&mut event))
337-
.expect("Failed to wait on completion event");
336+
boot::wait_for_event(&mut [event]).expect("Failed to wait on completion event");
338337

339338
// Verify that the disk's MBR signature is correct
340339
assert_eq!(task.token.transaction_status, Status::SUCCESS);

uefi/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
- **Breaking:** `proto::network::snp::SimpleNetwork::wait_for_packet` now
1414
returns `Option<Event>` instead of `&Event`. It has also been renamed to
1515
`wait_for_packet`.
16+
- `boot::check_event` now consumes `&Event` rather than `Event`, removing the
17+
need for unnecessary `Event::unsafe_clone()`s.
1618

1719
# uefi - v0.36.1 (2025-11-05)
1820

uefi/src/boot.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,7 @@ pub unsafe fn create_event_ex(
519519
/// * [`Status::INVALID_PARAMETER`]: `event` is of type [`NOTIFY_SIGNAL`].
520520
///
521521
/// [`NOTIFY_SIGNAL`]: EventType::NOTIFY_SIGNAL
522-
pub fn check_event(event: Event) -> Result<bool> {
522+
pub fn check_event(event: &Event) -> Result<bool> {
523523
let bt = boot_services_raw_panicking();
524524
let bt = unsafe { bt.as_ref() };
525525

0 commit comments

Comments
 (0)