da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin/* : : generated by proto : : */
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner/* : : generated from /home/gisburn/ksh93/ast_ksh_20100309/build_i386_64bit/src/lib/libast/features/tmx by iffe version 2009-12-04 : : */
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#ifndef _TMX_H
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#if !defined(__PROTO__)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# if defined(__cplusplus)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __LINKAGE__ "C"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# else
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __LINKAGE__
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __STDARG__
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __PROTO__(x) x
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __OTORP__(x)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __PARAM__(n,o) n
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# if !defined(__STDC__) && !defined(__cplusplus)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# if !defined(c_plusplus)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define const
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define signed
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define void int
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define volatile
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __V_ char
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# else
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __V_ void
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# else
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __PROTO__(x) ()
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __OTORP__(x) x
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __PARAM__(n,o) o
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __LINKAGE__
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __V_ char
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define const
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define signed
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define void int
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define volatile
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __MANGLE__ __LINKAGE__
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# if defined(__cplusplus) || defined(c_plusplus)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __VARARG__ ...
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# else
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __VARARG__
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# if defined(__STDARG__)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __VA_START__(p,a) va_start(p,a)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# else
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __VA_START__(p,a) va_start(p)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# if !defined(__INLINE__)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# if defined(__cplusplus)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __INLINE__ extern __MANGLE__ inline
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# else
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# if defined(_WIN32) && !defined(__GNUC__)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# define __INLINE__ __inline
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#if !defined(__LINKAGE__)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define __LINKAGE__ /* 2004-08-11 transition */
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define _TMX_H 1
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin/*
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * AT&T Research
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * high resolution Time_t support
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin */
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#include <tm.h>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#include <tv.h>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define TMX_MAXDATE "2554-07-21+23:34:33.709551614 UTC"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define TMX_MAXYEAR 2554
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define TMX_MAXSEC ((Time_t)18446744073)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define TMX_MAXNSEC 709551614
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define TMX_RESOLUTION 1000000000
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintypedef uint64_t Time_t;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintypedef uint64_t Tmxsec_t;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintypedef uint32_t Tmxnsec_t;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define tmxsec(t) ((Tmxsec_t)((t)/1000000000))
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define tmxnsec(t) ((Tmxnsec_t)((t)%1000000000))
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define tmxsns(s,n) (((((Time_t)(s))*1000000000))+((Time_t)(n)))
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define TMX_NOTIME ((Time_t)(-1))
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define TMX_NOW tmxgettime()
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define TMX_MAXTIME tmxsns(TMX_MAXSEC,TMX_MAXNSEC)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define tmx2tv(t,v) ((v)->tv_nsec=tmxnsec(t),(v)->tv_sec=tmxsec(t))
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define tv2tmx(v) tmxsns((v)->tv_sec,(v)->tv_nsec)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define tmxclock(p) tmxsns(((p)?*(p):time(NiL)),0)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define tmxgetatime(s) tmxsns((s)->st_atime,ST_ATIME_NSEC_GET(s))
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define tmxgetctime(s) tmxsns((s)->st_ctime,ST_CTIME_NSEC_GET(s))
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define tmxgetmtime(s) tmxsns((s)->st_mtime,ST_MTIME_NSEC_GET(s))
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define tmxsetatime(s,t) ((s)->st_atime=tmxsec(t),ST_ATIME_NSEC_SET(s,tmxnsec(t)))
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define tmxsetctime(s,t) ((s)->st_ctime=tmxsec(t),ST_CTIME_NSEC_SET(s,tmxnsec(t)))
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define tmxsetmtime(s,t) ((s)->st_mtime=tmxsec(t),ST_MTIME_NSEC_SET(s,tmxnsec(t)))
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#if _BLD_ast && defined(__EXPORT__)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#undef __MANGLE__
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define __MANGLE__ __LINKAGE__ __EXPORT__
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ Time_t tmxdate __PROTO__((const char*, char**, Time_t));
34f9b3eef6fdadbda0a846aa4d68691ac40eace5Roland Mainzextern __MANGLE__ Time_t tmxduration __PROTO__((const char*, char**));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ char* tmxfmt __PROTO__((char*, size_t, const char*, Time_t));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ Time_t tmxleap __PROTO__((Time_t));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ Tm_t* tmxmake __PROTO__((Time_t));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ Time_t tmxscan __PROTO__((const char*, char**, const char*, char**, Time_t, long));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ int tmxsleep __PROTO__((Time_t));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ Time_t tmxtime __PROTO__((Tm_t*, int));
34f9b3eef6fdadbda0a846aa4d68691ac40eace5Roland Mainzextern __MANGLE__ Tm_t* tmxtm __PROTO__((Tm_t*, Time_t, Tm_zone_t*));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ Time_t tmxgettime __PROTO__((void));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ int tmxsettime __PROTO__((Time_t));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ int tmxtouch __PROTO__((const char*, Time_t, Time_t, Time_t, int));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ char* fmttmx __PROTO__((const char*, Time_t));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#undef __MANGLE__
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define __MANGLE__ __LINKAGE__
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#endif