set prototyped set explicit iff TV cat{ /* * AT&T Research * * high resolution Tv_t interface definitions */ #include #define TV_NSEC_IGNORE (1000000000L) #define TV_TOUCH_RETAIN ((Tv_t*)1) typedef struct Tv_s { uint32_t tv_sec; uint32_t tv_nsec; } Tv_t; }end if mem stat.st_mtimespec.tv_nsec sys/stat.h { #define ST_ATIME_NSEC_GET(st) ((st)->st_atimespec.tv_nsec) #define ST_CTIME_NSEC_GET(st) ((st)->st_ctimespec.tv_nsec) #define ST_MTIME_NSEC_GET(st) ((st)->st_mtimespec.tv_nsec) } elif mem stat.st_mtim.st__tim.tv_nsec sys/stat.h { #define ST_ATIME_NSEC_GET(st) ((st)->st_atim.st__tim.tv_nsec) #define ST_CTIME_NSEC_GET(st) ((st)->st_ctim.st__tim.tv_nsec) #define ST_MTIME_NSEC_GET(st) ((st)->st_mtim.st__tim.tv_nsec) } elif mem stat.st_mtim.tv_nsec sys/stat.h { #define ST_ATIME_NSEC_GET(st) ((st)->st_atim.tv_nsec) #define ST_CTIME_NSEC_GET(st) ((st)->st_ctim.tv_nsec) #define ST_MTIME_NSEC_GET(st) ((st)->st_mtim.tv_nsec) } elif mem stat.st_mtimensec sys/stat.h { #define ST_ATIME_NSEC_GET(st) ((st)->st_atimensec) #define ST_CTIME_NSEC_GET(st) ((st)->st_ctimensec) #define ST_MTIME_NSEC_GET(st) ((st)->st_mtimensec) } else pass{ no_stat_nsec=1 }end { #define ST_ATIME_NSEC_GET(st) 0 #define ST_CTIME_NSEC_GET(st) 0 #define ST_MTIME_NSEC_GET(st) 0 #define ST_ATIME_NSEC_SET(st,n) 0 #define ST_CTIME_NSEC_SET(st,n) 0 #define ST_MTIME_NSEC_SET(st,n) 0 } endif if ( !no_stat_nsec ) { #define ST_ATIME_NSEC_SET(st,n) (ST_ATIME_NSEC_GET(st)=(n)) #define ST_CTIME_NSEC_SET(st,n) (ST_CTIME_NSEC_GET(st)=(n)) #define ST_MTIME_NSEC_SET(st,n) (ST_MTIME_NSEC_GET(st)=(n)) } endif cat{ #define tvgetatime(t,s) ((t)->tv_nsec=ST_ATIME_NSEC_GET(s),(t)->tv_sec=(s)->st_atime) #define tvgetmtime(t,s) ((t)->tv_nsec=ST_MTIME_NSEC_GET(s),(t)->tv_sec=(s)->st_mtime) #define tvgetctime(t,s) ((t)->tv_nsec=ST_CTIME_NSEC_GET(s),(t)->tv_sec=(s)->st_ctime) #define tvsetatime(t,s) (ST_ATIME_NSEC_SET(s,(t)->tv_nsec),(s)->st_atime=(t)->tv_sec) #define tvsetmtime(t,s) (ST_MTIME_NSEC_SET(s,(t)->tv_nsec),(s)->st_mtime=(t)->tv_sec) #define tvsetctime(t,s) (ST_CTIME_NSEC_SET(s,(t)->tv_nsec),(s)->st_ctime=(t)->tv_sec) #if _BLD_ast && defined(__EXPORT__) #define extern __EXPORT__ #endif extern int tvgettime(Tv_t*); extern int tvsettime(const Tv_t*); extern int tvcmp(const Tv_t*, const Tv_t*); extern int tvtouch(const char*, const Tv_t*, const Tv_t*, const Tv_t*, int); extern int tvsleep(const Tv_t*, Tv_t*); extern char* fmttv(const char*, Tv_t*); }end