From: Miroslav Lichvar Date: Tue, 24 Nov 2009 16:16:24 +0000 (+0100) Subject: Add PPS support to SOCK driver X-Git-Tag: 1.24-pre1~43 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6d242a33f5c682444a29b791ff6c5d0331b8b682;p=thirdparty%2Fchrony.git Add PPS support to SOCK driver --- diff --git a/chrony.texi b/chrony.texi index 3629d352..90bb2609 100644 --- a/chrony.texi +++ b/chrony.texi @@ -2176,9 +2176,10 @@ Software that can be used as a source of timestamps includes @item SOCK Unix domain socket driver. The parameter is a path to the socket which is used as the source of timestamps. This is as a better -alternative to SHM, it does not require polling and the offset -resolution is not limited to microsecond. The format for messages -sent over the socket is declared in file @code{refclock_sock.c}. +alternative to SHM, it does not require polling, the offset +resolution is not limited to microsecond and it supports PPS. +The format for messages sent over the socket is declared in file +@code{refclock_sock.c}. @end table The @code{refclock} command also supports a number of subfields (which diff --git a/refclock_sock.c b/refclock_sock.c index c141010d..91dbbc9c 100644 --- a/refclock_sock.c +++ b/refclock_sock.c @@ -38,6 +38,7 @@ struct sock_sample { struct timeval tv; double offset; + int pulse; int leap; }; @@ -53,7 +54,11 @@ static void read_sample(void *anything) if (recv(sockfd, &sample, sizeof (sample), 0) != sizeof (sample)) return; - RCL_AddSample(instance, &sample.tv, sample.offset, sample.leap); + if (sample.pulse) { + RCL_AddPulse(instance, &sample.tv, sample.offset); + } else { + RCL_AddSample(instance, &sample.tv, sample.offset, sample.leap); + } } static int sock_initialise(RCL_Instance instance)