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