rust-raspberrypi-OS-tutorials/13_exceptions_part2_peripheral_IRQs/src/time.rs

38 lines
1.2 KiB
Rust
Raw Normal View History

2020-03-28 12:25:50 +00:00
// SPDX-License-Identifier: MIT OR Apache-2.0
//
2022-01-15 20:50:11 +00:00
// Copyright (c) 2020-2022 Andre Richter <andre.o.richter@gmail.com>
2020-03-28 12:25:50 +00:00
//! Timer primitives.
#[cfg(target_arch = "aarch64")]
#[path = "_arch/aarch64/time.rs"]
mod arch_time;
//--------------------------------------------------------------------------------------------------
// Architectural Public Reexports
//--------------------------------------------------------------------------------------------------
pub use arch_time::time_manager;
2020-03-28 12:25:50 +00:00
//--------------------------------------------------------------------------------------------------
// Public Definitions
//--------------------------------------------------------------------------------------------------
/// Timekeeping interfaces.
pub mod interface {
use core::time::Duration;
/// Time management functions.
pub trait TimeManager {
/// The timer's resolution.
fn resolution(&self) -> Duration;
/// The uptime since power-on of the device.
///
/// This includes time consumed by firmware and bootloaders.
fn uptime(&self) -> Duration;
/// Spin for a given duration.
fn spin_for(&self, duration: Duration);
}
}