xref: /original-bsd/sys/sys/time.h (revision 23a40993)
1 /*	time.h	4.3	83/06/10	*/
2 
3 /*
4  * Structure returned by gettimeofday(2) system call,
5  * and used in other calls.
6  */
7 struct timeval {
8 	long	tv_sec;		/* seconds */
9 	long	tv_usec;	/* and microseconds */
10 };
11 
12 struct timezone {
13 	int	tz_minuteswest;	/* minutes west of Greenwich */
14 	int	tz_dsttime;	/* type of dst correction */
15 };
16 #define	DST_NONE	0	/* not on dst */
17 #define	DST_USA		1	/* usa style dst */
18 #define	DST_AUST	2	/* Australian style dst */
19 
20 /*
21  * Operations on timevals.
22  *
23  * NB: timercmp does not work for >= or <=.
24  */
25 #define	timerisset(tvp)		((tvp)->tv_sec || (tvp)->tv_usec)
26 #define	timercmp(tvp, uvp, cmp)	\
27 	((tvp)->tv_sec cmp (uvp)->tv_sec || \
28 	 (tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp (uvp)->tv_usec)
29 #define	timerclear(tvp)		(tvp)->tv_sec = (tvp)->tv_usec = 0
30 
31 /*
32  * Names of the interval timers, and structure
33  * defining a timer setting.
34  */
35 #define	ITIMER_REAL	0
36 #define	ITIMER_VIRTUAL	1
37 #define	ITIMER_PROF	2
38 
39 struct	itimerval {
40 	struct	timeval it_interval;	/* timer interval */
41 	struct	timeval it_value;	/* current value */
42 };
43 
44 /*
45  * Structure returned by gmtime and localtime calls (see ctime(3)).
46  */
47 struct tm {
48 	int	tm_sec;
49 	int	tm_min;
50 	int	tm_hour;
51 	int	tm_mday;
52 	int	tm_mon;
53 	int	tm_year;
54 	int	tm_wday;
55 	int	tm_yday;
56 	int	tm_isdst;
57 };
58 
59 #ifndef KERNEL
60 extern	struct tm *gmtime(), *localtime();
61 extern	char *asctime(), *ctime();
62 #endif
63