Struct optee_utee::time::Time
source · pub struct Time {
pub seconds: u32,
pub millis: u32,
}
Expand description
A millisecond resolution structure for saving the time.
Fields§
§seconds: u32
The field for the seconds.
millis: u32
The field for the milliseconds within this second.
Implementations§
source§impl Time
impl Time
sourcepub fn system_time(&mut self)
pub fn system_time(&mut self)
Retrieve the current system time. The origin of this system time is arbitrary and implementation-dependent. Different TA instances may even have different system times. The only guarantee is that the system time is not reset or rolled back during the life of a given TA instance, so it can be used to compute time differences and operation deadlines.
§Example
let mut time = Time::new();
time.system_time();
§Panics
- If the Implementation detects any error.
sourcepub fn wait(timeout: u32) -> Result<()>
pub fn wait(timeout: u32) -> Result<()>
Wait for the specified number of milliseconds or wait forever if timeout equals
raw::TEE_TIMEOUT_INFINITE
(0xFFFFFFFF). The waiting timer is System Time
.
§Parameters
timeout
: The number of milliseconds to wait, orraw::TEE_TIMEOUT_INFINITE
.
§Example
Time::wait(1000)?;
§Errors
Cancel
: If the wait has been cancelled.
§Panics
- If the Implementation detects any error.
sourcepub fn ta_time(&mut self) -> Result<()>
pub fn ta_time(&mut self) -> Result<()>
Retrieve the persisten time of the Trusted Application. Since the timer is not automatically set, this function should be called after set_ta_time. The time is a real-time source of time and the origin of this time is set individually by each Trusted Application. Also, the time SHALL persist across reboots.
§Example
let mut time = Time::new();
time.system_time();
time.set_ta_time()?;
time.ta_time()?;
§Errors
TimeNotSet
: Time is not set.TimeNeedsReset
: Time needs to be reset.Overflow
: The number of seconds in the TA Persistent Time overflows the range of au32
. The fieldseconds
is still set to the TA Persistent Time truncated to 32 bits.
§Panics
- If the Implementation detects any error.