1 /*********************************************************************** 2 * * 3 * This software is part of the ast package * 4 * Copyright (c) 1985-2008 AT&T Intellectual Property * 5 * and is licensed under the * 6 * Common Public License, Version 1.0 * 7 * by AT&T Intellectual Property * 8 * * 9 * A copy of the License is available at * 10 * http://www.opensource.org/licenses/cpl1.0.txt * 11 * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 12 * * 13 * Information and Software Systems Research * 14 * AT&T Research * 15 * Florham Park NJ * 16 * * 17 * Glenn Fowler <gsf@research.att.com> * 18 * David Korn <dgk@research.att.com> * 19 * Phong Vo <kpv@research.att.com> * 20 * * 21 ***********************************************************************/ 22 23 /* : : generated by proto : : */ 24 /* : : generated from /home/gisburn/ksh93/ast_ksh_20081104/build_sparc_32bit/src/lib/libast/features/tmx by iffe version 2008-01-31 : : */ 25 26 #ifndef _TMX_H 27 #if !defined(__PROTO__) 28 # if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus) 29 # if defined(__cplusplus) 30 # define __LINKAGE__ "C" 31 # else 32 # define __LINKAGE__ 33 # endif 34 # define __STDARG__ 35 # define __PROTO__(x) x 36 # define __OTORP__(x) 37 # define __PARAM__(n,o) n 38 # if !defined(__STDC__) && !defined(__cplusplus) 39 # if !defined(c_plusplus) 40 # define const 41 # endif 42 # define signed 43 # define void int 44 # define volatile 45 # define __V_ char 46 # else 47 # define __V_ void 48 # endif 49 # else 50 # define __PROTO__(x) () 51 # define __OTORP__(x) x 52 # define __PARAM__(n,o) o 53 # define __LINKAGE__ 54 # define __V_ char 55 # define const 56 # define signed 57 # define void int 58 # define volatile 59 # endif 60 # define __MANGLE__ __LINKAGE__ 61 # if defined(__cplusplus) || defined(c_plusplus) 62 # define __VARARG__ ... 63 # else 64 # define __VARARG__ 65 # endif 66 # if defined(__STDARG__) 67 # define __VA_START__(p,a) va_start(p,a) 68 # else 69 # define __VA_START__(p,a) va_start(p) 70 # endif 71 # if !defined(__INLINE__) 72 # if defined(__cplusplus) 73 # define __INLINE__ extern __MANGLE__ inline 74 # else 75 # if defined(_WIN32) && !defined(__GNUC__) 76 # define __INLINE__ __inline 77 # endif 78 # endif 79 # endif 80 #endif 81 #if !defined(__LINKAGE__) 82 #define __LINKAGE__ /* 2004-08-11 transition */ 83 #endif 84 85 #define _TMX_H 1 86 /* 87 * AT&T Research 88 * 89 * high resolution Time_t support 90 */ 91 92 #include <tm.h> 93 #include <tv.h> 94 95 #define TMX_MAXDATE "2554-07-21+23:34:33.709551614 UTC" 96 #define TMX_MAXYEAR 2554 97 #define TMX_MAXSEC ((Time_t)18446744073) 98 #define TMX_MAXNSEC 709551614 99 #define TMX_RESOLUTION 1000000000 100 101 typedef uint64_t Time_t; 102 typedef uint64_t Tmxsec_t; 103 typedef uint32_t Tmxnsec_t; 104 105 #define tmxsec(t) ((Tmxsec_t)((t)/1000000000)) 106 #define tmxnsec(t) ((Tmxnsec_t)((t)%1000000000)) 107 #define tmxsns(s,n) (((((Time_t)(s))*1000000000))+((Time_t)(n))) 108 109 #define TMX_NOTIME ((Time_t)(-1)) 110 #define TMX_NOW tmxgettime() 111 #define TMX_MAXTIME tmxsns(TMX_MAXSEC,TMX_MAXNSEC) 112 113 #define tmx2tv(t,v) ((v)->tv_nsec=tmxnsec(t),(v)->tv_sec=tmxsec(t)) 114 #define tv2tmx(v) tmxsns((v)->tv_sec,(v)->tv_nsec) 115 116 #define tmxclock(p) tmxsns(((p)?*(p):time(NiL)),0) 117 118 #define tmxgetatime(s) tmxsns((s)->st_atime,ST_ATIME_NSEC_GET(s)) 119 #define tmxgetctime(s) tmxsns((s)->st_ctime,ST_CTIME_NSEC_GET(s)) 120 #define tmxgetmtime(s) tmxsns((s)->st_mtime,ST_MTIME_NSEC_GET(s)) 121 122 #define tmxsetatime(s,t) ((s)->st_atime=tmxsec(t),ST_ATIME_NSEC_SET(s,tmxnsec(t))) 123 #define tmxsetctime(s,t) ((s)->st_ctime=tmxsec(t),ST_CTIME_NSEC_SET(s,tmxnsec(t))) 124 #define tmxsetmtime(s,t) ((s)->st_mtime=tmxsec(t),ST_MTIME_NSEC_SET(s,tmxnsec(t))) 125 126 #if _BLD_ast && defined(__EXPORT__) 127 #undef __MANGLE__ 128 #define __MANGLE__ __LINKAGE__ __EXPORT__ 129 #endif 130 131 extern __MANGLE__ Time_t tmxdate __PROTO__((const char*, char**, Time_t)); 132 extern __MANGLE__ char* tmxfmt __PROTO__((char*, size_t, const char*, Time_t)); 133 extern __MANGLE__ Time_t tmxleap __PROTO__((Time_t)); 134 extern __MANGLE__ Tm_t* tmxmake __PROTO__((Time_t)); 135 extern __MANGLE__ Time_t tmxscan __PROTO__((const char*, char**, const char*, char**, Time_t, long)); 136 extern __MANGLE__ int tmxsleep __PROTO__((Time_t)); 137 extern __MANGLE__ Time_t tmxtime __PROTO__((Tm_t*, int)); 138 139 extern __MANGLE__ Time_t tmxgettime __PROTO__((void)); 140 extern __MANGLE__ int tmxsettime __PROTO__((Time_t)); 141 142 extern __MANGLE__ int tmxtouch __PROTO__((const char*, Time_t, Time_t, Time_t, int)); 143 144 extern __MANGLE__ char* fmttmx __PROTO__((const char*, Time_t)); 145 146 #undef __MANGLE__ 147 #define __MANGLE__ __LINKAGE__ 148 149 #endif 150