@@ -42,7 +42,7 @@ use core::ops::{Deref, DerefMut};
42
42
use core:: ptr:: { self , NonNull } ;
43
43
use core:: sync:: atomic:: { AtomicPtr , Ordering } ;
44
44
use core:: { mem, slice} ;
45
- use uefi_raw:: table:: boot:: InterfaceType ;
45
+ use uefi_raw:: table:: boot:: { InterfaceType , TimerDelay } ;
46
46
#[ cfg( feature = "alloc" ) ]
47
47
use { alloc:: vec:: Vec , uefi:: ResultExt } ;
48
48
@@ -472,9 +472,9 @@ pub fn set_timer(event: &Event, trigger_time: TimerTrigger) -> Result {
472
472
let bt = unsafe { bt. as_ref ( ) } ;
473
473
474
474
let ( ty, time) = match trigger_time {
475
- TimerTrigger :: Cancel => ( 0 , 0 ) ,
476
- TimerTrigger :: Periodic ( hundreds_ns ) => ( 1 , hundreds_ns ) ,
477
- TimerTrigger :: Relative ( hundreds_ns ) => ( 2 , hundreds_ns ) ,
475
+ TimerTrigger :: Cancel => ( TimerDelay :: CANCEL , 0 ) ,
476
+ TimerTrigger :: Periodic ( period ) => ( TimerDelay :: PERIODIC , period ) ,
477
+ TimerTrigger :: Relative ( delay ) => ( TimerDelay :: RELATIVE , delay ) ,
478
478
} ;
479
479
unsafe { ( bt. set_timer ) ( event. as_ptr ( ) , ty, time) } . to_result ( )
480
480
}
@@ -1688,19 +1688,29 @@ impl SearchType<'_> {
1688
1688
/// Event notification callback type.
1689
1689
pub type EventNotifyFn = unsafe extern "efiapi" fn ( event : Event , context : Option < NonNull < c_void > > ) ;
1690
1690
1691
- /// Timer events manipulation.
1691
+ /// Trigger type for events of type [`TIMER`].
1692
+ ///
1693
+ /// See [`set_timer`].
1694
+ ///
1695
+ /// [`TIMER`]: EventType::TIMER
1692
1696
#[ derive( Debug ) ]
1693
1697
pub enum TimerTrigger {
1694
- /// Cancel event's timer
1698
+ /// Remove the event's timer setting.
1695
1699
Cancel ,
1696
- /// The event is to be signaled periodically.
1697
- /// Parameter is the period in 100ns units.
1698
- /// Delay of 0 will be signalled on every timer tick.
1699
- Periodic ( u64 ) ,
1700
- /// The event is to be signaled once in 100ns units.
1701
- /// Parameter is the delay in 100ns units.
1702
- /// Delay of 0 will be signalled on next timer tick.
1703
- Relative ( u64 ) ,
1700
+
1701
+ /// Trigger the event periodically.
1702
+ Periodic (
1703
+ /// Duration between event signaling in units of 100ns. If set to zero,
1704
+ /// the event will be signaled on every timer tick.
1705
+ u64 ,
1706
+ ) ,
1707
+
1708
+ /// Trigger the event one time.
1709
+ Relative (
1710
+ /// Duration to wait before signaling the event in units of 100ns. If
1711
+ /// set to zero, the event will be signaled on the next timer tick.
1712
+ u64 ,
1713
+ ) ,
1704
1714
}
1705
1715
1706
1716
/// Opaque pointer returned by [`register_protocol_notify`] to be used
0 commit comments