1 /*********************************************************************** 2 * * 3 * This software is part of the ast package * 4 * Copyright (c) 1985-2009 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_20091014/build_sparc_64bit/src/lib/libast/features/tv by iffe version 2009-10-06 : : */ 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 97 typedef 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 124 extern __MANGLE__ int tvgettime __PROTO__((Tv_t*)); 125 extern __MANGLE__ int tvsettime __PROTO__((const Tv_t*)); 126 extern __MANGLE__ int tvcmp __PROTO__((const Tv_t*, const Tv_t*)); 127 extern __MANGLE__ int tvtouch __PROTO__((const char*, const Tv_t*, const Tv_t*, const Tv_t*, int)); 128 extern __MANGLE__ int tvsleep __PROTO__((const Tv_t*, Tv_t*)); 129 130 extern __MANGLE__ char* fmttv __PROTO__((const char*, Tv_t*)); 131 132 #endif 133