This crate implements the low-level IPC functionality to share ClockErrorBound data and clock status over a shared memory segment. It provides a reader and writer implementation to facilitate operating on the shared memory segment.
Clock status are retrieved directly from chronyd
tracking data.
Unknown
: the status of the clock is unknown.Synchronized
: the clock is kept accurate by the synchronization daemon.FreeRunning
: the clock is free running and not updated by the synchronization daemon.
FSM drives a change in the clock status word stored in the ClockBound shared memory segment. Each transition in the FSM is triggered by chrony
. See following state diagram for clock status in shared memory:
SyscallError(Errno, &'static CStr)
: a system call failed.- variant includes the Errno struct with error details
- an indication on the origin of the system call that error'ed.
SegmentNotInitialized
: the shared memory segment is not initialized.SegmentMalformed
: the shared memory segment is initialized but malformed.CausalityBreach
: failed causality check when comparing timestamps.