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_32bit/src/lib/libast/features/tv by iffe version 2009-12-04 : : */
25
26#ifndef _TV_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 _TV_H	1
86/*
87 * AT&T Research
88 *
89 * high resolution Tv_t interface definitions
90 */
91
92#include <ast.h>
93
94#define TV_NSEC_IGNORE		(1000000000L)
95#define TV_TOUCH_RETAIN		((Tv_t*)1)
96
97typedef struct Tv_s
98{
99	uint32_t	tv_sec;
100	uint32_t	tv_nsec;
101} Tv_t;
102
103#define ST_ATIME_NSEC_GET(st)	((st)->st_atim.tv_nsec)
104#define ST_CTIME_NSEC_GET(st)	((st)->st_ctim.tv_nsec)
105#define ST_MTIME_NSEC_GET(st)	((st)->st_mtim.tv_nsec)
106
107#define ST_ATIME_NSEC_SET(st,n)	(ST_ATIME_NSEC_GET(st)=(n))
108#define ST_CTIME_NSEC_SET(st,n)	(ST_CTIME_NSEC_GET(st)=(n))
109#define ST_MTIME_NSEC_SET(st,n)	(ST_MTIME_NSEC_GET(st)=(n))
110
111#define tvgetatime(t,s)	((t)->tv_nsec=ST_ATIME_NSEC_GET(s),(t)->tv_sec=(s)->st_atime)
112#define tvgetmtime(t,s)	((t)->tv_nsec=ST_MTIME_NSEC_GET(s),(t)->tv_sec=(s)->st_mtime)
113#define tvgetctime(t,s)	((t)->tv_nsec=ST_CTIME_NSEC_GET(s),(t)->tv_sec=(s)->st_ctime)
114
115#define tvsetatime(t,s)	(ST_ATIME_NSEC_SET(s,(t)->tv_nsec),(s)->st_atime=(t)->tv_sec)
116#define tvsetmtime(t,s)	(ST_MTIME_NSEC_SET(s,(t)->tv_nsec),(s)->st_mtime=(t)->tv_sec)
117#define tvsetctime(t,s)	(ST_CTIME_NSEC_SET(s,(t)->tv_nsec),(s)->st_ctime=(t)->tv_sec)
118
119#if _BLD_ast && defined(__EXPORT__)
120#undef __MANGLE__
121#define __MANGLE__ __LINKAGE__		__EXPORT__
122#endif
123
124extern __MANGLE__ int		tvgettime __PROTO__((Tv_t*));
125extern __MANGLE__ int		tvsettime __PROTO__((const Tv_t*));
126extern __MANGLE__ int		tvcmp __PROTO__((const Tv_t*, const Tv_t*));
127extern __MANGLE__ int		tvtouch __PROTO__((const char*, const Tv_t*, const Tv_t*, const Tv_t*, int));
128extern __MANGLE__ int		tvsleep __PROTO__((const Tv_t*, Tv_t*));
129
130extern __MANGLE__ char*		fmttv __PROTO__((const char*, Tv_t*));
131
132#endif
133