summaryrefslogtreecommitdiff
path: root/gpsd.h-tail
Commit message (Collapse)AuthorAgeFilesLines
* Concurrency protection for ntpmon using memory barrier instructions.Eric S. Raymond2015-02-251-18/+0
|
* Turn some remnant timedrift_t instances to timedelta_t.Eric S. Raymond2015-02-241-5/+5
| | | | All regression tests pass.
* Move some double to timespec in chrony socket to preserve precision.Gary E. Miller2015-02-231-0/+4
|
* TOFF JSON message implemented and documented.Eric S. Raymond2015-02-231-3/+7
| | | | | | All regression tests pass. PPS observed live with gosmon. gpsmon presently ignores this message, but shout display its contents near PPS.
* Avoid overexposure of an internal mask. EOF_SET -> EOF_ISEric S. Raymond2015-02-201-9/+10
| | | | | | | | Also, use PPSDRIFT_SET as a client-side status flag for JSON PPS rather than the (not yet shipped) TIMEDRIFT_SET. Next release we're probably going to add a drift object for in-line time. No logic changes. All regression tests pass.
* Fixing broken build scons minimal=on ntpshm=onJon Schlueter2015-02-181-0/+2
| | | | missing ifdef guards around pps_thread_stash_fixtime()
* Revert the ntpshm allocation change - go back to using an external bool array.Eric S. Raymond2015-02-161-0/+1
| | | | | | | We're now back to no logic changes since code freeze. If SHM(1) still fails as Gray reported on the dev list, something else is going on. All regression tests pass.
* Repair the logic for setting a non-default SHM export segment.Eric S. Raymond2015-02-161-1/+1
| | | | | | Also, ensure this always happens within the regression-test driver. All regression tests pass.
* Remove unused and incorrect retval from timespec_strZbigniew Chyla2015-02-151-1/+1
| | | | | | | All callers ignore value returned by timespec_str. Additionally, the function returns simply the result of snprintf(), which is not necessarily the number of chars written to the buffer (if the buffer provided by the caller was too small).
* timespec_str: add "const" to input argumentZbigniew Chyla2015-02-151-1/+1
|
* Simplify NTP SHM segment creation.Eric S. Raymond2015-02-151-1/+0
| | | | | | This will avoid an object file compatibility break later. All regression tetrs pass. SHM segments allocate successfully in live testing.
* Replace Gary's magic number 22 with TIMESPEC_LEN.Eric S. Raymond2015-02-121-0/+3
| | | | All regression tests pass.
* Namespace cleanup.Eric S. Raymond2015-02-121-1/+1
|
* Mutex-lock the update of last-fix time.Eric S. Raymond2015-02-121-1/+3
|
* Shut up. splint!Eric S. Raymond2015-02-121-1/+3
| | | | All regression tests pass.
* Add some comments to TS_NORM()Gary E. Miller2015-02-111-2/+13
|
* Keeping TS_NORM() a macro too ugly, convert to inline functionGary E. Miller2015-02-111-20/+25
|
* Maybe this time I got the TS_NORM() corner case?Gary E. Miller2015-02-111-1/+1
|
* Another edge case in TS_NORM()Gary E. Miller2015-02-111-1/+1
|
* Fix TS_NORM for negative numbers.Gary E. Miller2015-02-111-6/+16
| | | | | | | Whoops, I thought I commited this last week. Fixes display of -0.000000001 as -1.999999999 This fixes a lot of PPS glitches.
* Remove some remnants of the adaptive-delay experiment.Eric S. Raymond2015-02-091-8/+0
| | | | All regression tests pass.
* Add TS_SUB() to subtract timespecs. Fix another double.Gary E. Miller2015-02-021-0/+8
|
* Fix insufficient precision in last_fixtime.clockGary E. Miller2015-02-011-1/+3
| | | | | | | | | | last_fixtime.clock and last_fixtime_clock were storing 63 bits of time in 53 bits of timestamp_t (double). Change timestamp_t to timespec to restore nSec precision. Along the way save some floating point that is slow in embedded systems that have no FPU.
* Back out the attempt to use VTIME.Eric S. Raymond2015-01-311-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to Matthias Drochner at http://lists.lysator.liu.se/pipermail/lsh-bugs/2003q4/000151.html: I thought I'd give lsh a try, just to see how it compares to openssh... The client didn't work well on NetBSD, got a message like "unexpected EWOULDBLOCK" on each keystroke. Looked a bit deeper and found that stdin is set to O_NONBLOCK and a raw tty mode with c_cc[VMIN] > 1 and c_cc[VTIME] > 0. I'll append a little test program which does the same. I've tried it on 3 operating systems (Linux, NetBSD, Digital UNIX), and it behaves differently on each: -on Linux, if a key is pressed, the read returns immediately with that one character -on NetBSD, the read returns with no data but EWOULDBLOCK -on D'UNIX, the poll() doesn't teturn before 4 keypresses are done; the read() returns these 4 characters Indeed, in SUSv2's termios page is a sentence which says that if both O_NONBLOCK and VTIME>0 are set, the behaviour is more or less undefined. I've solved my immediate problems by setting VMIN to 1 instead of 4 in unix_interact.c:do_make_raw(), but VTIME is still pointless, so I wouldn't call this a clean solution. All regression tests pass.
* Add missing pthread_mutex_init(&ppslast_mutex)Gary E. Miller2015-01-301-0/+3
| | | | | No error checking was previously done on uses of ppslast_mutex. So likely the mutex has never worked, just created the odd segfault.
* Create a logic path for each driver to set tty controls.Eric S. Raymond2015-01-291-0/+1
|
* Add a minimum packet length to every driver.Eric S. Raymond2015-01-291-0/+1
| | | | Length 0 means the minimum is unknown and the driver should use character I/O.
* Add gpsdecode -m option for dumping minimum packet lengths.Eric S. Raymond2015-01-291-0/+1
|
* Try a simpler adaptive-delay formula that produces shorter delays.Eric S. Raymond2015-01-271-4/+2
| | | | All regression tests pass.
* Fix clang's only warning in non-test code, about a cast in the shmexport code.Eric S. Raymond2015-01-271-1/+1
| | | | | | | All regression tests pass with both gcc- and clang-built binaries. One clang warning remains in the JSON test code.
* Fix bug reported on the dev list resulting from NTPSHMSEGS > MAX_DEVICES * 2.Eric S. Raymond2015-01-241-1/+1
| | | | | | As a side effect, simplify configuration slightly. All regression tests pass.
* Guard NTPSHM-related declarationsMatt2015-01-231-2/+2
| | | | | | | | | | | | | | These functions aren't called if ntpshm support is disabled, so there's no need to declare them. Fixes the following warning seen on cygwin with ntpshm disabled: In file included from gpsutils.c:22:0: gpsd.h:1215:80: warning: 'struct shmTime' declared inside parameter list extern int ntpshm_put(struct gps_device_t *, volatile struct shmTime *, struct timedrift_t *); ^ gpsd.h:1215:80: warning: its scope is only this definition or declaration, which is probably not what you want
* Guard includes of termios.h with #ifdef HAVE_TERMIOS_HMatt2015-01-231-0/+2
| | | | | | | | | | | | Guard includes of termios.h with #ifdef HAVE_TERMIOS_H. Test for termios.h in scons, and define/undefine HAVE_TERMIOS_H accordingly. Fixes the below error seen on cygwin, which lacks termios.h: In file included from gpsutils.c:22:0: gpsd.h:349:21: fatal error: termios.h: No such file or directory #include <termios.h> ^
* Introduce an adaptive delay into the main loop to prevent select buzzing.Eric S. Raymond2015-01-221-0/+10
| | | | | | | | | | | When select(2) returns too fast with only small amounts of data, the main loop will buzz and eat power - a significant issue on, e.g. battery-powered RasPi devices, where it was first spotted. This code watches read volume and delays when it sees lots of small bursts. All regressiion tests pass. But note: the adaptive-delay logic has to suppress delays to arrange this, otherwise we get an all too familiar class of spurious test failure.
* More splint cleanup. All regression tests pass.Eric S. Raymond2015-01-211-2/+2
|
* Easy splint cleanups. All regression tests pass.Eric S. Raymond2015-01-211-2/+2
|
* Add compiler.h with compiler specific macros.Zbigniew Chyla2015-01-211-5/+2
| | | | | Use new macros (UNUSED, PRINTF_FUNC) where appropriate. This change doesn't affect generated binary code.
* Refactor the way NTP shared memory segments are addressed.Eric S. Raymond2015-01-131-3/+3
| | | | | | | | | | This is a first step towards removing the NTPSHMSEGS limit. Instead of devices holding two indices into the segment array in the context structure, give them copies of the actual segment pointers and allow ntpshm_put() to take a pointer limit. All regression tests pass.
* Clean STATUS_DGPS_FIX out of the public interface. All regression tests pass.Eric S. Raymond2015-01-131-0/+6
|
* Adding Driver build dependancy NMEA2000 on AVIDMJon Schlueter2015-01-121-0/+3
| | | | | according to Reinhard: It makes no sense to build nmea2000 without ais support.
* Almost entirely eliminate use of sats_used array.Eric S. Raymond2015-01-101-1/+2
| | | | | | | Instead, set the used member in the satellites array directly where possible. The NMEA0183 and TSIP drivers still need a local equivalent. This changes pseudo-NMEA GSA output in several binary-protocol tests.
* Move side effects out of assert()Zbigniew Chyla2015-01-071-1/+5
|
* Fixing endif guard in gpsd.h-tail to match guard levelsJon Schlueter2015-01-071-1/+1
| | | | GARMIN_TEXT was mixed up with NMEA_ENABLED
* GNU libc timegm() turns out to be buggy when DST is on (glibc-2.19).Eric S. Raymond2014-09-281-5/+0
| | | | | | Fortunately, there's a much simpler way to do the computation correctly. All regression tests pass,
* Add scons check for gmtimeMatt2014-09-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 The recent addition of a prototype for gmtime in gpsd.h breaks the cygwin compile. Cygwin has gmtime, so the declarations conflict. Handle this by adding an scons check for gmtime, and make declaration of the bundled version conditional on absence of the system-supplied version. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJUJvXAAAoJECH/phKUbjXCdgwH/RrMznXe51HHR5eLD3Y/vor8 h514XtvlzB/ghWQcAuiWX8mGy/J7k8OJFb8HmUXPAhSuzeiRooZXLz7uk3UvfeGv 4p5MfND3E7FCZVBu9/o9n5gf27wddXKChHVfAZ1MsnusRmwfjAiPoTr0iVoarWLw s/8tjvnHJg4A3i08nu4Y+Z9rwyDqkmB2YPQ0Zs+deCsbK4AA4Lx3oVkgDkVCk7zz vBZPueS6ylAMb1hbEthW3l7St3S2ESLG7nIxwv1lQ0mmAi70pknHeLYbiBLU0QqT A2ZsOOajespqq9/pmxP6ZJcwy8DtNXcj8LvRcNAOrjiV52MQUwTZGLLwVP5WMxk= =PoQy -----END PGP SIGNATURE-----
* Do the right thing if we're not using glibc - use local timegm().Eric S. Raymond2014-09-251-0/+5
| | | | All regression tests pass.
* Refactor representation of satellite data into an array of structs...Eric S. Raymond2014-09-221-0/+1
| | | | | | | | | | | | | | | | | | ...from a set of parallel arrays. This change flushed out a longstanding bug in the computation of DOPs for estimated error bars. Some test-load rebuilds were required: geostar-geos1m-binary.log.chk: With this change error estimates are computed and reported. trimble-lassen_iq-3dfix.log, trimble-lassen_iq-3dfix.log: the change revealed a bug in the computation of satellite-seen bits. Error estimates did not change. navcom.log: Error estimates changed. With these rebuilds, all regression tests pass.
* Complete wrapping of ntpshm_latch function in #ifdef NTPSHM_ENABLESimon Dawson2014-09-041-0/+2
| | | | | | | | | | | | | Currently, the build fails as follows gpsmon.o: In function `gpsmon_hook': gpsmon.c:(.text+0x8b0): undefined reference to `ntpshm_latch' collect2: error: ld returned 1 exit status scons: *** [gpsmon] Error 1 Addresses Sacannah bug #43129: ntpshm patch is incomplete. Signed-off-by: Simon Dawson <spdawson@gmail.com>
* splint/cppcheck cleanuo after the gpsd_report change.Eric S. Raymond2014-08-271-2/+3
| | | | All regression tests pass.
* Now that the transition is done we can restore the gpsd_report name.Eric S. Raymond2014-08-271-8/+8
| | | | All regression tests pass.