xref: /utopia/UTPA2-700.0.x/projects/tools/lint/aeon_include/sys/time.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 /* time.h -- An implementation of the standard Unix <sys/time.h> file.
2    Written by Geoffrey Noer <noer@cygnus.com>
3    Public domain; no rights reserved. */
4 
5 #ifndef _SYS_TIME_H_
6 #define _SYS_TIME_H_
7 
8 #include <_ansi.h>
9 #include <sys/types.h>
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 #ifndef _WINSOCK_H
16 struct timeval {
17   long tv_sec;
18   long tv_usec;
19 };
20 
21 struct timezone {
22   int tz_minuteswest;
23   int tz_dsttime;
24 };
25 
26 #ifdef __CYGWIN__
27 #include <cygwin/sys_time.h>
28 #endif /* __CYGWIN__ */
29 
30 #endif /* _WINSOCK_H */
31 
32 #define ITIMER_REAL     0
33 #define ITIMER_VIRTUAL  1
34 #define ITIMER_PROF     2
35 
36 struct  itimerval {
37   struct  timeval it_interval;
38   struct  timeval it_value;
39 };
40 
41 /* BSD time macros used by RTEMS code */
42 #if defined (__rtems__) || defined (__CYGWIN__)
43 
44 /* Convenience macros for operations on timevals.
45    NOTE: `timercmp' does not work for >= or <=.  */
46 #define	timerisset(tvp)		((tvp)->tv_sec || (tvp)->tv_usec)
47 #define	timerclear(tvp)		((tvp)->tv_sec = (tvp)->tv_usec = 0)
48 #define	timercmp(a, b, CMP) 						      \
49   (((a)->tv_sec == (b)->tv_sec) ? 					      \
50    ((a)->tv_usec CMP (b)->tv_usec) : 					      \
51    ((a)->tv_sec CMP (b)->tv_sec))
52 #define	timeradd(a, b, result)						      \
53   do {									      \
54     (result)->tv_sec = (a)->tv_sec + (b)->tv_sec;			      \
55     (result)->tv_usec = (a)->tv_usec + (b)->tv_usec;			      \
56     if ((result)->tv_usec >= 1000000)					      \
57       {									      \
58 	++(result)->tv_sec;						      \
59 	(result)->tv_usec -= 1000000;					      \
60       }									      \
61   } while (0)
62 #define	timersub(a, b, result)						      \
63   do {									      \
64     (result)->tv_sec = (a)->tv_sec - (b)->tv_sec;			      \
65     (result)->tv_usec = (a)->tv_usec - (b)->tv_usec;			      \
66     if ((result)->tv_usec < 0) {					      \
67       --(result)->tv_sec;						      \
68       (result)->tv_usec += 1000000;					      \
69     }									      \
70   } while (0)
71 #endif /* defined (__rtems__) || defined (__CYGWIN__) */
72 
73 int _EXFUN(gettimeofday, (struct timeval *__p, struct timezone *__z));
74 int _EXFUN(settimeofday, (const struct timeval *, const struct timezone *));
75 int _EXFUN(utimes, (const char *__path, const struct timeval *__tvp));
76 int _EXFUN(getitimer, (int __which, struct itimerval *__value));
77 int _EXFUN(setitimer, (int __which, const struct itimerval *__value,
78 					struct itimerval *__ovalue));
79 
80 #ifdef __cplusplus
81 }
82 #endif
83 #endif /* _SYS_TIME_H_ */
84