diff options
Diffstat (limited to 'mit-pthreads/machdep/hpux-10.20/time.h')
-rwxr-xr-x | mit-pthreads/machdep/hpux-10.20/time.h | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/mit-pthreads/machdep/hpux-10.20/time.h b/mit-pthreads/machdep/hpux-10.20/time.h new file mode 100755 index 00000000000..544905b0749 --- /dev/null +++ b/mit-pthreads/machdep/hpux-10.20/time.h @@ -0,0 +1,228 @@ +/* $Header$ */ + +#ifndef _SYS_TIME_INCLUDED +#define _SYS_TIME_INCLUDED + +/* time.h: Definitions for time handling functions */ + +#ifdef _KERNEL_BUILD +#include "../h/stdsyms.h" +#else /* ! _KERNEL_BUILD */ +#include <sys/stdsyms.h> +#endif /* _KERNEL_BUILD */ + +#include <sys/types.h> + +/* ANSI C time constants, types, and structures */ + +#ifdef _INCLUDE__STDC__ +# define CLOCKS_PER_SEC 1000000 + +# ifndef NULL +# define NULL 0 +# endif + +# ifndef _CLOCK_T +# define _CLOCK_T + typedef unsigned long clock_t; +# endif /* _CLOCK_T */ + +# ifndef _TIME_T +# define _TIME_T + typedef long time_t; +# endif /* _TIME_T */ + +# ifndef _SIZE_T +# define _SIZE_T + typedef unsigned int size_t; +# endif /* _SIZE_T */ + + /* Structure used with gmtime(), localtime(), mktime(), strftime(). */ + struct tm { + int tm_sec; /* second (0-61, allows for leap seconds) */ + int tm_min; /* minute (0-59) */ + int tm_hour; /* hour (0-23) */ + int tm_mday; /* day of the month (1-31) */ + int tm_mon; /* month (0-11) */ + int tm_year; /* years since 1900 */ + int tm_wday; /* day of the week (0-6) */ + int tm_yday; /* day of the year (0-365) */ + int tm_isdst; /* non-0 if daylight savings time is in effect */ + }; +#endif /* _INCLUDE__STDC__ */ + + +/* Additional types needed for HP-UX */ + +#ifdef _INCLUDE_HPUX_SOURCE +# ifndef _STRUCT_TIMEVAL +# define _STRUCT_TIMEVAL + /* Structure returned by gettimeofday(2) system call and others */ + struct timeval { + unsigned long tv_sec; /* seconds */ + long tv_usec; /* and microseconds */ + }; +# endif /* _STRUCT_TIMEVAL */ + + /* Structure used to represent timezones for gettimeofday(2) and others */ + struct timezone { + int tz_minuteswest; /* minutes west of Greenwich */ + int tz_dsttime; /* type of dst correction */ + }; + + /* Structure defining a timer setting. */ + struct itimerval { + struct timeval it_interval; /* timer interval */ + struct timeval it_value; /* current value */ + }; +#endif /* _INCLUDE_HPUX_SOURCE */ + + +/* Function prototypes and external variable declarations */ + +#ifndef _KERNEL +#ifdef __cplusplus + extern "C" { +#endif /* __cplusplus */ + +#ifdef _INCLUDE__STDC__ +# ifdef _PROTOTYPES + extern double difftime(time_t, time_t); + extern time_t mktime(struct tm *); + extern time_t time(time_t *); + extern char *ctime(const time_t *); + extern struct tm *gmtime(const time_t *); + extern struct tm *localtime(const time_t *); + extern size_t strftime(char *, size_t, const char *, const struct tm *); +# else /* not _PROTOTYPES */ + extern double difftime(); + extern time_t mktime(); + extern time_t time(); + extern char *ctime(); + extern struct tm *gmtime(); + extern struct tm *localtime(); + extern size_t strftime(); +# endif /* not _PROTOTYPES */ + +# ifdef _CLASSIC_ANSI_TYPES + extern long clock(); +# else /* not _CLASSIC_ANSI_TYPES */ +# ifdef _PROTOTYPES + extern clock_t clock(void); +# else /* not _PROTOTYPES */ + extern clock_t clock(); +# endif /* not _PROTOTYPES */ +# endif /* not _CLASSIC_ANSI_TYPES */ +#endif /* _INCLUDE__STDC__ */ + +#ifdef _INCLUDE_POSIX_SOURCE +# ifdef _PROTOTYPES + extern void tzset(void); +# else /* not _PROTOTYPES */ + extern void tzset(); +# endif /* not _PROTOTYPES */ + + extern char *tzname[2]; +#endif /* _INCLUDE_POSIX_SOURCE */ + + +#ifdef _INCLUDE_XOPEN_SOURCE +# ifdef _PROTOTYPES + extern char *strptime(const char *, const char *, struct tm *); +# else /* not _PROTOTYPES */ + extern char *strptime(); +# endif /* not _PROTOTYPES */ + + extern long timezone; + extern int daylight; +#endif /* _INCLUDE_XOPEN_SOURCE */ + + +#ifdef _INCLUDE_HPUX_SOURCE +# ifdef _PROTOTYPES + extern struct tm *getdate(const char *); + extern char *nl_asctime(struct tm *, char *, int); + extern char *nl_ctime(long *, char *, int); + extern char *nl_ascxtime(struct tm *, char *); + extern char *nl_cxtime(long *, char *); + extern int getitimer(int, struct itimerval *); + extern int setitimer(int, const struct itimerval *, struct itimerval *); + extern int gettimeofday(struct timeval *, struct timezone *); + extern int settimeofday(const struct timeval *, const struct timezone *); + extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); + extern int stime(const time_t *); +# else /* not _PROTOTYPES */ + extern struct tm *getdate(); + extern char *nl_asctime(); + extern char *nl_ctime(); + extern char *nl_ascxtime(); + extern char *nl_cxtime(); + extern int getitimer(); + extern int setitimer(); + extern int gettimeofday(); + extern int settimeofday(); + extern int select(); + extern int stime(); +# endif /* not _PROTOTYPES */ + extern int getdate_err; +#endif /* _INCLUDE_HPUX_SOURCE */ + +#ifdef __cplusplus + } +#endif /* __cplusplus */ +#endif /* not _KERNEL */ + + +/* + * CLK_TCK is needed by the kernel, and also in the POSIX namespace. + */ + +#ifdef _INCLUDE_POSIX_SOURCE +# ifndef CLK_TCK +# ifdef __hp9000s300 +# define CLK_TCK 50 +# endif /* __hp9000s300 */ +# ifdef __hp9000s800 +# define CLK_TCK 100 +# endif /* __hp9000s800 */ +# endif /* CLK_TCK */ +#endif + + +/* Additional HP-UX structures, macros, and constants */ + +#ifdef _INCLUDE_HPUX_SOURCE + + /* Kernel instrumentation time value */ + struct ki_timeval { + long tv_sec; /* seconds */ + long tv_nunit; /* and native units */ + }; + + /* Kinds of daylight savings time */ +# 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 */ + + /* + * 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 */ +# define ITIMER_REAL 0 +# define ITIMER_VIRTUAL 1 +# define ITIMER_PROF 2 + +#endif /* _INCLUDE_HPUX_SOURCE */ + +#endif /* _SYS_TIME_INCLUDED */ |