1*b4dd7d09SAndy Fiddaman 2*b4dd7d09SAndy Fiddaman/* : : generated by proto : : */ 3*b4dd7d09SAndy Fiddaman/* : : generated from contrib/ast/src/lib/libast/features/tmx by iffe version 2012-07-17 : : */ 4*b4dd7d09SAndy Fiddaman 5*b4dd7d09SAndy Fiddaman#ifndef _TMX_H 6*b4dd7d09SAndy Fiddaman#if !defined(__PROTO__) 7*b4dd7d09SAndy Fiddaman# if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus) 8*b4dd7d09SAndy Fiddaman# if defined(__cplusplus) 9*b4dd7d09SAndy Fiddaman# define __LINKAGE__ "C" 10*b4dd7d09SAndy Fiddaman# else 11*b4dd7d09SAndy Fiddaman# define __LINKAGE__ 12*b4dd7d09SAndy Fiddaman# endif 13*b4dd7d09SAndy Fiddaman# define __STDARG__ 14*b4dd7d09SAndy Fiddaman# define __PROTO__(x) x 15*b4dd7d09SAndy Fiddaman# define __OTORP__(x) 16*b4dd7d09SAndy Fiddaman# define __PARAM__(n,o) n 17*b4dd7d09SAndy Fiddaman# if !defined(__STDC__) && !defined(__cplusplus) 18*b4dd7d09SAndy Fiddaman# if !defined(c_plusplus) 19*b4dd7d09SAndy Fiddaman# define const 20*b4dd7d09SAndy Fiddaman# endif 21*b4dd7d09SAndy Fiddaman# define signed 22*b4dd7d09SAndy Fiddaman# define void int 23*b4dd7d09SAndy Fiddaman# define volatile 24*b4dd7d09SAndy Fiddaman# define __V_ char 25*b4dd7d09SAndy Fiddaman# else 26*b4dd7d09SAndy Fiddaman# define __V_ void 27*b4dd7d09SAndy Fiddaman# endif 28*b4dd7d09SAndy Fiddaman# else 29*b4dd7d09SAndy Fiddaman# define __PROTO__(x) () 30*b4dd7d09SAndy Fiddaman# define __OTORP__(x) x 31*b4dd7d09SAndy Fiddaman# define __PARAM__(n,o) o 32*b4dd7d09SAndy Fiddaman# define __LINKAGE__ 33*b4dd7d09SAndy Fiddaman# define __V_ char 34*b4dd7d09SAndy Fiddaman# define const 35*b4dd7d09SAndy Fiddaman# define signed 36*b4dd7d09SAndy Fiddaman# define void int 37*b4dd7d09SAndy Fiddaman# define volatile 38*b4dd7d09SAndy Fiddaman# endif 39*b4dd7d09SAndy Fiddaman# define __MANGLE__ __LINKAGE__ 40*b4dd7d09SAndy Fiddaman# if defined(__cplusplus) || defined(c_plusplus) 41*b4dd7d09SAndy Fiddaman# define __VARARG__ ... 42*b4dd7d09SAndy Fiddaman# else 43*b4dd7d09SAndy Fiddaman# define __VARARG__ 44*b4dd7d09SAndy Fiddaman# endif 45*b4dd7d09SAndy Fiddaman# if defined(__STDARG__) 46*b4dd7d09SAndy Fiddaman# define __VA_START__(p,a) va_start(p,a) 47*b4dd7d09SAndy Fiddaman# else 48*b4dd7d09SAndy Fiddaman# define __VA_START__(p,a) va_start(p) 49*b4dd7d09SAndy Fiddaman# endif 50*b4dd7d09SAndy Fiddaman# if !defined(__INLINE__) 51*b4dd7d09SAndy Fiddaman# if defined(__cplusplus) 52*b4dd7d09SAndy Fiddaman# define __INLINE__ extern __MANGLE__ inline 53*b4dd7d09SAndy Fiddaman# else 54*b4dd7d09SAndy Fiddaman# if defined(_WIN32) && !defined(__GNUC__) 55*b4dd7d09SAndy Fiddaman# define __INLINE__ __inline 56*b4dd7d09SAndy Fiddaman# endif 57*b4dd7d09SAndy Fiddaman# endif 58*b4dd7d09SAndy Fiddaman# endif 59*b4dd7d09SAndy Fiddaman#endif 60*b4dd7d09SAndy Fiddaman#if !defined(__LINKAGE__) 61*b4dd7d09SAndy Fiddaman#define __LINKAGE__ /* 2004-08-11 transition */ 62*b4dd7d09SAndy Fiddaman#endif 63*b4dd7d09SAndy Fiddaman 64*b4dd7d09SAndy Fiddaman#define _TMX_H 1 65*b4dd7d09SAndy Fiddaman/* 66*b4dd7d09SAndy Fiddaman * AT&T Research 67*b4dd7d09SAndy Fiddaman * 68*b4dd7d09SAndy Fiddaman * high resolution Time_t support 69*b4dd7d09SAndy Fiddaman */ 70*b4dd7d09SAndy Fiddaman 71*b4dd7d09SAndy Fiddaman#include <tm.h> 72*b4dd7d09SAndy Fiddaman#include <tv.h> 73*b4dd7d09SAndy Fiddaman 74*b4dd7d09SAndy Fiddaman#define TMX_MAXDATE "2554-07-21+23:34:33.709551614 UTC" 75*b4dd7d09SAndy Fiddaman#define TMX_MAXYEAR 2554 76*b4dd7d09SAndy Fiddaman#define TMX_MAXSEC ((Time_t)18446744073) 77*b4dd7d09SAndy Fiddaman#define TMX_MAXNSEC 709551614 78*b4dd7d09SAndy Fiddaman#define TMX_RESOLUTION 1000000000 79*b4dd7d09SAndy Fiddaman 80*b4dd7d09SAndy Fiddamantypedef uint64_t Time_t; 81*b4dd7d09SAndy Fiddamantypedef uint64_t Tmxsec_t; 82*b4dd7d09SAndy Fiddamantypedef uint32_t Tmxnsec_t; 83*b4dd7d09SAndy Fiddaman 84*b4dd7d09SAndy Fiddaman#define tmxsec(t) ((Tmxsec_t)((t)/1000000000)) 85*b4dd7d09SAndy Fiddaman#define tmxnsec(t) ((Tmxnsec_t)((t)%1000000000)) 86*b4dd7d09SAndy Fiddaman#define tmxsns(s,n) (((((Time_t)(s))*1000000000))+((Time_t)(n))) 87*b4dd7d09SAndy Fiddaman 88*b4dd7d09SAndy Fiddaman#define TMX_NOTIME ((Time_t)(-1)) 89*b4dd7d09SAndy Fiddaman#define TMX_NOW tmxgettime() 90*b4dd7d09SAndy Fiddaman#define TMX_MAXTIME tmxsns(TMX_MAXSEC,TMX_MAXNSEC) 91*b4dd7d09SAndy Fiddaman 92*b4dd7d09SAndy Fiddaman#define tmx2tv(t,v) ((v)->tv_nsec=tmxnsec(t),(v)->tv_sec=tmxsec(t)) 93*b4dd7d09SAndy Fiddaman#define tv2tmx(v) tmxsns((v)->tv_sec,(v)->tv_nsec) 94*b4dd7d09SAndy Fiddaman 95*b4dd7d09SAndy Fiddaman#define tmxclock(p) tmxsns(((p)?*(p):time(NiL)),0) 96*b4dd7d09SAndy Fiddaman 97*b4dd7d09SAndy Fiddaman#define tmxgetatime(s) tmxsns((s)->st_atime,ST_ATIME_NSEC_GET(s)) 98*b4dd7d09SAndy Fiddaman#define tmxgetctime(s) tmxsns((s)->st_ctime,ST_CTIME_NSEC_GET(s)) 99*b4dd7d09SAndy Fiddaman#define tmxgetmtime(s) tmxsns((s)->st_mtime,ST_MTIME_NSEC_GET(s)) 100*b4dd7d09SAndy Fiddaman 101*b4dd7d09SAndy Fiddaman#define tmxsetatime(s,t) ((s)->st_atime=tmxsec(t),ST_ATIME_NSEC_SET(s,tmxnsec(t))) 102*b4dd7d09SAndy Fiddaman#define tmxsetctime(s,t) ((s)->st_ctime=tmxsec(t),ST_CTIME_NSEC_SET(s,tmxnsec(t))) 103*b4dd7d09SAndy Fiddaman#define tmxsetmtime(s,t) ((s)->st_mtime=tmxsec(t),ST_MTIME_NSEC_SET(s,tmxnsec(t))) 104*b4dd7d09SAndy Fiddaman 105*b4dd7d09SAndy Fiddaman#if _BLD_ast && defined(__EXPORT__) 106*b4dd7d09SAndy Fiddaman#undef __MANGLE__ 107*b4dd7d09SAndy Fiddaman#define __MANGLE__ __LINKAGE__ __EXPORT__ 108*b4dd7d09SAndy Fiddaman#endif 109*b4dd7d09SAndy Fiddaman 110*b4dd7d09SAndy Fiddamanextern __MANGLE__ Time_t tmxdate __PROTO__((const char*, char**, Time_t)); 111*b4dd7d09SAndy Fiddamanextern __MANGLE__ Time_t tmxduration __PROTO__((const char*, char**)); 112*b4dd7d09SAndy Fiddamanextern __MANGLE__ char* tmxfmt __PROTO__((char*, size_t, const char*, Time_t)); 113*b4dd7d09SAndy Fiddamanextern __MANGLE__ Time_t tmxleap __PROTO__((Time_t)); 114*b4dd7d09SAndy Fiddamanextern __MANGLE__ Tm_t* tmxmake __PROTO__((Time_t)); 115*b4dd7d09SAndy Fiddamanextern __MANGLE__ Time_t tmxscan __PROTO__((const char*, char**, const char*, char**, Time_t, long)); 116*b4dd7d09SAndy Fiddamanextern __MANGLE__ int tmxsleep __PROTO__((Time_t)); 117*b4dd7d09SAndy Fiddamanextern __MANGLE__ Time_t tmxtime __PROTO__((Tm_t*, int)); 118*b4dd7d09SAndy Fiddamanextern __MANGLE__ Tm_t* tmxtm __PROTO__((Tm_t*, Time_t, Tm_zone_t*)); 119*b4dd7d09SAndy Fiddaman 120*b4dd7d09SAndy Fiddamanextern __MANGLE__ Time_t tmxgettime __PROTO__((void)); 121*b4dd7d09SAndy Fiddamanextern __MANGLE__ int tmxsettime __PROTO__((Time_t)); 122*b4dd7d09SAndy Fiddaman 123*b4dd7d09SAndy Fiddamanextern __MANGLE__ int tmxtouch __PROTO__((const char*, Time_t, Time_t, Time_t, int)); 124*b4dd7d09SAndy Fiddaman 125*b4dd7d09SAndy Fiddamanextern __MANGLE__ char* fmttmx __PROTO__((const char*, Time_t)); 126*b4dd7d09SAndy Fiddaman 127*b4dd7d09SAndy Fiddaman#undef __MANGLE__ 128*b4dd7d09SAndy Fiddaman#define __MANGLE__ __LINKAGE__ 129*b4dd7d09SAndy Fiddaman 130*b4dd7d09SAndy Fiddaman#endif 131