ClockBound Shared Memory
Overview
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
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.Disrupted: the clock has been disrupted and the accuracy of time cannot be bounded.
Finite State Machine (FSM)
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:

Errors returned by all low-level ClockBound APIs
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.SegmentVersionNotSupported: the shared memory segment version is not supported.