Browse Source

sync header with GNU libc / kernel

The header is not in sync with GNU libc and Linux kernel and
therefore produces compile errors with qemu-user (2.8.0).

Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Waldemar Brodkorb 7 years ago
parent
commit
2d8ea0524b
1 changed files with 12 additions and 5 deletions
  1. 12 5
      include/sys/timex.h

+ 12 - 5
include/sys/timex.h

@@ -1,5 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
@@ -22,13 +21,14 @@
 #include <sys/time.h>
 #include <time.h>
 
-/* These definitions from linux/timex.h as of 2.2.0.  */
+/* These definitions from linux/timex.h as of 3.18.  */
 
 struct ntptimeval
 {
   struct timeval time;	/* current time (ro) */
   long int maxerror;	/* maximum error (us) (ro) */
   long int esterror;	/* estimated error (us) (ro) */
+  long int tai;		/* TAI offset (ro) */
 };
 
 struct timex
@@ -44,7 +44,6 @@ struct timex
   long int tolerance;	/* clock frequency tolerance (ppm) (read only) */
   struct timeval time;	/* (read only) */
   long int tick;	/* (modified) usecs between clock ticks */
-
   long int ppsfreq;	/* pps frequency (scaled ppm) (ro) */
   long int jitter;	/* pps jitter (us) (ro) */
   int shift;		/* interval duration (s) (shift) (ro) */
@@ -54,6 +53,8 @@ struct timex
   long int errcnt;	/* calibration errors (ro) */
   long int stbcnt;	/* stability limit exceeded (ro) */
 
+  int tai;		/* TAI offset (ro) */
+
   /* ??? */
   int  :32; int  :32; int  :32; int  :32;
   int  :32; int  :32; int  :32; int  :32;
@@ -83,6 +84,9 @@ struct timex
 #define MOD_TIMECONST	ADJ_TIMECONST
 #define MOD_CLKB	ADJ_TICK
 #define MOD_CLKA	ADJ_OFFSET_SINGLESHOT /* 0x8000 in original */
+#define MOD_TAI		ADJ_TAI
+#define MOD_MICRO	ADJ_MICRO
+#define MOD_NANO	ADJ_NANO
 
 
 /* Status codes (timex.status) */
@@ -102,9 +106,12 @@ struct timex
 #define STA_PPSERROR	0x0800	/* PPS signal calibration error (ro) */
 
 #define STA_CLOCKERR	0x1000	/* clock hardware fault (ro) */
+#define STA_NANO	0x2000	/* resolution (0 = us, 1 = ns) (ro) */
+#define STA_MODE	0x4000	/* mode (0 = PLL, 1 = FLL) (ro) */
+#define STA_CLK		0x8000	/* clock source (0 = A, 1 = B) (ro) */
 
 #define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \
-    STA_PPSERROR | STA_CLOCKERR) /* read-only bits */
+    STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)
 
 /* Clock states (time_state) */
 #define TIME_OK		0	/* clock synchronized, no leap second */