diff options
Diffstat (limited to 'src/lib/libast/features/tv')
-rw-r--r-- | src/lib/libast/features/tv | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/lib/libast/features/tv b/src/lib/libast/features/tv new file mode 100644 index 0000000..ae15682 --- /dev/null +++ b/src/lib/libast/features/tv @@ -0,0 +1,81 @@ +set prototyped +set explicit +iff TV + +cat{ + /* + * AT&T Research + * + * high resolution Tv_t interface definitions + */ + + #include <ast.h> + + #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 |