aboutsummaryrefslogtreecommitdiff
path: root/libexec/lfs_cleanerd/clean.h
diff options
context:
space:
mode:
Diffstat (limited to 'libexec/lfs_cleanerd/clean.h')
-rw-r--r--libexec/lfs_cleanerd/clean.h169
1 files changed, 0 insertions, 169 deletions
diff --git a/libexec/lfs_cleanerd/clean.h b/libexec/lfs_cleanerd/clean.h
deleted file mode 100644
index 22bf50354b186..0000000000000
--- a/libexec/lfs_cleanerd/clean.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/*-
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)clean.h 8.2 (Berkeley) 5/4/95
- * $Id: clean.h,v 1.6 1997/02/22 14:21:44 peter Exp $
- */
-
-/*
- * The LFS user-level library will be used when writing cleaners and
- * checkers for LFS file systems. It will have facilities for finding
- * and parsing LFS segments.
- */
-
-#define DUMP_SUM_HEADER 0x0001
-#define DUMP_INODE_ADDRS 0x0002
-#define DUMP_FINFOS 0x0004
-#define DUMP_ALL 0xFFFF
-
-#define IFILE_NAME "ifile"
-
-/*
- * Cleaner parameters
- * BUSY_LIM: lower bound of the number of segments currently available
- * as a percentage of the total number of free segments possibly
- * available.
- * IDLE_LIM: Same as BUSY_LIM but used when the system is idle.
- * MIN_SEGS: Minimum number of segments you should always have.
- * I have no idea what this should be, but it should probably
- * be a function of lfsp.
- * NUM_TO_CLEAN: Number of segments to clean at once. Again, this
- * should probably be based on the file system size and how
- * full or empty the segments being cleaned are.
- */
-
-#define BUSY_LIM 0.50
-#define IDLE_LIM 0.90
-
-#define MIN_SEGS(lfsp) (5)
-#define NUM_TO_CLEAN(fsp) (1)
-
-#define MAXLOADS 3
-#define ONE_MIN 0
-#define FIVE_MIN 1
-#define FIFTEEN_MIN 2
-
-typedef struct fs_info {
- struct statfs *fi_statfsp; /* fsstat info from getfsstat */
- struct lfs fi_lfs; /* superblock */
- CLEANERINFO *fi_cip; /* Cleaner info from ifile */
- SEGUSE *fi_segusep; /* segment usage table (from ifile) */
- IFILE *fi_ifilep; /* ifile table (from ifile) */
- u_long fi_daddr_shift; /* shift to get byte offset of daddr */
- u_long fi_ifile_count; /* # entries in the ifile table */
- off_t fi_ifile_length; /* length of the ifile */
-} FS_INFO;
-
-/*
- * XXX: size (in bytes) of a segment
- * should lfs_bsize be fsbtodb(fs,1), blksize(fs), or lfs_dsize?
- */
-#define seg_size(fs) ((fs)->lfs_ssize << (fs)->lfs_bshift)
-
-/* daddr -> byte offset */
-#define datobyte(fs, da) ((da) << (fs)->fi_daddr_shift)
-#define bytetoda(fs, byte) ((byte) >> (fs)->fi_daddr_shift)
-
-#define CLEANSIZE(fsp) (fsp->fi_lfs.lfs_cleansz << fsp->fi_lfs.lfs_bshift)
-#define SEGTABSIZE(fsp) (fsp->fi_lfs.lfs_segtabsz << fsp->fi_lfs.lfs_bshift)
-
-#define IFILE_ENTRY(fs, if, i) \
- ((IFILE *)((caddr_t)(if) + ((i) / (fs)->lfs_ifpb << (fs)->lfs_bshift)) \
- + (i) % (fs)->lfs_ifpb)
-
-#define SEGUSE_ENTRY(fs, su, i) \
- ((SEGUSE *)((caddr_t)(su) + (fs)->lfs_bsize * ((i) / (fs)->lfs_sepb)) +\
- (i) % (fs)->lfs_sepb)
-
-__BEGIN_DECLS
-int dump_summary __P((struct lfs *, SEGSUM *, u_long, daddr_t **));
-void err __P((const int, const char *, ...));
-int fs_getmntinfo __P((struct statfs **, char *, char *));
-int get __P((int, off_t, void *, size_t));
-FS_INFO *get_fs_info __P((struct statfs *, int));
-int lfs_segmapv __P((FS_INFO *, int, caddr_t, BLOCK_INFO **, int *));
-int mmap_segment __P((FS_INFO *, int, caddr_t *, int));
-void munmap_segment __P((FS_INFO *, caddr_t, int));
-void reread_fs_info __P((FS_INFO *, int));
-void toss __P((void *, int *, size_t,
- int (*)(const void *, const void *, const void *), void *));
-
-/*
- * USEFUL DEBUGGING FUNCTIONS:
- */
-#ifdef VERBOSE
-#define PRINT_FINFO(fp, ip) { \
- (void)printf(" %s %s%d version %d nblocks %d\n", \
- (ip)->if_version > (fp)->fi_version ? "TOSSING" : "KEEPING", \
- "FINFO for inode: ", (fp)->fi_ino, \
- (fp)->fi_version, (fp)->fi_nblocks); \
- fflush(stdout); \
-}
-
-#define PRINT_INODE(b, bip) { \
- (void) printf("\t%s inode: %d daddr: 0x%lx create: %s\n", \
- b ? "KEEPING" : "TOSSING", (bip)->bi_inode, (bip)->bi_daddr, \
- ctime((time_t *)&(bip)->bi_segcreate)); \
- fflush(stdout); \
-}
-
-#define PRINT_BINFO(bip) { \
- (void)printf("\tinode: %d lbn: %d daddr: 0x%lx create: %s\n", \
- (bip)->bi_inode, (bip)->bi_lbn, (bip)->bi_daddr, \
- ctime((time_t *)&(bip)->bi_segcreate)); \
- fflush(stdout); \
-}
-
-#define PRINT_SEGUSE(sup, n) { \
- (void)printf("Segment %d nbytes=%lu\tflags=%c%c%c ninos=%d nsums=%d lastmod: %s\n", \
- n, (sup)->su_nbytes, \
- (sup)->su_flags & SEGUSE_DIRTY ? 'D' : 'C', \
- (sup)->su_flags & SEGUSE_ACTIVE ? 'A' : ' ', \
- (sup)->su_flags & SEGUSE_SUPERBLOCK ? 'S' : ' ', \
- (sup)->su_ninos, (sup)->su_nsums, \
- ctime((time_t *)&(sup)->su_lastmod)); \
- fflush(stdout); \
-}
-
-void dump_super __P((struct lfs *));
-void dump_cleaner_info __P((void *));
-void print_SEGSUM __P(( struct lfs *, SEGSUM *));
-void print_CLEANERINFO __P((CLEANERINFO *));
-#else
-#define PRINT_FINFO(fp, ip)
-#define PRINT_INODE(b, bip)
-#define PRINT_BINFO(bip)
-#define PRINT_SEGUSE(sup, n)
-#define dump_cleaner_info(cip)
-#define dump_super(lfsp)
-#endif
-__END_DECLS