Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/ufs/ffs/ffs_subr.c,v rcsdiff: /ftp/cvs/cvsroot/src/sys/ufs/ffs/ffs_subr.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.15.6.7 retrieving revision 1.16 diff -u -p -r1.15.6.7 -r1.16 --- src/sys/ufs/ffs/ffs_subr.c 2002/12/11 06:51:42 1.15.6.7 +++ src/sys/ufs/ffs/ffs_subr.c 2001/08/09 08:15:26 1.16 @@ -1,4 +1,4 @@ -/* $NetBSD: ffs_subr.c,v 1.15.6.7 2002/12/11 06:51:42 thorpej Exp $ */ +/* $NetBSD: ffs_subr.c,v 1.16 2001/08/09 08:15:26 lukem Exp $ */ /* * Copyright (c) 1982, 1986, 1989, 1993 @@ -35,36 +35,26 @@ * @(#)ffs_subr.c 8.5 (Berkeley) 3/21/95 */ -#include -#if defined(__KERNEL_RCSID) -__KERNEL_RCSID(0, "$NetBSD: ffs_subr.c,v 1.15.6.7 2002/12/11 06:51:42 thorpej Exp $"); -#endif - -#if HAVE_CONFIG_H -#include "config.h" -#endif - #include - -/* in ffs_tables.c */ -extern const int inside[], around[]; -extern const u_char * const fragtbl[]; - +#include #ifndef _KERNEL #include #include #include #include -void panic __P((const char *, ...)) - __attribute__((__noreturn__,__format__(__printf__,1,2))); +#endif -#else /* _KERNEL */ -#include +/* in ffs_tables.c */ +extern int inside[], around[]; +extern u_char *fragtbl[]; + +#ifdef _KERNEL #include #include #include -#include +#include #include +#include #include #include #include @@ -106,7 +96,7 @@ ffs_blkatoff(v) *ap->a_bpp = bp; return (0); } -#endif /* _KERNEL */ +#endif /* * Update the frsum fields to reflect addition or deletion @@ -127,7 +117,7 @@ ffs_fragacct(fs, fragmap, fraglist, cnt, inblk = (int)(fragtbl[fs->fs_frag][fragmap]) << 1; fragmap <<= 1; for (siz = 1; siz < fs->fs_frag; siz++) { - if ((inblk & (1 << (siz + (fs->fs_frag & (NBBY - 1))))) == 0) + if ((inblk & (1 << (siz + (fs->fs_frag % NBBY)))) == 0) continue; field = around[siz]; subfield = inside[siz]; @@ -174,11 +164,11 @@ ffs_checkoverlap(bp, ip) vprint("Disk overlap", vp); printf("\tstart %d, end %d overlap start %d, end %ld\n", start, last, ep->b_blkno, - (long) ep->b_blkno + btodb(ep->b_bcount) - 1); + ep->b_blkno + btodb(ep->b_bcount) - 1); panic("Disk buffer overlap"); } } -#endif /* _KERNEL && DIAGNOSTIC */ +#endif /* DIAGNOSTIC */ /* * block operations @@ -193,21 +183,20 @@ ffs_isblock(fs, cp, h) { u_char mask; - switch ((int)fs->fs_fragshift) { - case 3: + switch ((int)fs->fs_frag) { + case 8: return (cp[h] == 0xff); - case 2: + case 4: mask = 0x0f << ((h & 0x1) << 2); return ((cp[h >> 1] & mask) == mask); - case 1: + case 2: mask = 0x03 << ((h & 0x3) << 1); return ((cp[h >> 2] & mask) == mask); - case 0: + case 1: mask = 0x01 << (h & 0x7); return ((cp[h >> 3] & mask) == mask); default: - panic("ffs_isblock: unknown fs_fragshift %d", - (int)fs->fs_fragshift); + panic("ffs_isblock"); } } @@ -221,18 +210,17 @@ ffs_isfreeblock(fs, cp, h) ufs_daddr_t h; { - switch ((int)fs->fs_fragshift) { - case 3: + switch ((int)fs->fs_frag) { + case 8: return (cp[h] == 0); - case 2: + case 4: return ((cp[h >> 1] & (0x0f << ((h & 0x1) << 2))) == 0); - case 1: + case 2: return ((cp[h >> 2] & (0x03 << ((h & 0x3) << 1))) == 0); - case 0: + case 1: return ((cp[h >> 3] & (0x01 << (h & 0x7))) == 0); default: - panic("ffs_isfreeblock: unknown fs_fragshift %d", - (int)fs->fs_fragshift); + panic("ffs_isfreeblock"); } } @@ -246,22 +234,21 @@ ffs_clrblock(fs, cp, h) ufs_daddr_t h; { - switch ((int)fs->fs_fragshift) { - case 3: + switch ((int)fs->fs_frag) { + case 8: cp[h] = 0; return; - case 2: + case 4: cp[h >> 1] &= ~(0x0f << ((h & 0x1) << 2)); return; - case 1: + case 2: cp[h >> 2] &= ~(0x03 << ((h & 0x3) << 1)); return; - case 0: + case 1: cp[h >> 3] &= ~(0x01 << (h & 0x7)); return; default: - panic("ffs_clrblock: unknown fs_fragshift %d", - (int)fs->fs_fragshift); + panic("ffs_clrblock"); } } @@ -275,21 +262,21 @@ ffs_setblock(fs, cp, h) ufs_daddr_t h; { - switch ((int)fs->fs_fragshift) { - case 3: + switch ((int)fs->fs_frag) { + + case 8: cp[h] = 0xff; return; - case 2: + case 4: cp[h >> 1] |= (0x0f << ((h & 0x1) << 2)); return; - case 1: + case 2: cp[h >> 2] |= (0x03 << ((h & 0x3) << 1)); return; - case 0: + case 1: cp[h >> 3] |= (0x01 << (h & 0x7)); return; default: - panic("ffs_setblock: unknown fs_fragshift %d", - (int)fs->fs_fragshift); + panic("ffs_setblock"); } }