diff options
Diffstat (limited to 'winsup/testsuite/libltp/include/write_log.h')
-rw-r--r-- | winsup/testsuite/libltp/include/write_log.h | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/winsup/testsuite/libltp/include/write_log.h b/winsup/testsuite/libltp/include/write_log.h deleted file mode 100644 index 784d5b3eb..000000000 --- a/winsup/testsuite/libltp/include/write_log.h +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -#ifndef _WRITE_LOG_H_ -#define _WRITE_LOG_H_ - -/* - * Constants defining the max size of various wlog_rec fields. ANY SIZE - * CHANGES HERE MUST BE REFLECTED IN THE WLOG_REC_DISK STRUCTURE DEFINED - * BELOW. - */ - -#define WLOG_MAX_PATH 128 -#define WLOG_MAX_PATTERN 64 -#define WLOG_MAX_HOST 8 -#define WLOG_REC_MAX_SIZE (sizeof(struct wlog_rec)+WLOG_MAX_PATH+WLOG_MAX_PATTERN+WLOG_MAX_HOST+2) - -/* - * User view of a write log record. Note that this is not necessiliary - * how the data is formatted on disk (signifigant compression occurrs), so - * don't expect to od the write log file and see things formatted this way. - */ - -struct wlog_rec { - int w_pid; /* pid doing the write */ - int w_offset; /* file offset */ - int w_nbytes; /* # bytes written */ - int w_oflags; /* low-order open() flags */ - int w_done; /* 1 if io confirmed done */ - int w_async; /* 1 if async write (writea) */ - - char w_host[WLOG_MAX_HOST+1]; /* host doing write - */ - /* null terminated */ - int w_hostlen; /* host name length */ - char w_path[WLOG_MAX_PATH+1]; /* file written to - */ - /* null terminated */ - int w_pathlen; /* file name length */ - char w_pattern[WLOG_MAX_PATTERN+1]; /* pattern written - */ - /* null terminated */ - int w_patternlen; /* pattern length */ -}; - -#ifndef uint -#define uint unsigned int -#endif - -/* - * On-disk structure of a wlog_rec. Actually, the record consists of - * 3 parts: [wlog_rec_disk structure][variable length data][length] - * where length is a 2 byte field containing the total record length - * (including the 2 bytes). It is used for scanning the logfile in reverse - * order. - * - * The variable length data includes the path, host, and pattern (in that - * order). The lengths of these pieces of data are held in the - * wlog_rec_disk structure. Thus, the actual on-disk record looks like - * this (top is lower byte offset): - * - * struct wlog_rec_disk - * path (w_pathlen bytes - not null terminated) - * host (w_hostlen bytes - not null terminated) - * pattern (w_patternlen bytes - not null terminated) - * 2-byte record length - * - * Another way of looking at it is: - * - * <struct wlog_rec_disk><path (wpathlen bytes)>--> - * --><host (w_hostlen bytes)><pattern (w_patternlen bytes)><length (2 bytes)> - * - * The maximum length of this record is defined by the WLOG_REC_MAX_SIZE - * record. Note that the 2-byte record length forces this to be - * <= 64k bytes. - * - * Note that there is lots of bit-masking done here. The w_pathlen, - * w_hostlen, and w_patternlen fields MUST have enough bits to hold - * WLOG_MAX_PATH, WLOG_MAX_HOST, and WLOG_MAX_PATTERN bytes respectivly. - */ - -struct wlog_rec_disk { -#ifdef CRAY - uint w_offset : 44; /* file offset */ - uint w_extra0 : 20; /* EXTRA BITS IN WORD 0 */ -#else - uint w_offset : 32; /* file offset */ - uint w_extra0 : 32; /* EXTRA BITS IN WORD 0 */ -#endif - - uint w_nbytes : 32; /* # bytes written */ - uint w_oflags : 32; /* low-order open() flags */ - - uint w_pid : 17; /* pid doing the write */ - uint w_pathlen : 7; /* length of file path */ - uint w_patternlen: 6; /* length of pattern */ - uint w_hostlen : 4; /* length of host */ - uint w_done : 1; /* 1 if io confirmed done */ - uint w_async : 1; /* 1 if async write (writea) */ - uint w_extra2 : 28; /* EXTRA BITS IN WORD 2 */ -}; - -/* - * write log file datatype. wlog_open() initializes this structure - * which is then passed around to the various wlog_xxx routines. - */ - -struct wlog_file { - int w_afd; /* append fd */ - int w_rfd; /* random-access fd */ - char w_file[1024]; /* name of the write_log */ -}; - -/* - * return value defines for the user-supplied function to - * wlog_scan_backward(). - */ - -#define WLOG_STOP_SCAN 0 -#define WLOG_CONTINUE_SCAN 1 - -/* - * wlog prototypes - */ - -#if __STDC__ -extern int wlog_open(struct wlog_file *wfile, int trunc, int mode); -extern int wlog_close(struct wlog_file *wfile); -extern int wlog_record_write(struct wlog_file *wfile, - struct wlog_rec *wrec, long offset); -extern int wlog_scan_backward(struct wlog_file *wfile, int nrecs, - int (*func)(struct wlog_rec *rec), - long data); -#else -int wlog_open(); -int wlog_close(); -int wlog_record_write(); -int wlog_scan_backward(); -#endif - -extern char Wlog_Error_String[]; - -#endif /* _WRITE_LOG_H_ */ - |