/* * extended pps api / kernel pll/fll entry point * * feed reference time stamps to PPS engine * * will simulate a PPS event and feed * the NTP PLL/FLL if requested. * * the ref time stamps should be roughly once * a second but do not need to be exactly in phase * with the UTC second but should be close to it. * this relaxation of requirements allows callout * driven timestamping mechanisms to feed to pps * capture/kernel pll logic. * * calling pattern is: * pps_capture() (for PPS_REFEVNT_{CAPTURE|CAPCUR}) * read timestamp from reference source * pps_ref_event() * * supported refmodes: * PPS_REFEVNT_CAPTURE * use system timestamp of pps_capture() * PPS_REFEVNT_CURRENT * use system timestamp of this call * PPS_REFEVNT_CAPCUR * use average of read capture and current system time stamp * PPS_REFEVNT_PPS * assume timestamp on second mark - ref_ts is ignored * */