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