File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / scripts / calc_tickadj.in
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:08:38 2012 UTC (12 years, 1 month ago) by misho
Branches: ntp, MAIN
CVS tags: v4_2_6p5p0, v4_2_6p5, HEAD
ntp 4.2.6p5

    1: #! @PATH_PERL@
    2: #
    3: # drift of 104.8576 -> +1 tick.  Base  of 10000 ticks.
    4: #
    5: # 970306 HMS Deal with nanoseconds.  Fix sign of adjustments.
    6: 
    7: $df="/etc/ntp.drift";
    8: # Assumes a 100Hz box with "tick" of 10000
    9: # Someday, we might call "tickadj" for better values...
   10: $base=10000;	# tick: 1,000,000 / HZ
   11: $cvt=104.8576;	# 2 ** 20 / $base
   12: $v1=0.;
   13: $v2="";
   14: 
   15: if (open(DF, $df))
   16:   {
   17:     if ($_=<DF>)
   18:       {
   19:         ($v1, $v2) = split;
   20:       }
   21: 
   22:     while ($v1 < 0)
   23:       {
   24:         $v1 += $cvt;
   25:         $base--;
   26:       }
   27: 
   28:     while ($v1 > $cvt)
   29:       {
   30:         $v1 -= $cvt;
   31:         $base++;
   32:       }
   33:   }
   34: 
   35: printf("%.3f (drift)\n", $v1);
   36: 
   37: printf("%d usec; %d nsec\n", $base, ($base + ($v1/$cvt)) * 1000);
   38: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>