/* @(#)time.h 2.9 87/01/17 SMI; from UCB 7.1 6/4/86 */ /* Definitions of various structures used on UNIX for time-related syscalls. */ /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */ #ifndef _UNIX_TIME_ #define _UNIX_TIME_ #ifdef __cplusplus extern "C" { #endif /* * Structure returned by gettimeofday(2) system call, * and used in other calls. */ #ifndef __DECC struct timeval { long tv_sec; /* seconds */ long tv_usec; /* and microseconds */ }; #else #if (__DECC_VER < 50200000) && (__VMS_VER < 70000000) struct timeval { long tv_sec; /* seconds */ long tv_usec; /* and microseconds */ }; #endif /* __DECC_VER */ #endif /* __DECC */ struct timezone { int tz_minuteswest; /* minutes west of Greenwich */ int tz_dsttime; /* type of dst correction */ }; #define DST_NONE 0 /* not on dst */ #define DST_USA 1 /* USA style dst */ #define DST_AUST 2 /* Australian style dst */ #define DST_WET 3 /* Western European dst */ #define DST_MET 4 /* Middle European dst */ #define DST_EET 5 /* Eastern European dst */ #define DST_CAN 6 /* Canada */ #define DST_GB 7 /* Great Britain and Eire */ #define DST_RUM 8 /* Rumania */ #define DST_TUR 9 /* Turkey */ #define DST_AUSTALT 10 /* Australian style with shift in 1986 */ /* * Operations on timevals. * * NB: timercmp does not work for >= or <=. */ #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) #define timercmp(tvp, uvp, cmp) \ ((tvp)->tv_sec cmp (uvp)->tv_sec || \ (tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp (uvp)->tv_usec) #define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 /* * Names of the interval timers, and structure * defining a timer setting. */ #define ITIMER_REAL 0 #define ITIMER_VIRTUAL 1 #define ITIMER_PROF 2 #ifndef __DECC struct itimerval { struct timeval it_interval; /* timer interval */ struct timeval it_value; /* current value */ }; #else #if (__DECC_VER < 50200000) && (__VMS_VER < 70000000) struct itimerval { struct timeval it_interval; /* timer interval */ struct timeval it_value; /* current value */ }; #endif /* __DECC_VER */ #endif /* __DECC */ #ifndef KERNEL #include #endif #ifdef __cplusplus } #endif #endif /*!_UNIX_TIME_*/