|
|
1.1 root 1: #ifndef _SYS_TIME_H
2: #define _SYS_TIME_H
3:
4: /* gettimofday returns this */
5: struct timeval {
6: long tv_sec; /* seconds */
7: long tv_usec; /* microseconds */
8: };
9:
10: struct timezone {
11: int tz_minuteswest; /* minutes west of Greenwich */
12: int tz_dsttime; /* type of dst correction */
13: };
14:
15: #define DST_NONE 0 /* not on dst */
16: #define DST_USA 1 /* USA style dst */
17: #define DST_AUST 2 /* Australian style dst */
18: #define DST_WET 3 /* Western European dst */
19: #define DST_MET 4 /* Middle European dst */
20: #define DST_EET 5 /* Eastern European dst */
21: #define DST_CAN 6 /* Canada */
22: #define DST_GB 7 /* Great Britain and Eire */
23: #define DST_RUM 8 /* Rumania */
24: #define DST_TUR 9 /* Turkey */
25: #define DST_AUSTALT 10 /* Australian style with shift in 1986 */
26:
27: #define FD_SET(fd,fdsetp) (*(fdsetp) |= (1 << (fd)))
28: #define FD_CLR(fd,fdsetp) (*(fdsetp) &= ~(1 << (fd)))
29: #define FD_ISSET(fd,fdsetp) ((*(fdsetp) >> fd) & 1)
30: #define FD_ZERO(fdsetp) (*(fdsetp) = 0)
31:
32: /*
33: * Operations on timevals.
34: *
35: * NB: timercmp does not work for >= or <=.
36: */
37: #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
38: #define timercmp(tvp, uvp, cmp) \
39: ((tvp)->tv_sec cmp (uvp)->tv_sec || \
40: (tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp (uvp)->tv_usec)
41: #define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0)
42:
43: /*
44: * Names of the interval timers, and structure
45: * defining a timer setting.
46: */
47: #define ITIMER_REAL 0
48: #define ITIMER_VIRTUAL 1
49: #define ITIMER_PROF 2
50:
51: struct itimerval {
52: struct timeval it_interval; /* timer interval */
53: struct timeval it_value; /* current value */
54: };
55:
56: #include <time.h>
57: #include <sys/types.h>
58:
59: int gettimeofday(struct timeval * tp, struct timezone * tz);
60: int select(int width, fd_set * readfds, fd_set * writefds,
61: fd_set * exceptfds, struct timeval * timeout);
62:
63: #endif /*_SYS_TIME_H*/
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.