svn commit: r186261 - in projects/makefs: . compat compat/machine
ffs sys
Sam Leffler
sam at FreeBSD.org
Wed Dec 17 16:54:16 PST 2008
Author: sam
Date: Thu Dec 18 00:54:15 2008
New Revision: 186261
URL: http://svn.freebsd.org/changeset/base/186261
Log:
Apply the big hammer:
o remove all of compat except for pwcache and strstuftoll; these might
end up in libutil or similar so keep them in the subdir
o mv getid.c up to the top level; this looks like something that'll be
makefs-specific
o eliminate private versions of .h files in sys; use system files instead
o eliminate private ffs_tables.c; use the system version directly (might
want to adopt const'ification at some point but that's the only diff I
can see)
o mv remaining code from sys to ffs and strip out unused bits; this now
becomes part of makefs
o add compat defs and shims to makefs.h
o strip all vestiges of nbtool_config.h, compat_defs.h, etc.
o fixup includes after file shuffling
o rename system #defines that do implicit byte swapping to have an _swap
suffix; e.g. DIRSIZ -> DIRSIZ_SWAP, cg_inosused -> cg_inosused_swap; if
we ever add endian-agnostic support to the kernel these can go back to
their original names
o strip some netbsd'isms that aren't worth shim'ing (e.g. _DIAGASSERT)
Code compiles w/o complaints but is untested.
Added:
projects/makefs/ffs/ffs_bswap.c (contents, props changed)
- copied, changed from r186109, projects/makefs/sys/ufs/ffs/ffs_bswap.c
projects/makefs/ffs/ffs_subr.c (contents, props changed)
- copied, changed from r186109, projects/makefs/sys/ufs/ffs/ffs_subr.c
projects/makefs/ffs/ufs_bswap.h (contents, props changed)
- copied, changed from r186109, projects/makefs/sys/ufs/ufs/ufs_bswap.h
projects/makefs/getid.c
- copied, changed from r186256, projects/makefs/compat/getid.c
Deleted:
projects/makefs/compat/compat_defs.h
projects/makefs/compat/getid.c
projects/makefs/compat/machine/
projects/makefs/compat/namespace.h
projects/makefs/compat/nbtool_config.h
projects/makefs/compat/util.h
projects/makefs/sys/
Modified:
projects/makefs/Makefile
projects/makefs/compat/pwcache.c
projects/makefs/compat/strsuftoll.c
projects/makefs/ffs.c
projects/makefs/ffs/buf.c
projects/makefs/ffs/ffs_alloc.c
projects/makefs/ffs/ffs_balloc.c
projects/makefs/ffs/mkfs.c
projects/makefs/ffs/ufs_bmap.c
projects/makefs/makefs.c
projects/makefs/makefs.h
projects/makefs/walk.c
Modified: projects/makefs/Makefile
==============================================================================
--- projects/makefs/Makefile Wed Dec 17 22:59:29 2008 (r186260)
+++ projects/makefs/Makefile Thu Dec 18 00:54:15 2008 (r186261)
@@ -5,25 +5,22 @@ MAN= makefs.8
WARNS?= 2
-CFLAGS+=-DHAVE_NBTOOL_CONFIG_H=1 -D_FILE_OFFSET_BITS=64
-
CFLAGS+=-I.
-SRCS= ffs.c makefs.c walk.c
+SRCS= ffs.c getid.c makefs.c walk.c
.PATH: ${.CURDIR}/ffs
CFLAGS+=-Iffs
-SRCS+= buf.c ffs_alloc.c ffs_balloc.c mkfs.c ufs_bmap.c
+SRCS+= buf.c ffs_alloc.c ffs_balloc.c ffs_bswap.c ffs_subr.c mkfs.c ufs_bmap.c
-.PATH: ${.CURDIR}/sys/ufs/ffs
-CFLAGS+=-Isys -Isys/ufs
-SRCS+= ffs_bswap.c ffs_subr.c ffs_tables.c
+.PATH: ${.CURDIR}/compat
+CFLAGS+=-Icompat
+SRCS+= pwcache.c strsuftoll.c
.PATH: ${.CURDIR}/../mtree
CFLAGS+=-I../mtree
SRCS+= misc.c spec.c
-.PATH: ${.CURDIR}/compat
-CFLAGS+=-Icompat
-SRCS+= fparseln.c getid.c getmode.c pwcache.c strsuftoll.c
+.PATH: ${.CURDIR}/../../sys/ufs/ffs
+SRCS+= ffs_tables.c
.include <bsd.prog.mk>
Modified: projects/makefs/compat/pwcache.c
==============================================================================
--- projects/makefs/compat/pwcache.c Wed Dec 17 22:59:29 2008 (r186260)
+++ projects/makefs/compat/pwcache.c Thu Dec 18 00:54:15 2008 (r186261)
@@ -66,16 +66,6 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#if HAVE_NBTOOL_CONFIG_H
-#include "nbtool_config.h"
-/*
- * XXX Undefine the renames of these functions so that we don't
- * XXX rename the versions found in the host's <pwd.h> by mistake!
- */
-#undef group_from_gid
-#undef user_from_uid
-#endif
-
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
#if 0
@@ -85,8 +75,6 @@ __RCSID("$NetBSD: pwcache.c,v 1.29 2004/
#endif
#endif /* LIBC_SCCS and not lint */
-#include "namespace.h"
-
#include <sys/types.h>
#include <sys/param.h>
@@ -98,12 +86,6 @@ __RCSID("$NetBSD: pwcache.c,v 1.29 2004/
#include <string.h>
#include <unistd.h>
-#if HAVE_NBTOOL_CONFIG_H
-/* XXX Now, re-apply the renaming that we undid above. */
-#define group_from_gid __nbcompat_group_from_gid
-#define user_from_uid __nbcompat_user_from_uid
-#endif
-
#ifdef __weak_alias
__weak_alias(user_from_uid,_user_from_uid)
__weak_alias(group_from_gid,_group_from_gid)
@@ -111,7 +93,6 @@ __weak_alias(pwcache_userdb,_pwcache_use
__weak_alias(pwcache_groupdb,_pwcache_groupdb)
#endif
-#if !HAVE_PWCACHE_USERDB || HAVE_NBTOOL_CONFIG_H
#include "pwcache.h"
/*
@@ -162,8 +143,6 @@ st_hash(const char *name, size_t len, in
{
u_int key = 0;
- _DIAGASSERT(name != NULL);
-
while (len--) {
key += *name++;
key = (key << 8) | (key >> 24);
@@ -648,4 +627,3 @@ main(int argc, char *argv[])
return (0);
}
#endif /* TEST_PWCACHE */
-#endif /* !HAVE_PWCACHE_USERDB */
Modified: projects/makefs/compat/strsuftoll.c
==============================================================================
--- projects/makefs/compat/strsuftoll.c Wed Dec 17 22:59:29 2008 (r186260)
+++ projects/makefs/compat/strsuftoll.c Thu Dec 18 00:54:15 2008 (r186261)
@@ -67,22 +67,12 @@
* SUCH DAMAGE.
*/
-#if HAVE_NBTOOL_CONFIG_H
-#include "nbtool_config.h"
-#endif
-
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
__RCSID("$NetBSD: strsuftoll.c,v 1.6 2004/03/05 05:58:29 lukem Exp $");
#endif /* LIBC_SCCS and not lint */
-#ifdef _LIBC
-#include "namespace.h"
-#endif
-
-#if !HAVE_STRSUFTOLL
-
#include <sys/types.h>
#include <sys/time.h>
@@ -118,19 +108,6 @@ __weak_alias(strsuftollx, _strsuftollx)
* appropriate error.
*
*/
-/* LONGLONG */
-long long
-strsuftoll(const char *desc, const char *val,
- long long min, long long max)
-{
- long long result;
- char errbuf[100];
-
- result = strsuftollx(desc, val, min, max, errbuf, sizeof(errbuf));
- if (*errbuf != '\0')
- errx(1, "%s", errbuf);
- return (result);
-}
/*
* As strsuftoll(), but returns the error message into the provided buffer
@@ -144,10 +121,6 @@ strsuftollx(const char *desc, const char
long long num, t;
char *expr;
- _DIAGASSERT(desc != NULL);
- _DIAGASSERT(val != NULL);
- _DIAGASSERT(ebuf != NULL);
-
errno = 0;
ebuf[0] = '\0';
@@ -244,4 +217,16 @@ strsuftollx(const char *desc, const char
return (num);
}
-#endif /* !HAVE_STRSUFTOLL */
+/* LONGLONG */
+long long
+strsuftoll(const char *desc, const char *val,
+ long long min, long long max)
+{
+ long long result;
+ char errbuf[100];
+
+ result = strsuftollx(desc, val, min, max, errbuf, sizeof(errbuf));
+ if (*errbuf != '\0')
+ errx(1, "%s", errbuf);
+ return (result);
+}
Modified: projects/makefs/ffs.c
==============================================================================
--- projects/makefs/ffs.c Wed Dec 17 22:59:29 2008 (r186260)
+++ projects/makefs/ffs.c Thu Dec 18 00:54:15 2008 (r186261)
@@ -65,10 +65,6 @@
* @(#)ffs_alloc.c 8.19 (Berkeley) 7/13/95
*/
-#if HAVE_NBTOOL_CONFIG_H
-#include "nbtool_config.h"
-#endif
-
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(__lint)
__RCSID("$NetBSD: ffs.c,v 1.30 2004/06/24 22:30:13 lukem Exp $");
@@ -94,8 +90,8 @@ __RCSID("$NetBSD: ffs.c,v 1.30 2004/06/2
#include <ufs/ufs/dinode.h>
#include <ufs/ufs/dir.h>
#include <ufs/ffs/fs.h>
-#include <ufs/ufs/ufs_bswap.h>
+#include "ffs/ufs_bswap.h"
#include "ffs/ufs_inode.h"
#include "ffs/newfs_extern.h"
#include "ffs/ffs_extern.h"
@@ -516,7 +512,7 @@ ffs_size_dir(fsnode *root, fsinfo_t *fso
#define ADDDIRENT(e) do { \
tmpdir.d_namlen = strlen((e)); \
- this = DIRSIZ(0, &tmpdir, 0); \
+ this = DIRSIZ_SWAP(0, &tmpdir, 0); \
if (debug & DEBUG_FS_SIZE_DIR_ADD_DIRENT) \
printf("ADDDIRENT: was: %s (%d) this %d cur %d\n", \
e, tmpdir.d_namlen, this, curdirsize); \
@@ -943,13 +939,13 @@ ffs_make_dirbuf(dirbuf_t *dbuf, const ch
de.d_type = IFTODT(node->type);
de.d_namlen = (uint8_t)strlen(name);
strcpy(de.d_name, name);
- reclen = DIRSIZ(0, &de, needswap);
+ reclen = DIRSIZ_SWAP(0, &de, needswap);
de.d_reclen = ufs_rw16(reclen, needswap);
dp = (struct direct *)(dbuf->buf + dbuf->cur);
llen = 0;
if (dp != NULL)
- llen = DIRSIZ(0, dp, needswap);
+ llen = DIRSIZ_SWAP(0, dp, needswap);
if (debug & DEBUG_FS_MAKE_DIRBUF)
printf(
@@ -1008,10 +1004,10 @@ ffs_write_inode(union dinode *dp, uint32
ffs_rdfs(fsbtodb(fs, cgtod(fs, cg)), (int)fs->fs_cgsize, &sbbuf,
fsopts);
cgp = (struct cg *)sbbuf;
- if (!cg_chkmagic(cgp, fsopts->needswap))
+ if (!cg_chkmagic_swap(cgp, fsopts->needswap))
errx(1, "ffs_write_inode: cg %d: bad magic number", cg);
- assert (isclr(cg_inosused(cgp, fsopts->needswap), cgino));
+ assert (isclr(cg_inosused_swap(cgp, fsopts->needswap), cgino));
buf = malloc(fs->fs_bsize);
if (buf == NULL)
@@ -1027,7 +1023,7 @@ ffs_write_inode(union dinode *dp, uint32
errx(1,
"ffs_write_inode: cg %d out of inodes for ino %u",
cg, ino);
- setbit(cg_inosused(cgp, fsopts->needswap), cgino);
+ setbit(cg_inosused_swap(cgp, fsopts->needswap), cgino);
ufs_add32(cgp->cg_cs.cs_nifree, -1, fsopts->needswap);
fs->fs_cstotal.cs_nifree--;
fs->fs_cs(fs, cg).cs_nifree--;
Modified: projects/makefs/ffs/buf.c
==============================================================================
--- projects/makefs/ffs/buf.c Wed Dec 17 22:59:29 2008 (r186260)
+++ projects/makefs/ffs/buf.c Thu Dec 18 00:54:15 2008 (r186261)
@@ -35,10 +35,6 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#if HAVE_NBTOOL_CONFIG_H
-#include "nbtool_config.h"
-#endif
-
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(__lint)
__RCSID("$NetBSD: buf.c,v 1.12 2004/06/20 22:20:18 jmc Exp $");
Modified: projects/makefs/ffs/ffs_alloc.c
==============================================================================
--- projects/makefs/ffs/ffs_alloc.c Wed Dec 17 22:59:29 2008 (r186260)
+++ projects/makefs/ffs/ffs_alloc.c Thu Dec 18 00:54:15 2008 (r186261)
@@ -41,10 +41,6 @@
* @(#)ffs_alloc.c 8.19 (Berkeley) 7/13/95
*/
-#if HAVE_NBTOOL_CONFIG_H
-#include "nbtool_config.h"
-#endif
-
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(__lint)
__RCSID("$NetBSD: ffs_alloc.c,v 1.14 2004/06/20 22:20:18 jmc Exp $");
@@ -58,14 +54,13 @@ __RCSID("$NetBSD: ffs_alloc.c,v 1.14 200
#include "makefs.h"
#include <ufs/ufs/dinode.h>
-#include <ufs/ufs/ufs_bswap.h>
#include <ufs/ffs/fs.h>
+#include "ffs/ufs_bswap.h"
#include "ffs/buf.h"
#include "ffs/ufs_inode.h"
#include "ffs/ffs_extern.h"
-
static int scanc(u_int, const u_char *, const u_char *, int);
static daddr_t ffs_alloccg(struct inode *, int, daddr_t, int);
@@ -74,10 +69,6 @@ static daddr_t ffs_hashalloc(struct inod
daddr_t (*)(struct inode *, int, daddr_t, int));
static int32_t ffs_mapsearch(struct fs *, struct cg *, daddr_t, int);
-/* in ffs_tables.c */
-extern const int inside[], around[];
-extern const u_char * const fragtbl[];
-
/*
* Allocate a block in the file system.
*
@@ -321,7 +312,7 @@ ffs_alloccg(struct inode *ip, int cg, da
return (0);
}
cgp = (struct cg *)bp->b_data;
- if (!cg_chkmagic(cgp, needswap) ||
+ if (!cg_chkmagic_swap(cgp, needswap) ||
(cgp->cg_cs.cs_nbfree == 0 && size == fs->fs_bsize)) {
brelse(bp);
return (0);
@@ -352,7 +343,7 @@ ffs_alloccg(struct inode *ip, int cg, da
bno = ffs_alloccgblk(ip, bp, bpref);
bpref = dtogd(fs, bno);
for (i = frags; i < fs->fs_frag; i++)
- setbit(cg_blksfree(cgp, needswap), bpref + i);
+ setbit(cg_blksfree_swap(cgp, needswap), bpref + i);
i = fs->fs_frag - frags;
ufs_add32(cgp->cg_cs.cs_nffree, i, needswap);
fs->fs_cstotal.cs_nffree += i;
@@ -364,7 +355,7 @@ ffs_alloccg(struct inode *ip, int cg, da
}
bno = ffs_mapsearch(fs, cgp, bpref, allocsiz);
for (i = 0; i < frags; i++)
- clrbit(cg_blksfree(cgp, needswap), bno + i);
+ clrbit(cg_blksfree_swap(cgp, needswap), bno + i);
ufs_add32(cgp->cg_cs.cs_nffree, -frags, needswap);
fs->fs_cstotal.cs_nffree -= frags;
fs->fs_cs(fs, cg).cs_nffree -= frags;
@@ -399,7 +390,7 @@ ffs_alloccgblk(struct inode *ip, struct
u_int8_t *blksfree;
cgp = (struct cg *)bp->b_data;
- blksfree = cg_blksfree(cgp, needswap);
+ blksfree = cg_blksfree_swap(cgp, needswap);
if (bpref == 0 || dtog(fs, bpref) != ufs_rw32(cgp->cg_cgx, needswap)) {
bpref = ufs_rw32(cgp->cg_rotor, needswap);
} else {
@@ -464,18 +455,18 @@ ffs_blkfree(struct inode *ip, daddr_t bn
return;
}
cgp = (struct cg *)bp->b_data;
- if (!cg_chkmagic(cgp, needswap)) {
+ if (!cg_chkmagic_swap(cgp, needswap)) {
brelse(bp);
return;
}
cgbno = dtogd(fs, bno);
if (size == fs->fs_bsize) {
fragno = fragstoblks(fs, cgbno);
- if (!ffs_isfreeblock(fs, cg_blksfree(cgp, needswap), fragno)) {
+ if (!ffs_isfreeblock(fs, cg_blksfree_swap(cgp, needswap), fragno)) {
errx(1, "blkfree: freeing free block %lld",
(long long)bno);
}
- ffs_setblock(fs, cg_blksfree(cgp, needswap), fragno);
+ ffs_setblock(fs, cg_blksfree_swap(cgp, needswap), fragno);
ffs_clusteracct(fs, cgp, fragno, 1);
ufs_add32(cgp->cg_cs.cs_nbfree, 1, needswap);
fs->fs_cstotal.cs_nbfree++;
@@ -485,18 +476,18 @@ ffs_blkfree(struct inode *ip, daddr_t bn
/*
* decrement the counts associated with the old frags
*/
- blk = blkmap(fs, cg_blksfree(cgp, needswap), bbase);
- ffs_fragacct(fs, blk, cgp->cg_frsum, -1, needswap);
+ blk = blkmap(fs, cg_blksfree_swap(cgp, needswap), bbase);
+ ffs_fragacct_swap(fs, blk, cgp->cg_frsum, -1, needswap);
/*
* deallocate the fragment
*/
frags = numfrags(fs, size);
for (i = 0; i < frags; i++) {
- if (isset(cg_blksfree(cgp, needswap), cgbno + i)) {
+ if (isset(cg_blksfree_swap(cgp, needswap), cgbno + i)) {
errx(1, "blkfree: freeing free frag: block %lld",
(long long)(cgbno + i));
}
- setbit(cg_blksfree(cgp, needswap), cgbno + i);
+ setbit(cg_blksfree_swap(cgp, needswap), cgbno + i);
}
ufs_add32(cgp->cg_cs.cs_nffree, i, needswap);
fs->fs_cstotal.cs_nffree += i;
@@ -504,13 +495,13 @@ ffs_blkfree(struct inode *ip, daddr_t bn
/*
* add back in counts associated with the new frags
*/
- blk = blkmap(fs, cg_blksfree(cgp, needswap), bbase);
- ffs_fragacct(fs, blk, cgp->cg_frsum, 1, needswap);
+ blk = blkmap(fs, cg_blksfree_swap(cgp, needswap), bbase);
+ ffs_fragacct_swap(fs, blk, cgp->cg_frsum, 1, needswap);
/*
* if a complete block has been reassembled, account for it
*/
fragno = fragstoblks(fs, bbase);
- if (ffs_isblock(fs, cg_blksfree(cgp, needswap), fragno)) {
+ if (ffs_isblock(fs, cg_blksfree_swap(cgp, needswap), fragno)) {
ufs_add32(cgp->cg_cs.cs_nffree, -fs->fs_frag, needswap);
fs->fs_cstotal.cs_nffree -= fs->fs_frag;
fs->fs_cs(fs, cg).cs_nffree -= fs->fs_frag;
@@ -562,14 +553,14 @@ ffs_mapsearch(struct fs *fs, struct cg *
ostart = start;
olen = len;
loc = scanc((u_int)len,
- (const u_char *)&cg_blksfree(cgp, needswap)[start],
+ (const u_char *)&cg_blksfree_swap(cgp, needswap)[start],
(const u_char *)fragtbl[fs->fs_frag],
(1 << (allocsiz - 1 + (fs->fs_frag % NBBY))));
if (loc == 0) {
len = start + 1;
start = 0;
loc = scanc((u_int)len,
- (const u_char *)&cg_blksfree(cgp, needswap)[0],
+ (const u_char *)&cg_blksfree_swap(cgp, needswap)[0],
(const u_char *)fragtbl[fs->fs_frag],
(1 << (allocsiz - 1 + (fs->fs_frag % NBBY))));
if (loc == 0) {
@@ -577,7 +568,7 @@ ffs_mapsearch(struct fs *fs, struct cg *
"ffs_alloccg: map corrupted: start %d len %d offset %d %ld",
ostart, olen,
ufs_rw32(cgp->cg_freeoff, needswap),
- (long)cg_blksfree(cgp, needswap) - (long)cgp);
+ (long)cg_blksfree_swap(cgp, needswap) - (long)cgp);
/* NOTREACHED */
}
}
@@ -588,7 +579,7 @@ ffs_mapsearch(struct fs *fs, struct cg *
* sift through the bits to find the selected frag
*/
for (i = bno + NBBY; bno < i; bno += fs->fs_frag) {
- blk = blkmap(fs, cg_blksfree(cgp, needswap), bno);
+ blk = blkmap(fs, cg_blksfree_swap(cgp, needswap), bno);
blk <<= 1;
field = around[allocsiz];
subfield = inside[allocsiz];
@@ -619,8 +610,8 @@ ffs_clusteracct(struct fs *fs, struct cg
if (fs->fs_contigsumsize <= 0)
return;
- freemapp = cg_clustersfree(cgp, needswap);
- sump = cg_clustersum(cgp, needswap);
+ freemapp = cg_clustersfree_swap(cgp, needswap);
+ sump = cg_clustersum_swap(cgp, needswap);
/*
* Allocate or clear the actual block.
*/
Modified: projects/makefs/ffs/ffs_balloc.c
==============================================================================
--- projects/makefs/ffs/ffs_balloc.c Wed Dec 17 22:59:29 2008 (r186260)
+++ projects/makefs/ffs/ffs_balloc.c Thu Dec 18 00:54:15 2008 (r186261)
@@ -32,10 +32,6 @@
* @(#)ffs_balloc.c 8.8 (Berkeley) 6/16/95
*/
-#if HAVE_NBTOOL_CONFIG_H
-#include "nbtool_config.h"
-#endif
-
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(__lint)
__RCSID("$NetBSD: ffs_balloc.c,v 1.13 2004/06/20 22:20:18 jmc Exp $");
@@ -53,9 +49,9 @@ __RCSID("$NetBSD: ffs_balloc.c,v 1.13 20
#include "makefs.h"
#include <ufs/ufs/dinode.h>
-#include <ufs/ufs/ufs_bswap.h>
#include <ufs/ffs/fs.h>
+#include "ffs/ufs_bswap.h"
#include "ffs/buf.h"
#include "ffs/ufs_inode.h"
#include "ffs/ffs_extern.h"
Copied and modified: projects/makefs/ffs/ffs_bswap.c (from r186109, projects/makefs/sys/ufs/ffs/ffs_bswap.c)
==============================================================================
--- projects/makefs/sys/ufs/ffs/ffs_bswap.c Mon Dec 15 02:06:02 2008 (r186109, copy source)
+++ projects/makefs/ffs/ffs_bswap.c Thu Dec 18 00:54:15 2008 (r186261)
@@ -30,12 +30,11 @@
*
*/
-#if HAVE_NBTOOL_CONFIG_H
-#include "nbtool_config.h"
-#endif
-
#include <sys/cdefs.h>
+#if 0
__KERNEL_RCSID(0, "$NetBSD: ffs_bswap.c,v 1.28 2004/05/25 14:54:59 hannken Exp $");
+#endif
+__FBSDID("$FreeBSD$");
#include <sys/param.h>
#if defined(_KERNEL)
@@ -43,8 +42,15 @@ __KERNEL_RCSID(0, "$NetBSD: ffs_bswap.c,
#endif
#include <ufs/ufs/dinode.h>
-#include <ufs/ufs/ufs_bswap.h>
+#include "ffs/ufs_bswap.h"
#include <ufs/ffs/fs.h>
+/* XXX temporary */
+struct ufsmount;
+struct bufobj;
+struct mount;
+struct vnode;
+typedef int vfs_vget_t(struct mount *mp, ino_t ino, int flags,
+ struct vnode **vpp);
#include <ufs/ffs/ffs_extern.h>
#if !defined(_KERNEL)
@@ -55,6 +61,20 @@ __KERNEL_RCSID(0, "$NetBSD: ffs_bswap.c,
#define panic(x) printf("%s\n", (x)), abort()
#endif
+#define fs_old_postbloff fs_spare5[0]
+#define fs_old_rotbloff fs_spare5[1]
+#define fs_old_postbl_start fs_maxbsize
+#define fs_old_headswitch fs_id[0]
+#define fs_old_trkseek fs_id[1]
+#define fs_old_csmask fs_spare1[0]
+#define fs_old_csshift fs_spare1[1]
+
+#define FS_42POSTBLFMT -1 /* 4.2BSD rotational table format */
+#define FS_DYNAMICPOSTBLFMT 1 /* dynamic rotational table format */
+
+void ffs_csum_swap(struct csum *o, struct csum *n, int size);
+void ffs_csumtotal_swap(struct csum_total *o, struct csum_total *n);
+
void
ffs_sb_swap(struct fs *o, struct fs *n)
{
@@ -211,60 +231,43 @@ ffs_cg_swap(struct cg *o, struct cg *n,
for (i = 0; i < MAXFRAG; i++)
n->cg_frsum[i] = bswap32(o->cg_frsum[i]);
- if ((fs->fs_magic != FS_UFS2_MAGIC) &&
- (fs->fs_old_postblformat == FS_42POSTBLFMT)) { /* old format */
- struct ocg *on, *oo;
- int j;
- on = (struct ocg *)n;
- oo = (struct ocg *)o;
-
- for (i = 0; i < 32; i++) {
- on->cg_btot[i] = bswap32(oo->cg_btot[i]);
- for (j = 0; j < 8; j++)
- on->cg_b[i][j] = bswap16(oo->cg_b[i][j]);
- }
- memmove(on->cg_iused, oo->cg_iused, 256);
- on->cg_magic = bswap32(oo->cg_magic);
- } else { /* new format */
-
- n->cg_old_btotoff = bswap32(o->cg_old_btotoff);
- n->cg_old_boff = bswap32(o->cg_old_boff);
- n->cg_iusedoff = bswap32(o->cg_iusedoff);
- n->cg_freeoff = bswap32(o->cg_freeoff);
- n->cg_nextfreeoff = bswap32(o->cg_nextfreeoff);
- n->cg_clustersumoff = bswap32(o->cg_clustersumoff);
- n->cg_clusteroff = bswap32(o->cg_clusteroff);
- n->cg_nclusterblks = bswap32(o->cg_nclusterblks);
- n->cg_niblk = bswap32(o->cg_niblk);
- n->cg_initediblk = bswap32(o->cg_initediblk);
- n->cg_time = bswap64(o->cg_time);
-
- if (fs->fs_magic == FS_UFS2_MAGIC)
- return;
-
- if (n->cg_magic == CG_MAGIC) {
- btotoff = n->cg_old_btotoff;
- boff = n->cg_old_boff;
- clustersumoff = n->cg_clustersumoff;
- } else {
- btotoff = bswap32(n->cg_old_btotoff);
- boff = bswap32(n->cg_old_boff);
- clustersumoff = bswap32(n->cg_clustersumoff);
- }
- n32 = (u_int32_t *)((u_int8_t *)n + btotoff);
- o32 = (u_int32_t *)((u_int8_t *)o + btotoff);
- n16 = (u_int16_t *)((u_int8_t *)n + boff);
- o16 = (u_int16_t *)((u_int8_t *)o + boff);
-
- for (i = 0; i < fs->fs_old_cpg; i++)
- n32[i] = bswap32(o32[i]);
-
- for (i = 0; i < fs->fs_old_cpg * fs->fs_old_nrpos; i++)
- n16[i] = bswap16(o16[i]);
-
- n32 = (u_int32_t *)((u_int8_t *)n + clustersumoff);
- o32 = (u_int32_t *)((u_int8_t *)o + clustersumoff);
- for (i = 1; i < fs->fs_contigsumsize + 1; i++)
- n32[i] = bswap32(o32[i]);
+ n->cg_old_btotoff = bswap32(o->cg_old_btotoff);
+ n->cg_old_boff = bswap32(o->cg_old_boff);
+ n->cg_iusedoff = bswap32(o->cg_iusedoff);
+ n->cg_freeoff = bswap32(o->cg_freeoff);
+ n->cg_nextfreeoff = bswap32(o->cg_nextfreeoff);
+ n->cg_clustersumoff = bswap32(o->cg_clustersumoff);
+ n->cg_clusteroff = bswap32(o->cg_clusteroff);
+ n->cg_nclusterblks = bswap32(o->cg_nclusterblks);
+ n->cg_niblk = bswap32(o->cg_niblk);
+ n->cg_initediblk = bswap32(o->cg_initediblk);
+ n->cg_time = bswap64(o->cg_time);
+
+ if (fs->fs_magic == FS_UFS2_MAGIC)
+ return;
+
+ if (n->cg_magic == CG_MAGIC) {
+ btotoff = n->cg_old_btotoff;
+ boff = n->cg_old_boff;
+ clustersumoff = n->cg_clustersumoff;
+ } else {
+ btotoff = bswap32(n->cg_old_btotoff);
+ boff = bswap32(n->cg_old_boff);
+ clustersumoff = bswap32(n->cg_clustersumoff);
}
+ n32 = (u_int32_t *)((u_int8_t *)n + btotoff);
+ o32 = (u_int32_t *)((u_int8_t *)o + btotoff);
+ n16 = (u_int16_t *)((u_int8_t *)n + boff);
+ o16 = (u_int16_t *)((u_int8_t *)o + boff);
+
+ for (i = 0; i < fs->fs_old_cpg; i++)
+ n32[i] = bswap32(o32[i]);
+
+ for (i = 0; i < fs->fs_old_cpg * fs->fs_old_nrpos; i++)
+ n16[i] = bswap16(o16[i]);
+
+ n32 = (u_int32_t *)((u_int8_t *)n + clustersumoff);
+ o32 = (u_int32_t *)((u_int8_t *)o + clustersumoff);
+ for (i = 1; i < fs->fs_contigsumsize + 1; i++)
+ n32[i] = bswap32(o32[i]);
}
Copied and modified: projects/makefs/ffs/ffs_subr.c (from r186109, projects/makefs/sys/ufs/ffs/ffs_subr.c)
==============================================================================
--- projects/makefs/sys/ufs/ffs/ffs_subr.c Mon Dec 15 02:06:02 2008 (r186109, copy source)
+++ projects/makefs/ffs/ffs_subr.c Thu Dec 18 00:54:15 2008 (r186261)
@@ -31,141 +31,34 @@
* @(#)ffs_subr.c 8.5 (Berkeley) 3/21/95
*/
-#if HAVE_NBTOOL_CONFIG_H
-#include "nbtool_config.h"
-#endif
-
#include <sys/cdefs.h>
+#if 0
__KERNEL_RCSID(0, "$NetBSD: ffs_subr.c,v 1.32 2003/12/30 12:33:24 pk Exp $");
+#endif
+__FBSDID("$FreeBSD$");
#include <sys/param.h>
-/* in ffs_tables.c */
-extern const int inside[], around[];
-extern const u_char * const fragtbl[];
-
-#ifndef _KERNEL
#include <ufs/ufs/dinode.h>
#include <ufs/ffs/fs.h>
+/* XXX temporary */
+struct ufsmount;
+struct bufobj;
+struct mount;
+struct vnode;
+typedef int vfs_vget_t(struct mount *mp, ino_t ino, int flags,
+ struct vnode **vpp);
#include <ufs/ffs/ffs_extern.h>
-#include <ufs/ufs/ufs_bswap.h>
+#include "ffs/ufs_bswap.h"
void panic __P((const char *, ...))
__attribute__((__noreturn__,__format__(__printf__,1,2)));
-#else /* _KERNEL */
-#include <sys/systm.h>
-#include <sys/vnode.h>
-#include <sys/mount.h>
-#include <sys/buf.h>
-#include <sys/inttypes.h>
-#include <sys/pool.h>
-#include <ufs/ufs/inode.h>
-#include <ufs/ufs/ufsmount.h>
-#include <ufs/ufs/ufs_extern.h>
-#include <ufs/ffs/fs.h>
-#include <ufs/ffs/ffs_extern.h>
-#include <ufs/ufs/ufs_bswap.h>
-
-/*
- * Return buffer with the contents of block "offset" from the beginning of
- * directory "ip". If "res" is non-zero, fill it in with a pointer to the
- * remaining space in the directory.
- */
-int
-ffs_blkatoff(v)
- void *v;
-{
- struct vop_blkatoff_args /* {
- struct vnode *a_vp;
- off_t a_offset;
- char **a_res;
- struct buf **a_bpp;
- } */ *ap = v;
- struct inode *ip;
- struct fs *fs;
- struct buf *bp;
- daddr_t lbn;
- int bsize, error;
-
- ip = VTOI(ap->a_vp);
- fs = ip->i_fs;
- lbn = lblkno(fs, ap->a_offset);
- bsize = blksize(fs, ip, lbn);
-
- *ap->a_bpp = NULL;
- if ((error = bread(ap->a_vp, lbn, bsize, NOCRED, &bp)) != 0) {
- brelse(bp);
- return (error);
- }
- if (ap->a_res)
- *ap->a_res = (char *)bp->b_data + blkoff(fs, ap->a_offset);
- *ap->a_bpp = bp;
- return (0);
-}
-
-
-/*
- * Load up the contents of an inode and copy the appropriate pieces
- * to the incore copy.
- */
-void
-ffs_load_inode(bp, ip, fs, ino)
- struct buf *bp;
- struct inode *ip;
- struct fs *fs;
- ino_t ino;
-{
- struct ufs1_dinode *dp1;
- struct ufs2_dinode *dp2;
-
- if (ip->i_ump->um_fstype == UFS1) {
- dp1 = (struct ufs1_dinode *)bp->b_data + ino_to_fsbo(fs, ino);
-#ifdef FFS_EI
- if (UFS_FSNEEDSWAP(fs))
- ffs_dinode1_swap(dp1, ip->i_din.ffs1_din);
- else
-#endif
- *ip->i_din.ffs1_din = *dp1;
-
- ip->i_mode = ip->i_ffs1_mode;
- ip->i_nlink = ip->i_ffs1_nlink;
- ip->i_size = ip->i_ffs1_size;
- ip->i_flags = ip->i_ffs1_flags;
- ip->i_gen = ip->i_ffs1_gen;
- ip->i_uid = ip->i_ffs1_uid;
- ip->i_gid = ip->i_ffs1_gid;
- } else {
- dp2 = (struct ufs2_dinode *)bp->b_data + ino_to_fsbo(fs, ino);
-#ifdef FFS_EI
- if (UFS_FSNEEDSWAP(fs))
- ffs_dinode2_swap(dp2, ip->i_din.ffs2_din);
- else
-#endif
- *ip->i_din.ffs2_din = *dp2;
-
- ip->i_mode = ip->i_ffs2_mode;
- ip->i_nlink = ip->i_ffs2_nlink;
- ip->i_size = ip->i_ffs2_size;
- ip->i_flags = ip->i_ffs2_flags;
- ip->i_gen = ip->i_ffs2_gen;
- ip->i_uid = ip->i_ffs2_uid;
- ip->i_gid = ip->i_ffs2_gid;
- }
-}
-
-#endif /* _KERNEL */
-
/*
* Update the frsum fields to reflect addition or deletion
* of some frags.
*/
void
-ffs_fragacct(fs, fragmap, fraglist, cnt, needswap)
- struct fs *fs;
- int fragmap;
- int32_t fraglist[];
- int cnt;
- int needswap;
+ffs_fragacct_swap(struct fs *fs, int fragmap, int32_t fraglist[], int cnt, int needswap)
{
int inblk;
int field, subfield;
@@ -193,45 +86,6 @@ ffs_fragacct(fs, fragmap, fraglist, cnt,
}
}
-#if defined(_KERNEL) && defined(DIAGNOSTIC)
-void
-ffs_checkoverlap(bp, ip)
- struct buf *bp;
- struct inode *ip;
-{
-#if 0
- struct buf *ebp, *ep;
- daddr_t start, last;
- struct vnode *vp;
-
- ebp = &buf[nbuf];
- start = bp->b_blkno;
- last = start + btodb(bp->b_bcount) - 1;
- for (ep = buf; ep < ebp; ep++) {
- if (ep == bp || (ep->b_flags & B_INVAL) ||
- ep->b_vp == NULLVP)
- continue;
- if (VOP_BMAP(ep->b_vp, (daddr_t)0, &vp, (daddr_t)0, NULL))
- continue;
- if (vp != ip->i_devvp)
- continue;
- /* look for overlap */
- if (ep->b_bcount == 0 || ep->b_blkno > last ||
- ep->b_blkno + btodb(ep->b_bcount) <= start)
- continue;
- vprint("Disk overlap", vp);
- printf("\tstart %" PRId64 ", end %" PRId64 " overlap start "
- "%" PRId64 ", end %" PRId64 "\n",
- start, last, ep->b_blkno,
- ep->b_blkno + btodb(ep->b_bcount) - 1);
- panic("Disk buffer overlap");
- }
-#else
- printf("ffs_checkoverlap disabled due to buffer cache implementation changes\n");
-#endif
-}
-#endif /* _KERNEL && DIAGNOSTIC */
-
/*
* block operations
*
Modified: projects/makefs/ffs/mkfs.c
==============================================================================
--- projects/makefs/ffs/mkfs.c Wed Dec 17 22:59:29 2008 (r186260)
+++ projects/makefs/ffs/mkfs.c Thu Dec 18 00:54:15 2008 (r186261)
@@ -38,10 +38,6 @@
* SUCH DAMAGE.
*/
-#if HAVE_NBTOOL_CONFIG_H
-#include "nbtool_config.h"
-#endif
-
#include <sys/cdefs.h>
#ifndef lint
#if 0
@@ -66,9 +62,9 @@ __RCSID("$NetBSD: mkfs.c,v 1.20 2004/06/
#include "makefs.h"
#include <ufs/ufs/dinode.h>
-#include <ufs/ufs/ufs_bswap.h>
#include <ufs/ffs/fs.h>
+#include "ffs/ufs_bswap.h"
#include "ffs/ufs_inode.h"
#include "ffs/ffs_extern.h"
#include "ffs/newfs_extern.h"
@@ -114,7 +110,6 @@ static int opt; /* optimization
static int density; /* number of bytes per inode */
static int maxcontig; /* max contiguous blocks to allocate */
static int maxbpg; /* maximum blocks per file in a cyl group */
-static int bbsize; /* boot block size */
static int sbsize; /* superblock size */
static int avgfilesize; /* expected average file size */
static int avgfpdir; /* expected number of files per directory */
@@ -143,7 +138,6 @@ ffs_mkfs(const char *fsys, const fsinfo_
maxbpg = fsopts->maxbpg;
avgfilesize = fsopts->avgfilesize;
avgfpdir = fsopts->avgfpdir;
- bbsize = BBSIZE;
sbsize = SBLOCKSIZE;
if (Oflag == 0) {
@@ -663,7 +657,7 @@ initcg(int cylno, time_t utime, const fs
acg.cg_cs.cs_nifree += sblock.fs_ipg;
if (cylno == 0)
for (i = 0; i < ROOTINO; i++) {
- setbit(cg_inosused(&acg, 0), i);
+ setbit(cg_inosused_swap(&acg, 0), i);
acg.cg_cs.cs_nifree--;
}
if (cylno > 0) {
@@ -672,9 +666,9 @@ initcg(int cylno, time_t utime, const fs
* for boot and super blocks.
*/
for (d = 0, blkno = 0; d < dlower;) {
- ffs_setblock(&sblock, cg_blksfree(&acg, 0), blkno);
+ ffs_setblock(&sblock, cg_blksfree_swap(&acg, 0), blkno);
if (sblock.fs_contigsumsize > 0)
- setbit(cg_clustersfree(&acg, 0), blkno);
+ setbit(cg_clustersfree_swap(&acg, 0), blkno);
acg.cg_cs.cs_nbfree++;
d += sblock.fs_frag;
blkno++;
@@ -683,15 +677,15 @@ initcg(int cylno, time_t utime, const fs
if ((i = (dupper & (sblock.fs_frag - 1))) != 0) {
acg.cg_frsum[sblock.fs_frag - i]++;
for (d = dupper + sblock.fs_frag - i; dupper < d; dupper++) {
- setbit(cg_blksfree(&acg, 0), dupper);
+ setbit(cg_blksfree_swap(&acg, 0), dupper);
acg.cg_cs.cs_nffree++;
}
}
for (d = dupper, blkno = dupper >> sblock.fs_fragshift;
d + sblock.fs_frag <= acg.cg_ndblk; ) {
- ffs_setblock(&sblock, cg_blksfree(&acg, 0), blkno);
+ ffs_setblock(&sblock, cg_blksfree_swap(&acg, 0), blkno);
if (sblock.fs_contigsumsize > 0)
- setbit(cg_clustersfree(&acg, 0), blkno);
+ setbit(cg_clustersfree_swap(&acg, 0), blkno);
acg.cg_cs.cs_nbfree++;
d += sblock.fs_frag;
blkno++;
@@ -699,13 +693,13 @@ initcg(int cylno, time_t utime, const fs
if (d < acg.cg_ndblk) {
acg.cg_frsum[acg.cg_ndblk - d]++;
for (; d < acg.cg_ndblk; d++) {
- setbit(cg_blksfree(&acg, 0), d);
+ setbit(cg_blksfree_swap(&acg, 0), d);
acg.cg_cs.cs_nffree++;
}
}
if (sblock.fs_contigsumsize > 0) {
- int32_t *sump = cg_clustersum(&acg, 0);
- u_char *mapp = cg_clustersfree(&acg, 0);
+ int32_t *sump = cg_clustersum_swap(&acg, 0);
+ u_char *mapp = cg_clustersfree_swap(&acg, 0);
int map = *mapp++;
int bit = 1;
int run = 0;
Modified: projects/makefs/ffs/ufs_bmap.c
==============================================================================
--- projects/makefs/ffs/ufs_bmap.c Wed Dec 17 22:59:29 2008 (r186260)
+++ projects/makefs/ffs/ufs_bmap.c Thu Dec 18 00:54:15 2008 (r186261)
@@ -37,10 +37,6 @@
* @(#)ufs_bmap.c 8.8 (Berkeley) 8/11/95
*/
-#if HAVE_NBTOOL_CONFIG_H
-#include "nbtool_config.h"
-#endif
-
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(__lint)
__RCSID("$NetBSD: ufs_bmap.c,v 1.14 2004/06/20 22:20:18 jmc Exp $");
@@ -56,9 +52,9 @@ __RCSID("$NetBSD: ufs_bmap.c,v 1.14 2004
#include "makefs.h"
#include <ufs/ufs/dinode.h>
-#include <ufs/ufs/ufs_bswap.h>
#include <ufs/ffs/fs.h>
+#include "ffs/ufs_bswap.h"
#include "ffs/ufs_inode.h"
#include "ffs/ffs_extern.h"
Copied and modified: projects/makefs/ffs/ufs_bswap.h (from r186109, projects/makefs/sys/ufs/ufs/ufs_bswap.h)
==============================================================================
--- projects/makefs/sys/ufs/ufs/ufs_bswap.h Mon Dec 15 02:06:02 2008 (r186109, copy source)
+++ projects/makefs/ffs/ufs_bswap.h Thu Dec 18 00:54:15 2008 (r186261)
@@ -37,7 +37,7 @@
#include "opt_ffs.h"
#endif
-#include <machine/bswap.h>
+#include <sys/endian.h>
/* Macros to access UFS flags */
#ifdef FFS_EI
Copied and modified: projects/makefs/getid.c (from r186256, projects/makefs/compat/getid.c)
==============================================================================
--- projects/makefs/compat/getid.c Wed Dec 17 21:54:08 2008 (r186256, copy source)
+++ projects/makefs/getid.c Thu Dec 18 00:54:15 2008 (r186261)
@@ -67,10 +67,6 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#if HAVE_NBTOOL_CONFIG_H
-#include "nbtool_config.h"
-#endif
-
#include <sys/param.h>
#include <grp.h>
@@ -82,6 +78,8 @@
#include <time.h>
#include <unistd.h>
+#include "makefs.h"
+
#include "mtree.h"
#include "extern.h"
@@ -433,4 +431,3 @@ pwmatchline(int search, uid_t uid, const
return 1;
}
-
Modified: projects/makefs/makefs.c
==============================================================================
--- projects/makefs/makefs.c Wed Dec 17 22:59:29 2008 (r186260)
+++ projects/makefs/makefs.c Thu Dec 18 00:54:15 2008 (r186261)
@@ -35,10 +35,6 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#if HAVE_NBTOOL_CONFIG_H
-#include "nbtool_config.h"
-#endif
-
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(__lint)
__RCSID("$NetBSD: makefs.c,v 1.20 2004/06/20 22:20:18 jmc Exp $");
Modified: projects/makefs/makefs.h
==============================================================================
--- projects/makefs/makefs.h Wed Dec 17 22:59:29 2008 (r186260)
+++ projects/makefs/makefs.h Thu Dec 18 00:54:15 2008 (r186261)
@@ -38,16 +38,6 @@
#ifndef _MAKEFS_H
#define _MAKEFS_H
-#if HAVE_NBTOOL_CONFIG_H
-#include "nbtool_config.h"
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list