summaryrefslogtreecommitdiff
path: root/gpsd.h-tail
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2014-08-22 16:14:39 -0400
committerEric S. Raymond <esr@thyrsus.com>2014-08-22 16:15:43 -0400
commite6d622fabf16b0ca90b18c8b30bfcf95bd2bf3af (patch)
treef6df2c5d43d3b0a49c8264fdf965bd05140fc40c /gpsd.h-tail
parentd1a9c349f3b868d52f015361ccf1cb2fad42e282 (diff)
downloadgpsd-e6d622fabf16b0ca90b18c8b30bfcf95bd2bf3af.tar.gz
Re-integrate Miroslav's support for large PPS offsets.
The factoring on this could use some cleanup. All regression tests pass. PPS is live in both gpsd and gpsmon.
Diffstat (limited to 'gpsd.h-tail')
-rw-r--r--gpsd.h-tail6
1 files changed, 5 insertions, 1 deletions
diff --git a/gpsd.h-tail b/gpsd.h-tail
index 4b08a4ab..c01327a7 100644
--- a/gpsd.h-tail
+++ b/gpsd.h-tail
@@ -475,7 +475,10 @@ struct gps_device_t {
int shmIndexPPS;
# endif /* PPS_ENABLE */
#endif /* NTPSHM_ENABLE */
- volatile timestamp_t last_fixtime; /* so updates happen once */
+ volatile struct {
+ timestamp_t real;
+ timestamp_t clock;
+ } last_fixtime; /* so updates happen once */
#ifdef PPS_ENABLE
#if defined(HAVE_SYS_TIMEPPS_H)
pps_handle_t kernelpps_handle;
@@ -839,6 +842,7 @@ extern unsigned int ais_binary_encode(struct ais_t *ais, /*@out@*/unsigned char
extern void ntpshm_context_init(struct gps_context_t *);
extern void ntpshm_session_init(struct gps_device_t *);
extern int ntpshm_put(struct gps_device_t *, int, struct timedrift_t *);
+extern void ntpshm_latch(struct gps_device_t *device, struct timedrift_t *td);
extern void ntpshm_link_deactivate(struct gps_device_t *);
extern void ntpshm_link_activate(struct gps_device_t *);