Module Pclock

POSIX clock for MirageOS using Unix interfaces

Clock counting time since the Unix epoch. Subject to adjustment by e.g. NTP.

include Mirage_clock_lwt.PCLOCK
include Mirage_device.S with type t = unit
type +'a io

The type for potentially blocking I/O operation

type t = unit

The type representing the internal state of the device

val disconnect : t -> unit io

Disconnect from the device. While this might take some time to complete, it can never result in an error.

val now_d_ps : t -> int * int64

now_d_ps () is (d, ps) representing the POSIX time occuring at d * 86'400e12 + ps POSIX picoseconds from the epoch 1970-01-01 00:00:00 UTC. ps is in the range [0;86_399_999_999_999_999L].

val current_tz_offset_s : t -> int option

current_tz_offset_s () is the clock's current local time zone offset to UTC in seconds, if known. This is the duration local time - UTC time in seconds.

val period_d_ps : t -> (int * int64) option

period_d_ps () is Some (d, ps) representing the clock's picosecond period d * 86'400e12 + ps, if known. ps is in the range [0;86_399_999_999_999_999L].

val connect : unit -> t io