OpenCores
URL https://opencores.org/ocsvn/c0or1k/c0or1k/trunk

Subversion Repositories c0or1k

[/] [c0or1k/] [trunk/] [conts/] [posix/] [libposix/] [include/] [posix/] [sys/] [timex.h] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 drasko
/* Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
2
   This file is part of the GNU C Library.
3
 
4
   The GNU C Library is free software; you can redistribute it and/or
5
   modify it under the terms of the GNU Lesser General Public
6
   License as published by the Free Software Foundation; either
7
   version 2.1 of the License, or (at your option) any later version.
8
 
9
   The GNU C Library is distributed in the hope that it will be useful,
10
   but WITHOUT ANY WARRANTY; without even the implied warranty of
11
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12
   Lesser General Public License for more details.
13
 
14
   You should have received a copy of the GNU Lesser General Public
15
   License along with the GNU C Library; if not, write to the Free
16
   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17
   02111-1307 USA.  */
18
 
19
#ifndef _SYS_TIMEX_H
20
#define _SYS_TIMEX_H    1
21
 
22
#include <features.h>
23
#include <sys/time.h>
24
 
25
/* These definitions from linux/timex.h as of 2.2.0.  */
26
 
27
struct ntptimeval
28
{
29
  struct timeval time;  /* current time (ro) */
30
  long int maxerror;    /* maximum error (us) (ro) */
31
  long int esterror;    /* estimated error (us) (ro) */
32
};
33
 
34
struct timex
35
{
36
  unsigned int modes;   /* mode selector */
37
  long int offset;      /* time offset (usec) */
38
  long int freq;        /* frequency offset (scaled ppm) */
39
  long int maxerror;    /* maximum error (usec) */
40
  long int esterror;    /* estimated error (usec) */
41
  int status;           /* clock command/status */
42
  long int constant;    /* pll time constant */
43
  long int precision;   /* clock precision (usec) (read only) */
44
  long int tolerance;   /* clock frequency tolerance (ppm) (read only) */
45
  struct timeval time;  /* (read only) */
46
  long int tick;        /* (modified) usecs between clock ticks */
47
 
48
  long int ppsfreq;     /* pps frequency (scaled ppm) (ro) */
49
  long int jitter;      /* pps jitter (us) (ro) */
50
  int shift;            /* interval duration (s) (shift) (ro) */
51
  long int stabil;      /* pps stability (scaled ppm) (ro) */
52
  long int jitcnt;      /* jitter limit exceeded (ro) */
53
  long int calcnt;      /* calibration intervals (ro) */
54
  long int errcnt;      /* calibration errors (ro) */
55
  long int stbcnt;      /* stability limit exceeded (ro) */
56
 
57
  /* ??? */
58
  int  :32; int  :32; int  :32; int  :32;
59
  int  :32; int  :32; int  :32; int  :32;
60
  int  :32; int  :32; int  :32; int  :32;
61
};
62
 
63
/* Mode codes (timex.mode) */
64
#define ADJ_OFFSET              0x0001  /* time offset */
65
#define ADJ_FREQUENCY           0x0002  /* frequency offset */
66
#define ADJ_MAXERROR            0x0004  /* maximum time error */
67
#define ADJ_ESTERROR            0x0008  /* estimated time error */
68
#define ADJ_STATUS              0x0010  /* clock status */
69
#define ADJ_TIMECONST           0x0020  /* pll time constant */
70
#define ADJ_TICK                0x4000  /* tick value */
71
#define ADJ_OFFSET_SINGLESHOT   0x8001  /* old-fashioned adjtime */
72
 
73
/* xntp 3.4 compatibility names */
74
#define MOD_OFFSET      ADJ_OFFSET
75
#define MOD_FREQUENCY   ADJ_FREQUENCY
76
#define MOD_MAXERROR    ADJ_MAXERROR
77
#define MOD_ESTERROR    ADJ_ESTERROR
78
#define MOD_STATUS      ADJ_STATUS
79
#define MOD_TIMECONST   ADJ_TIMECONST
80
#define MOD_CLKB        ADJ_TICK
81
#define MOD_CLKA        ADJ_OFFSET_SINGLESHOT /* 0x8000 in original */
82
 
83
 
84
/* Status codes (timex.status) */
85
#define STA_PLL         0x0001  /* enable PLL updates (rw) */
86
#define STA_PPSFREQ     0x0002  /* enable PPS freq discipline (rw) */
87
#define STA_PPSTIME     0x0004  /* enable PPS time discipline (rw) */
88
#define STA_FLL         0x0008  /* select frequency-lock mode (rw) */
89
 
90
#define STA_INS         0x0010  /* insert leap (rw) */
91
#define STA_DEL         0x0020  /* delete leap (rw) */
92
#define STA_UNSYNC      0x0040  /* clock unsynchronized (rw) */
93
#define STA_FREQHOLD    0x0080  /* hold frequency (rw) */
94
 
95
#define STA_PPSSIGNAL   0x0100  /* PPS signal present (ro) */
96
#define STA_PPSJITTER   0x0200  /* PPS signal jitter exceeded (ro) */
97
#define STA_PPSWANDER   0x0400  /* PPS signal wander exceeded (ro) */
98
#define STA_PPSERROR    0x0800  /* PPS signal calibration error (ro) */
99
 
100
#define STA_CLOCKERR    0x1000  /* clock hardware fault (ro) */
101
 
102
#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \
103
    STA_PPSERROR | STA_CLOCKERR) /* read-only bits */
104
 
105
/* Clock states (time_state) */
106
#define TIME_OK         0        /* clock synchronized, no leap second */
107
#define TIME_INS        1       /* insert leap second */
108
#define TIME_DEL        2       /* delete leap second */
109
#define TIME_OOP        3       /* leap second in progress */
110
#define TIME_WAIT       4       /* leap second has occurred */
111
#define TIME_ERROR      5       /* clock not synchronized */
112
#define TIME_BAD        TIME_ERROR /* bw compat */
113
 
114
/* Maximum time constant of the PLL.  */
115
#define MAXTC           6
116
 
117
__BEGIN_DECLS
118
 
119
extern int __adjtimex (struct timex *__ntx) __THROW;
120
extern int adjtimex (struct timex *__ntx) __THROW;
121
 
122
extern int ntp_gettime (struct ntptimeval *__ntv) __THROW;
123
extern int ntp_adjtime (struct timex *__tntx) __THROW;
124
 
125
__END_DECLS
126
 
127
#endif /* sys/timex.h */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.