/* * COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1990. ALL RIGHTS RESERVED. * * THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED * ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE * INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER * COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY * OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY * TRANSFERRED. * * THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE * AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT * CORPORATION. * * DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS * SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL. * * MODIFICATIONS: * REV 2 BW0008_DNSDTSS_XXXXX_TIMESPEC, Bob Wheater, 28-MAY-2003 * Rewrite TIMESPEC definition to prevent dup definitions due * to a last minute change in the CRTL. */ #ifndef _UTC_H #define _UTC_H #include #include /* For size_t */ #ifndef _UTC_T_ #define _UTC_T_ typedef struct utc { char char_array[16]; } utc_t; #endif /* _UTC_T_ */ enum utc_cmptype { utc_lessThan, utc_equalTo, utc_greaterThan, utc_indeterminate }; /* * _TIMESPEC_T_, __TIMESPEC, __TIMESPEC_T * defined in CRTL (time.h) */ #ifndef _TIMESPEC_T_ # define _TIMESPEC_T_ # if defined(__osf__) # include typedef struct timespec timespec_t; # else # ifndef __TIMESPEC # define __TIMESPEC struct timespec { unsigned long tv_sec; long tv_nsec; }; # endif /* __TIMESPEC */ # ifndef __TIMESPEC_T # define __TIMESPEC_T typedef struct timespec timespec_t; # endif /* __TIMESPEC_T */ # endif /* if defined(__osf__) */ #endif /* ifndef _TIMESPEC_T_ */ #ifndef _RELTIMESPEC_T_ #define _RELTIMESPEC_T_ typedef struct reltimespec { long tv_sec; long tv_nsec; } reltimespec_t; #endif #define UTC_MAX_STR_LEN 50 /* Max length of string used by conversion routines (utc_asc...) */ #ifdef __STDC__ int utc_gettime(utc_t *utc); int utc_bintime(timespec_t *timesp, timespec_t *inaccsp, long *tdf, utc_t *utc); int utc_mkbintime(utc_t *utc, timespec_t *timesp, timespec_t *inaccsp, long tdf); int utc_binreltime(reltimespec_t *timesp, timespec_t *inaccsp, utc_t *utc); int utc_mkbinreltime(utc_t *utc, reltimespec_t *timesp, timespec_t *inaccsp); int utc_localtime(struct tm *timetm, long *tns, struct tm *inacctm, long *ins, utc_t *utc); int utc_mklocaltime(utc_t *utc, struct tm *timetm, long tns, struct tm *inacctm, long ins); int utc_localzone(char *tzname, size_t tzlen, long *tdf, int *isdst, utc_t *utc); int utc_anyzone(char *tzname, size_t tzlen, long *tdf, int *isdst, utc_t *utc); int utc_gmtzone(char *tzname, size_t tzlen, long *tdf, int *isdst, utc_t *utc); int utc_gmtime(struct tm *timetm, long *tns, struct tm *inacctm, long *ins, utc_t *utc); int utc_mkgmtime(utc_t *utc, struct tm *timetm, long tns, struct tm *inacctm, long ins); int utc_anytime(struct tm *timetm, long *tns, struct tm *inacctm, long *ins, long *tdf, utc_t *utc); int utc_mkanytime(utc_t *utc, struct tm *timetm, long tns, struct tm *inacctm, long ins, long tdf); int utc_reltime(struct tm *timetm, long *tns, struct tm *inacctm, long *ins, utc_t *utc); int utc_mkreltime(utc_t *utc, struct tm *timetm, long tns, struct tm *inacctm, long ins); int utc_abstime(utc_t *result, utc_t *utc1); int utc_addtime(utc_t *result, utc_t *utc1, utc_t *utc2); int utc_subtime(utc_t *result, utc_t *utc1, utc_t *utc2); int utc_multime(utc_t *result, utc_t *utc1, long factor); int utc_mulftime(utc_t *result, utc_t *utc1, double factor); int utc_cmpmidtime(enum utc_cmptype *relation, utc_t *utc1, utc_t *utc2); int utc_cmpintervaltime(enum utc_cmptype *relation, utc_t *utc1, utc_t *utc2); int utc_boundtime(utc_t *result, utc_t *utclp, utc_t *utchp); int utc_spantime(utc_t *result, utc_t *utc1, utc_t *utc2); int utc_pointtime(utc_t *utclp, utc_t *utcmp, utc_t *utchp, utc_t *utc); int utc_getusertime(utc_t *utc); int utc_ascgmtime(char *cp, size_t stringlen, utc_t *utc); int utc_asclocaltime(char *cp, size_t stringlen, utc_t *utc); int utc_ascanytime(char *cp, size_t stringlen, utc_t *utc); int utc_ascreltime(char *cp, size_t stringlen, utc_t *utc); int utc_mkasctime(utc_t *utc, char *cp); int utc_mkascreltime(utc_t *utc, char *cp); #else int utc_gettime(); int utc_bintime(); int utc_mkbintime(); int utc_binreltime(); int utc_mkbinreltime(); int utc_localtime(); int utc_mklocaltime(); int utc_mkgmtime(); int utc_anytime(); int utc_mkanytime(); int utc_reltime(); int utc_mkreltime(); int utc_abstime(); int utc_addtime(); int utc_subtime(); int utc_multime(); int utc_mulftime(); int utc_cmpmidtime(); int utc_cmpintervaltime(); int utc_boundtime(); int utc_spantime(); int utc_pointtime(); int utc_getusertime(); int utc_ascgmtime(); int utc_asclocaltime(); int utc_ascanytime(); int utc_ascreltime(); int utc_mkasctime(); int utc_mkascreltime(); #endif /* __STDC__ */ #endif /* _UTC_H */