[ntp:questions] NTP & PPS, part 2 ;)

Martin Burnicki martin.burnicki at meinberg.de
Thu Dec 18 08:42:40 UTC 2014


Harlan Stenn wrote:
> Rob writes:
>> Harlan Stenn <stenn at ntp.org> wrote:
>>> Rob writes:
>>>> Harlan Stenn <stenn at ntp.org> wrote:
>>>>> Paul writes:
>>>>>> On Tue, Dec 16, 2014 at 10:10 AM, Martin Burnicki <
>>>>>> martin.burnicki at meinberg.de> wrote:
>>>>>>
>>>>>>> OK, but what is the problem in using these IOCTLs directly from withi
>> n
>>>>>>> ntpd, via wrapper functions or directly? Several refclock drivers do
>> so.
>>>>>>
>>>>>> You'll have to ask Harlan.
>>>>>
>>>>> Useful discussion and patches would be nice.
>>>>
>>>> The code does not have to be patched because it already works, you only
>>>> need to move the timepps.h file into the distributed source.  It provides
>>>> the wrapper functions between the existing refclocks and the IOCTLs.
>>>
>>> Since you don't see my POV and I've looked at yours several times and
>>> always see how doing what you suggest will cause horrible headaches and
>>> problem, something else will have to shift.
>>
>> When you really think that doing the above will cause headaches, then
>> the direct use of IOCTLs will do even more so.  With my solution you
>> can at least update the timepps.h file in the case there would be a
>> change in the IOCTLs, when you access those directly you will have to
>> solve the problem yourself.
>
> Please post a copy of this timepps.h file that will work for all
> versions of all OSes that are running NTP.

I can fully understand Rob's reasoning.

Without having looked at the code base, I'm sure there are already 
predefined macros available for the current build target/architecture.

So it should not be a problem to include something like

#if defined( SOLARIS )
  #include <timepps_solaris.h>
#elif defined ( SCO )
  #include <timepps_sco.h>
#elif defined ( LINUX ) || defined( FREEBSD )
  #include <timepps.h>
#endif

If this piece of code is required more than once it should be put into a 
common header file which is included in all places where this is 
required. No duplicate code.

Martin



More information about the questions mailing list