gpsd-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gpsd-dev] [gpsd-commit-watch] [SCM] GPSD branch, master, updated. r


From: Greg Troxel
Subject: Re: [gpsd-dev] [gpsd-commit-watch] [SCM] GPSD branch, master, updated. release-3.11-46-g6a33950
Date: Wed, 27 Aug 2014 08:30:25 -0400
User-agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/23.4 (berkeley-unix)

"Gary E. Miller" <address@hidden> writes:

> As recently discused, TIOCMIWAIT is not in the RFC2783 path!
>
> just look at the code!

I don't follow this at all.  I am looking at ppsthread.c on git master,
and specifically at gpsd_ppsmonitor().

I see a loop which has ifdefs for TIOCMIWAIT, and then an ifdef for
HAVE_SYS_TIMEPPS_H, and within that RFC2783 ifdef, further conditional
behavior based on TIOCMIWAIT.

Reading the code, I don't see how it copes with a system that doesn't
have TIOCMIWAIT and doesn't implement waiting on time_pps_fetch, which
is what I remember being the issue last November.  I think what's needed
is to delay for 100 ms or so when time_pps_fetch says no edge is
available, and not to complain about that.

The other issue is that there's a lot of sanity checking going on
(towards the bottom of the function) which is currently conditional on
TIOCMIWAIT, but really shouldn't be.  I suspect that's something I did
to ifdef out code that wouldn't build.  It seems that obtaining
timestamps of edges (via either mechanism) should be entirely separated
From gpsd looking at those edge timestamps and deciding what it thinks
about them.

A final complexity is that with RFC2783, finding the header file doesn't
imply that it will work, because on all systems we know about, it's an
optional kernel feature.  I think that's handled right.   With
TIOCMIWAIT, I don't know if there are systems that have the symbol
defined in the .h file but don't implement it.

I suspect that if you were to #undef TIOCMIWAIT on your gentoo system,
the code would build but then probably won't work right.  (I am guessing
that Linux KPPS doesn't implement the optional CANWAIT facility, because
ntpd doesn't use it and thus it wouldn't have helped make anything
work.)

Attachment: pgpz8288rO1xy.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]