14887Schin /*********************************************************************** 24887Schin * * 34887Schin * This software is part of the ast package * 4*12068SRoger.Faulkner@Oracle.COM * Copyright (c) 1985-2010 AT&T Intellectual Property * 54887Schin * and is licensed under the * 64887Schin * Common Public License, Version 1.0 * 78462SApril.Chin@Sun.COM * by AT&T Intellectual Property * 84887Schin * * 94887Schin * A copy of the License is available at * 104887Schin * http://www.opensource.org/licenses/cpl1.0.txt * 114887Schin * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 124887Schin * * 134887Schin * Information and Software Systems Research * 144887Schin * AT&T Research * 154887Schin * Florham Park NJ * 164887Schin * * 174887Schin * Glenn Fowler <gsf@research.att.com> * 184887Schin * David Korn <dgk@research.att.com> * 194887Schin * Phong Vo <kpv@research.att.com> * 204887Schin * * 214887Schin ***********************************************************************/ 224887Schin 234887Schin /* : : generated by proto : : */ 24*12068SRoger.Faulkner@Oracle.COM /* : : generated from /home/gisburn/ksh93/ast_ksh_20100309/build_sparc_64bit/src/lib/libast/features/tmx by iffe version 2009-12-04 : : */ 254887Schin 264887Schin #ifndef _TMX_H 274887Schin #if !defined(__PROTO__) 284887Schin # if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus) 294887Schin # if defined(__cplusplus) 304887Schin # define __LINKAGE__ "C" 314887Schin # else 324887Schin # define __LINKAGE__ 334887Schin # endif 344887Schin # define __STDARG__ 354887Schin # define __PROTO__(x) x 364887Schin # define __OTORP__(x) 374887Schin # define __PARAM__(n,o) n 384887Schin # if !defined(__STDC__) && !defined(__cplusplus) 394887Schin # if !defined(c_plusplus) 404887Schin # define const 414887Schin # endif 424887Schin # define signed 434887Schin # define void int 444887Schin # define volatile 454887Schin # define __V_ char 464887Schin # else 474887Schin # define __V_ void 484887Schin # endif 494887Schin # else 504887Schin # define __PROTO__(x) () 514887Schin # define __OTORP__(x) x 524887Schin # define __PARAM__(n,o) o 534887Schin # define __LINKAGE__ 544887Schin # define __V_ char 554887Schin # define const 564887Schin # define signed 574887Schin # define void int 584887Schin # define volatile 594887Schin # endif 604887Schin # define __MANGLE__ __LINKAGE__ 614887Schin # if defined(__cplusplus) || defined(c_plusplus) 624887Schin # define __VARARG__ ... 634887Schin # else 644887Schin # define __VARARG__ 654887Schin # endif 664887Schin # if defined(__STDARG__) 674887Schin # define __VA_START__(p,a) va_start(p,a) 684887Schin # else 694887Schin # define __VA_START__(p,a) va_start(p) 704887Schin # endif 714887Schin # if !defined(__INLINE__) 724887Schin # if defined(__cplusplus) 734887Schin # define __INLINE__ extern __MANGLE__ inline 744887Schin # else 754887Schin # if defined(_WIN32) && !defined(__GNUC__) 764887Schin # define __INLINE__ __inline 774887Schin # endif 784887Schin # endif 794887Schin # endif 804887Schin #endif 814887Schin #if !defined(__LINKAGE__) 824887Schin #define __LINKAGE__ /* 2004-08-11 transition */ 834887Schin #endif 844887Schin 854887Schin #define _TMX_H 1 864887Schin /* 874887Schin * AT&T Research 884887Schin * 894887Schin * high resolution Time_t support 904887Schin */ 914887Schin 924887Schin #include <tm.h> 934887Schin #include <tv.h> 944887Schin 954887Schin #define TMX_MAXDATE "2554-07-21+23:34:33.709551614 UTC" 964887Schin #define TMX_MAXYEAR 2554 974887Schin #define TMX_MAXSEC ((Time_t)18446744073) 984887Schin #define TMX_MAXNSEC 709551614 994887Schin #define TMX_RESOLUTION 1000000000 1004887Schin 1014887Schin typedef uint64_t Time_t; 1024887Schin typedef uint64_t Tmxsec_t; 1034887Schin typedef uint32_t Tmxnsec_t; 1044887Schin 1054887Schin #define tmxsec(t) ((Tmxsec_t)((t)/1000000000)) 1064887Schin #define tmxnsec(t) ((Tmxnsec_t)((t)%1000000000)) 1074887Schin #define tmxsns(s,n) (((((Time_t)(s))*1000000000))+((Time_t)(n))) 1084887Schin 1094887Schin #define TMX_NOTIME ((Time_t)(-1)) 1104887Schin #define TMX_NOW tmxgettime() 1114887Schin #define TMX_MAXTIME tmxsns(TMX_MAXSEC,TMX_MAXNSEC) 1124887Schin 1134887Schin #define tmx2tv(t,v) ((v)->tv_nsec=tmxnsec(t),(v)->tv_sec=tmxsec(t)) 1144887Schin #define tv2tmx(v) tmxsns((v)->tv_sec,(v)->tv_nsec) 1154887Schin 1164887Schin #define tmxclock(p) tmxsns(((p)?*(p):time(NiL)),0) 1174887Schin 1184887Schin #define tmxgetatime(s) tmxsns((s)->st_atime,ST_ATIME_NSEC_GET(s)) 1194887Schin #define tmxgetctime(s) tmxsns((s)->st_ctime,ST_CTIME_NSEC_GET(s)) 1204887Schin #define tmxgetmtime(s) tmxsns((s)->st_mtime,ST_MTIME_NSEC_GET(s)) 1214887Schin 1224887Schin #define tmxsetatime(s,t) ((s)->st_atime=tmxsec(t),ST_ATIME_NSEC_SET(s,tmxnsec(t))) 1234887Schin #define tmxsetctime(s,t) ((s)->st_ctime=tmxsec(t),ST_CTIME_NSEC_SET(s,tmxnsec(t))) 1244887Schin #define tmxsetmtime(s,t) ((s)->st_mtime=tmxsec(t),ST_MTIME_NSEC_SET(s,tmxnsec(t))) 1254887Schin 1264887Schin #if _BLD_ast && defined(__EXPORT__) 1274887Schin #undef __MANGLE__ 1284887Schin #define __MANGLE__ __LINKAGE__ __EXPORT__ 1294887Schin #endif 1304887Schin 1314887Schin extern __MANGLE__ Time_t tmxdate __PROTO__((const char*, char**, Time_t)); 13210898Sroland.mainz@nrubsig.org extern __MANGLE__ Time_t tmxduration __PROTO__((const char*, char**)); 1334887Schin extern __MANGLE__ char* tmxfmt __PROTO__((char*, size_t, const char*, Time_t)); 1344887Schin extern __MANGLE__ Time_t tmxleap __PROTO__((Time_t)); 1354887Schin extern __MANGLE__ Tm_t* tmxmake __PROTO__((Time_t)); 1364887Schin extern __MANGLE__ Time_t tmxscan __PROTO__((const char*, char**, const char*, char**, Time_t, long)); 1374887Schin extern __MANGLE__ int tmxsleep __PROTO__((Time_t)); 1384887Schin extern __MANGLE__ Time_t tmxtime __PROTO__((Tm_t*, int)); 13910898Sroland.mainz@nrubsig.org extern __MANGLE__ Tm_t* tmxtm __PROTO__((Tm_t*, Time_t, Tm_zone_t*)); 1404887Schin 1414887Schin extern __MANGLE__ Time_t tmxgettime __PROTO__((void)); 1424887Schin extern __MANGLE__ int tmxsettime __PROTO__((Time_t)); 1434887Schin 1444887Schin extern __MANGLE__ int tmxtouch __PROTO__((const char*, Time_t, Time_t, Time_t, int)); 1454887Schin 1464887Schin extern __MANGLE__ char* fmttmx __PROTO__((const char*, Time_t)); 1474887Schin 1484887Schin #undef __MANGLE__ 1494887Schin #define __MANGLE__ __LINKAGE__ 1504887Schin 1514887Schin #endif 152