[Libsysio-commit] HEAD: libsysio/include sysio-cmn.h
Brought to you by:
lward
From: Lee W. <lw...@us...> - 2007-07-02 18:58:48
|
Update of /cvsroot/libsysio/libsysio/include In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv18012/include Modified Files: sysio-cmn.h Log Message: Altered tracing support to include a format now. Re-introducing _HAVE_STATVFS6 for binary compatibility. Index: sysio-cmn.h =================================================================== RCS file: /cvsroot/libsysio/libsysio/include/sysio-cmn.h,v retrieving revision 1.16 retrieving revision 1.17 diff -u -w -b -B -p -r1.16 -r1.17 --- sysio-cmn.h 9 May 2007 23:16:20 -0000 1.16 +++ sysio-cmn.h 2 Jul 2007 18:58:15 -0000 1.17 @@ -133,78 +133,81 @@ struct iovec; */ #define SYSIO_INTERFACE_DISPLAY_BLOCK \ int _saved_errno; -#define SYSIO_INTERFACE_ENTER(tag, ...) \ +#define SYSIO_INTERFACE_ENTER(tag, fmt, ...) \ do { \ _saved_errno = errno; \ - SYSIO_ENTER(tag, __VA_ARGS__); \ + SYSIO_ENTER(tag, (fmt), __VA_ARGS__); \ } while (0) -#define SYSIO_INTERFACE_RETURN(rtn, err, tag, ...) \ +#define SYSIO_INTERFACE_RETURN(rtn, err, tag, fmt, ...) \ do { \ - SYSIO_LEAVE(tag, (rtn), (err), __VA_ARGS__); \ + SYSIO_LEAVE(tag, (fmt), (err), (rtn), __VA_ARGS__); \ errno = (err) ? -(err) : _saved_errno; \ return (rtn); \ } while(0) -/* Interface enter/leave hook functions */ #ifdef SYSIO_TRACING -#define _SYSIO_TTAG(name) \ +#define SYSIO_TTAG(name) \ PREPEND(_SYSIO_TRACING_, name) /* * Supported tracing tags. */ typedef enum { - _SYSIO_TTAG(unsupported) = -1, - _SYSIO_TTAG(access), - _SYSIO_TTAG(chdir), - _SYSIO_TTAG(getcwd), - _SYSIO_TTAG(chmod), - _SYSIO_TTAG(fchmod), - _SYSIO_TTAG(chown), - _SYSIO_TTAG(fchown), - _SYSIO_TTAG(dup2), - _SYSIO_TTAG(dup), - _SYSIO_TTAG(vfcntl), - _SYSIO_TTAG(fsync), - _SYSIO_TTAG(fdatasync), - _SYSIO_TTAG(getdirentries64), - _SYSIO_TTAG(getdirentries), - _SYSIO_TTAG(ioctl), - _SYSIO_TTAG(iodone), - _SYSIO_TTAG(iowait), - _SYSIO_TTAG(link), - _SYSIO_TTAG(lseek64), - _SYSIO_TTAG(lseek), - _SYSIO_TTAG(llseek), - _SYSIO_TTAG(mkdir), - _SYSIO_TTAG(xmknod), - _SYSIO_TTAG(mount), - _SYSIO_TTAG(umount), - _SYSIO_TTAG(open), - _SYSIO_TTAG(close), - _SYSIO_TTAG(ireadx), - _SYSIO_TTAG(iwritex), - _SYSIO_TTAG(ireadv), - _SYSIO_TTAG(iwritev), - _SYSIO_TTAG(rename), - _SYSIO_TTAG(rmdir), - _SYSIO_TTAG(xstatnd), - _SYSIO_TTAG(fxstat), -#ifdef _HAVE_STATVFS - _SYSIO_TTAG(statvfs64), - _SYSIO_TTAG(fstatvfs64), - _SYSIO_TTAG(statvfs), - _SYSIO_TTAG(fstatvfs), + SYSIO_TTAG(unsupported) = -1, + SYSIO_TTAG(access), + SYSIO_TTAG(chdir), + SYSIO_TTAG(getcwd), + SYSIO_TTAG(chmod), + SYSIO_TTAG(fchmod), + SYSIO_TTAG(chown), + SYSIO_TTAG(fchown), + SYSIO_TTAG(dup2), + SYSIO_TTAG(dup), + SYSIO_TTAG(vfcntl), + SYSIO_TTAG(fsync), + SYSIO_TTAG(fdatasync), + SYSIO_TTAG(getdirentries), +#ifdef _LARGEFILE64_SOURCE + SYSIO_TTAG(getdirentries64), +#endif + SYSIO_TTAG(ioctl), + SYSIO_TTAG(iodone), + SYSIO_TTAG(iowait), + SYSIO_TTAG(link), + SYSIO_TTAG(lseek), +#ifdef _LARGEFILE64_SOURCE + SYSIO_TTAG(lseek64), #endif - _SYSIO_TTAG(opendir), - _SYSIO_TTAG(closedir), - _SYSIO_TTAG(symlink), - _SYSIO_TTAG(readlink), - _SYSIO_TTAG(truncate), - _SYSIO_TTAG(ftruncate), - _SYSIO_TTAG(unlink), - _SYSIO_TTAG(utime), + SYSIO_TTAG(llseek), + SYSIO_TTAG(mkdir), + SYSIO_TTAG(xmknod), + SYSIO_TTAG(mount), + SYSIO_TTAG(umount), + SYSIO_TTAG(open), + SYSIO_TTAG(close), + SYSIO_TTAG(ireadx), + SYSIO_TTAG(iwritex), + SYSIO_TTAG(ireadv), + SYSIO_TTAG(iwritev), + SYSIO_TTAG(rename), + SYSIO_TTAG(rmdir), + SYSIO_TTAG(xstatnd), + SYSIO_TTAG(fxstat), + SYSIO_TTAG(statvfs), + SYSIO_TTAG(fstatvfs), +#ifdef _LARGEFILE64_SOURCE + SYSIO_TTAG(statvfs64), + SYSIO_TTAG(fstatvfs64), +#endif + SYSIO_TTAG(opendir), + SYSIO_TTAG(closedir), + SYSIO_TTAG(symlink), + SYSIO_TTAG(readlink), + SYSIO_TTAG(truncate), + SYSIO_TTAG(ftruncate), + SYSIO_TTAG(unlink), + SYSIO_TTAG(utime), } tracing_tag; extern void *_sysio_entry_trace_q; @@ -216,6 +219,7 @@ extern void *_sysio_register_trace(void int line, void *data, tracing_tag tag, + const char *fmt, va_list ap), void *data, void (*destructor)(void *data)); @@ -225,30 +229,36 @@ extern void _sysio_run_trace_q(void *q, const char *func, int line, tracing_tag tag, + const char *fmt, ...); -#define SYSIO_ENTER(tag, ...) \ +/* Interface enter/leave hook functions */ +#define SYSIO_ENTER(tag, fmt, ...) \ do { \ _sysio_run_trace_q(_sysio_entry_trace_q, \ __FILE__, __func__, __LINE__, \ - _SYSIO_TTAG(tag), \ + SYSIO_TTAG(tag), \ + (fmt), \ __VA_ARGS__); \ } while (0) - -#define SYSIO_LEAVE(tag, ...) \ +#define SYSIO_LEAVE(tag, fmt, ...) \ do { \ _sysio_run_trace_q(_sysio_exit_trace_q, \ __FILE__, __func__, __LINE__, \ - _SYSIO_TTAG(tag), \ + SYSIO_TTAG(tag), \ + (fmt), \ __VA_ARGS__); \ } while (0) -#else -#define SYSIO_ENTER(tag, ...) \ + +extern int _sysio_trace_dump_start(const char *dirpath); +extern void _sysio_trace_dump_stop(void); +#else /* !defined(SYSIO_TRACING) */ +#define SYSIO_ENTER(tag, fmt, ...) \ do { } while (0) -#define SYSIO_LEAVE(tag, ...) \ +#define SYSIO_LEAVE(tag, fmt, ...) \ do { } while (0) -#endif +#endif /* !defined(SYSIO_TRACING) */ /* Accounting for IO stats; Read and write character count. */ #if defined(REDSTORM) |