Struct Clock
pub struct Clock<Reference = MonotonicTimeline, Output = SyntheticTimeline>(/* private fields */);
Expand description
An object representing a kernel clock, used to track the progress of time. A clock is a one-dimensional affine transformation of the clock monotonic reference timeline which may be atomically adjusted by a maintainer and observed by clients.
As essentially a subtype of Handle
, it can be freely interconverted.
Implementations§
§impl<Reference, Output> Clock<Reference, Output>
impl<Reference, Output> Clock<Reference, Output>
pub fn read(&self) -> Result<Instant<Output>, Status>
pub fn read(&self) -> Result<Instant<Output>, Status>
Perform a basic read of this clock. Wraps the zx_clock_read syscall. Requires
ZX_RIGHT_READ
and that the clock has had an initial time established.
pub unsafe fn read_mapped(
clock_addr: *const u8,
) -> Result<Instant<Output>, Status>
pub unsafe fn read_mapped( clock_addr: *const u8, ) -> Result<Instant<Output>, Status>
Perform a basic read of a mapped clock. Wraps the [zx_clock_read_mapped] syscall.
§Safety
|zx_clock_get_details_mapped| must only be called using a |clock_addr| which is the address of a clock’s state currently mapped into the caller’s address space using |zx_vmar_map_clock|. Attempting to get_details from any other address, or from a clock mapping which has been unmapped (completely or partially) will result in undefined behavior.
pub fn get_details(&self) -> Result<ClockDetails<Reference, Output>, Status>
pub fn get_details(&self) -> Result<ClockDetails<Reference, Output>, Status>
Get low level details of this clock’s current status. Wraps the
zx_clock_get_details syscall. Requires ZX_RIGHT_READ
.
pub unsafe fn get_details_mapped(
clock_addr: *const u8,
) -> Result<ClockDetails<Reference, Output>, Status>
pub unsafe fn get_details_mapped( clock_addr: *const u8, ) -> Result<ClockDetails<Reference, Output>, Status>
Get low level details of a mapped clock’s current status. Wraps the zx_clock_get_details_mapped syscall.
§Safety
|zx_clock_get_details_mapped| must only be called using a |clock_addr| which is the address of a clock’s state currently mapped into the caller’s address space using |zx_vmar_map_clock|. Attempting to get_details from any other address, or from a clock mapping which has been unmapped (completely or partially) will result in undefined behavior.
Trait Implementations§
§impl<Reference, Output> AsHandleRef for Clock<Reference, Output>
impl<Reference, Output> AsHandleRef for Clock<Reference, Output>
§fn as_handle_ref(&self) -> Unowned<'_, Handle>
fn as_handle_ref(&self) -> Unowned<'_, Handle>
object_wait_many
.