xref: /illumos-gate/usr/src/cmd/ast/libast/i386/FEATURE/tv (revision b30d1939)
1da2e3ebdSchin
2da2e3ebdSchin/* : : generated by proto : : */
3*b30d1939SAndy Fiddaman/* : : generated from contrib/ast/src/lib/libast/features/tv by iffe version 2012-07-17 : : */
4*b30d1939SAndy Fiddaman
5da2e3ebdSchin#ifndef _TV_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 _TV_H	1
65da2e3ebdSchin/*
66da2e3ebdSchin * AT&T Research
67da2e3ebdSchin *
68da2e3ebdSchin * high resolution Tv_t interface definitions
69da2e3ebdSchin */
70da2e3ebdSchin
71da2e3ebdSchin#include <ast.h>
72da2e3ebdSchin
73da2e3ebdSchin#define TV_NSEC_IGNORE		(1000000000L)
74da2e3ebdSchin#define TV_TOUCH_RETAIN		((Tv_t*)1)
75da2e3ebdSchin
76da2e3ebdSchintypedef struct Tv_s
77da2e3ebdSchin{
78da2e3ebdSchin	uint32_t	tv_sec;
79da2e3ebdSchin	uint32_t	tv_nsec;
80da2e3ebdSchin} Tv_t;
81da2e3ebdSchin
82da2e3ebdSchin#define ST_ATIME_NSEC_GET(st)	((st)->st_atim.tv_nsec)
83da2e3ebdSchin#define ST_CTIME_NSEC_GET(st)	((st)->st_ctim.tv_nsec)
84da2e3ebdSchin#define ST_MTIME_NSEC_GET(st)	((st)->st_mtim.tv_nsec)
85da2e3ebdSchin
86da2e3ebdSchin#define ST_ATIME_NSEC_SET(st,n)	(ST_ATIME_NSEC_GET(st)=(n))
87da2e3ebdSchin#define ST_CTIME_NSEC_SET(st,n)	(ST_CTIME_NSEC_GET(st)=(n))
88da2e3ebdSchin#define ST_MTIME_NSEC_SET(st,n)	(ST_MTIME_NSEC_GET(st)=(n))
89da2e3ebdSchin
90da2e3ebdSchin#define tvgetatime(t,s)	((t)->tv_nsec=ST_ATIME_NSEC_GET(s),(t)->tv_sec=(s)->st_atime)
91da2e3ebdSchin#define tvgetmtime(t,s)	((t)->tv_nsec=ST_MTIME_NSEC_GET(s),(t)->tv_sec=(s)->st_mtime)
92da2e3ebdSchin#define tvgetctime(t,s)	((t)->tv_nsec=ST_CTIME_NSEC_GET(s),(t)->tv_sec=(s)->st_ctime)
93da2e3ebdSchin
94da2e3ebdSchin#define tvsetatime(t,s)	(ST_ATIME_NSEC_SET(s,(t)->tv_nsec),(s)->st_atime=(t)->tv_sec)
95da2e3ebdSchin#define tvsetmtime(t,s)	(ST_MTIME_NSEC_SET(s,(t)->tv_nsec),(s)->st_mtime=(t)->tv_sec)
96da2e3ebdSchin#define tvsetctime(t,s)	(ST_CTIME_NSEC_SET(s,(t)->tv_nsec),(s)->st_ctime=(t)->tv_sec)
97da2e3ebdSchin
98da2e3ebdSchin#if _BLD_ast && defined(__EXPORT__)
99da2e3ebdSchin#undef __MANGLE__
100da2e3ebdSchin#define __MANGLE__ __LINKAGE__		__EXPORT__
101da2e3ebdSchin#endif
102da2e3ebdSchin
103da2e3ebdSchinextern __MANGLE__ int		tvgettime __PROTO__((Tv_t*));
104da2e3ebdSchinextern __MANGLE__ int		tvsettime __PROTO__((const Tv_t*));
105da2e3ebdSchinextern __MANGLE__ int		tvcmp __PROTO__((const Tv_t*, const Tv_t*));
106da2e3ebdSchinextern __MANGLE__ int		tvtouch __PROTO__((const char*, const Tv_t*, const Tv_t*, const Tv_t*, int));
107da2e3ebdSchinextern __MANGLE__ int		tvsleep __PROTO__((const Tv_t*, Tv_t*));
108da2e3ebdSchin
109da2e3ebdSchinextern __MANGLE__ char*		fmttv __PROTO__((const char*, Tv_t*));
110da2e3ebdSchin
111da2e3ebdSchin#endif
112