Allow inlining on time driver boundary

This commit is contained in:
Dániel Buga 2025-02-03 17:20:35 +01:00
parent c65b6db318
commit 37b180c61e
No known key found for this signature in database
2 changed files with 5 additions and 0 deletions

View File

@ -139,11 +139,13 @@ extern "Rust" {
}
/// See [`Driver::now`]
#[inline]
pub fn now() -> u64 {
unsafe { _embassy_time_now() }
}
/// Schedule the given waker to be woken at `at`.
#[inline]
pub fn schedule_wake(at: u64, waker: &Waker) {
unsafe { _embassy_time_schedule_wake(at, waker) }
}
@ -157,11 +159,13 @@ macro_rules! time_driver_impl {
static $name: $t = $val;
#[no_mangle]
#[inline]
fn _embassy_time_now() -> u64 {
<$t as $crate::Driver>::now(&$name)
}
#[no_mangle]
#[inline]
fn _embassy_time_schedule_wake(at: u64, waker: &core::task::Waker) {
<$t as $crate::Driver>::schedule_wake(&$name, at, waker);
}

View File

@ -17,6 +17,7 @@ impl Instant {
pub const MAX: Instant = Instant { ticks: u64::MAX };
/// Returns an Instant representing the current time.
#[inline]
pub fn now() -> Instant {
Instant {
ticks: embassy_time_driver::now(),