<dec f='src/src/sys/sys/timepps.h' l='165' type='void pps_ref_event(struct pps_state * , int , struct bintime * , int )'/>
<use f='src/src/sys/kern/kern_tc.c' l='947' u='c' c='pps_event'/>
<def f='src/src/sys/kern/kern_tc.c' l='982' ll='1271' type='void pps_ref_event(struct pps_state * pps, int event, struct bintime * ref_ts, int refmode)'/>
<doc f='src/src/sys/kern/kern_tc.c' l='950'>/*
 * 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
 *
 */</doc>
