diff options
Diffstat (limited to 'contrib/ntp/include/timexsup.h')
-rw-r--r-- | contrib/ntp/include/timexsup.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/contrib/ntp/include/timexsup.h b/contrib/ntp/include/timexsup.h new file mode 100644 index 000000000000..81afe41e267c --- /dev/null +++ b/contrib/ntp/include/timexsup.h @@ -0,0 +1,42 @@ +/* + * timexsup.h - 'struct timex' support functions + * + * Written by Juergen Perlinger (perlinger@ntp.org) for the NTP project. + * The contents of 'html/copyright.html' apply. + */ +#ifndef TIMEXSUP_H +#define TIMEXSUP_H + + +/* convert a 'long' time value (in usec or nsec) into seconds, expressed + * as a 'double'. If 'STA_NANO' is not defined, this will always convert + * from usec. ('STA_NANO' is Linux specific at the time of this + * writing.) + * + * If 'STA_NANO' is defined, it will be checked in 'status' to decide + * which time base (usec or nsec) applies for this conversion. + */ +extern double dbl_from_var_long(long lval, int status); + +/* convert a 'long' time value in usec into seconds, expressed as + * 'double'. This function is there for pure symmetry right now -- it + * just casts and scales without any additional bells and whistles. + */ +extern double dbl_from_usec_long(long lval); + +/* If MOD_NANO is defined, set the MOD_NANO bit in '*modes' and + * calculate the time stamp in nsec; otherwise, calculate the result in + * usec. + * + * Applies proper bounds checks and saturation on LONG_MAX/LONG_MIN to + * avoid undefined behaviour. + */ +extern long var_long_from_dbl(double dval, unsigned int *modes); + +/* convert a 'double' time value (in seconds) into usec with proper + * bounds check and range clamp. + */ +extern long usec_long_from_dbl(double dval); + +#endif +/* -*- that's all folks -*- */ |