1/*********************************************************************** 2* * 3* This software is part of the ast package * 4* Copyright (c) 1985-2010 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_20100309/build_sparc_64bit/src/lib/libast/features/tmx by iffe version 2009-12-04 : : */ 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 101typedef uint64_t Time_t; 102typedef uint64_t Tmxsec_t; 103typedef 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 131extern __MANGLE__ Time_t tmxdate __PROTO__((const char*, char**, Time_t)); 132extern __MANGLE__ Time_t tmxduration __PROTO__((const char*, char**)); 133extern __MANGLE__ char* tmxfmt __PROTO__((char*, size_t, const char*, Time_t)); 134extern __MANGLE__ Time_t tmxleap __PROTO__((Time_t)); 135extern __MANGLE__ Tm_t* tmxmake __PROTO__((Time_t)); 136extern __MANGLE__ Time_t tmxscan __PROTO__((const char*, char**, const char*, char**, Time_t, long)); 137extern __MANGLE__ int tmxsleep __PROTO__((Time_t)); 138extern __MANGLE__ Time_t tmxtime __PROTO__((Tm_t*, int)); 139extern __MANGLE__ Tm_t* tmxtm __PROTO__((Tm_t*, Time_t, Tm_zone_t*)); 140 141extern __MANGLE__ Time_t tmxgettime __PROTO__((void)); 142extern __MANGLE__ int tmxsettime __PROTO__((Time_t)); 143 144extern __MANGLE__ int tmxtouch __PROTO__((const char*, Time_t, Time_t, Time_t, int)); 145 146extern __MANGLE__ char* fmttmx __PROTO__((const char*, Time_t)); 147 148#undef __MANGLE__ 149#define __MANGLE__ __LINKAGE__ 150 151#endif 152