//! Hardware platform interface

use abi::error::Error;

use crate::arch::CpuMessage;

use super::{
    interrupt::{ExternalInterruptController, IpiDeliveryTarget},
    timer::TimestampSource,
};

/// Platform interface for interacting with a general hardware set
pub trait Platform {
    /// Returns the platform's primary timestamp source.
    ///
    /// # Note
    ///
    /// May not be initialized at the moment of calling.
    fn timestamp_source(&self) -> &dyn TimestampSource;
}
