summaryrefslogtreecommitdiffstats
path: root/usr.sbin/makefs
diff options
context:
space:
mode:
authortedu <tedu@openbsd.org>2016-10-16 22:19:10 +0000
committertedu <tedu@openbsd.org>2016-10-16 22:19:10 +0000
commit3f361c9e9e8fc1134eb3e921860bd3eeab9a0a6c (patch)
treed72ec19e18c8a09274831d3e4e734edbbb909a36 /usr.sbin/makefs
parentUse notifys for alerts too. (diff)
downloadwireguard-openbsd-3f361c9e9e8fc1134eb3e921860bd3eeab9a0a6c.tar.xz
wireguard-openbsd-3f361c9e9e8fc1134eb3e921860bd3eeab9a0a6c.zip
another round of deswapping
Diffstat (limited to 'usr.sbin/makefs')
-rw-r--r--usr.sbin/makefs/ffs/ffs_alloc.c57
-rw-r--r--usr.sbin/makefs/ffs/ffs_balloc.c32
-rw-r--r--usr.sbin/makefs/ufs/ffs/ffs_subr.c19
-rw-r--r--usr.sbin/makefs/ufs/ufs/ufs_bswap.h7
4 files changed, 52 insertions, 63 deletions
diff --git a/usr.sbin/makefs/ffs/ffs_alloc.c b/usr.sbin/makefs/ffs/ffs_alloc.c
index dfaa22494ab..d4738d49078 100644
--- a/usr.sbin/makefs/ffs/ffs_alloc.c
+++ b/usr.sbin/makefs/ffs/ffs_alloc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ffs_alloc.c,v 1.4 2016/10/16 20:26:56 natano Exp $ */
+/* $OpenBSD: ffs_alloc.c,v 1.5 2016/10/16 22:19:10 tedu Exp $ */
/* $NetBSD: ffs_alloc.c,v 1.29 2016/06/24 19:24:11 christos Exp $ */
/* From: NetBSD: ffs_alloc.c,v 1.50 2001/09/06 02:16:01 lukem Exp */
@@ -166,7 +166,7 @@ ffs_blkpref_ufs1(struct inode *ip, daddr_t lbn, int indx, int32_t *bap)
ino_to_cg(fs, ip->i_number) + lbn / fs->fs_maxbpg;
else
startcg = dtog(fs,
- ufs_rw32(bap[indx - 1], UFS_FSNEEDSWAP(fs)) + 1);
+ ufs_rw32(bap[indx - 1], 0) + 1);
startcg %= fs->fs_ncg;
avgbfree = fs->fs_cstotal.cs_nbfree / fs->fs_ncg;
for (cg = startcg; cg < fs->fs_ncg; cg++)
@@ -180,7 +180,7 @@ ffs_blkpref_ufs1(struct inode *ip, daddr_t lbn, int indx, int32_t *bap)
/*
* We just always try to lay things out contiguously.
*/
- return ufs_rw32(bap[indx - 1], UFS_FSNEEDSWAP(fs)) + fs->fs_frag;
+ return ufs_rw32(bap[indx - 1], 0) + fs->fs_frag;
}
daddr_t
@@ -205,7 +205,7 @@ ffs_blkpref_ufs2(struct inode *ip, daddr_t lbn, int indx, int64_t *bap)
ino_to_cg(fs, ip->i_number) + lbn / fs->fs_maxbpg;
else
startcg = dtog(fs,
- ufs_rw64(bap[indx - 1], UFS_FSNEEDSWAP(fs)) + 1);
+ ufs_rw64(bap[indx - 1], 0) + 1);
startcg %= fs->fs_ncg;
avgbfree = fs->fs_cstotal.cs_nbfree / fs->fs_ncg;
for (cg = startcg; cg < fs->fs_ncg; cg++)
@@ -221,7 +221,7 @@ ffs_blkpref_ufs2(struct inode *ip, daddr_t lbn, int indx, int64_t *bap)
/*
* We just always try to lay things out contiguously.
*/
- return ufs_rw64(bap[indx - 1], UFS_FSNEEDSWAP(fs)) + fs->fs_frag;
+ return ufs_rw64(bap[indx - 1], 0) + fs->fs_frag;
}
/*
@@ -292,7 +292,6 @@ ffs_alloccg(struct inode *ip, int cg, daddr_t bpref, int size)
daddr_t bno, blkno;
int error, frags, allocsiz, i;
struct fs *fs = ip->i_fs;
- const int needswap = UFS_FSNEEDSWAP(fs);
if (fs->fs_cs(fs, cg).cs_nbfree == 0 && size == fs->fs_bsize)
return (0);
@@ -302,7 +301,7 @@ ffs_alloccg(struct inode *ip, int cg, daddr_t bpref, int size)
return (0);
}
cgp = (struct cg *)bp->b_data;
- if (!cg_chkmagic(cgp, needswap) ||
+ if (!cg_chkmagic(cgp, 0) ||
(cgp->cg_cs.cs_nbfree == 0 && size == fs->fs_bsize)) {
brelse(bp, 0);
return (0);
@@ -333,26 +332,26 @@ ffs_alloccg(struct inode *ip, int cg, daddr_t bpref, int size)
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(cgp, 0), bpref + i);
i = fs->fs_frag - frags;
- ufs_add32(cgp->cg_cs.cs_nffree, i, needswap);
+ ufs_add32(cgp->cg_cs.cs_nffree, i, 0);
fs->fs_cstotal.cs_nffree += i;
fs->fs_cs(fs, cg).cs_nffree += i;
fs->fs_fmod = 1;
- ufs_add32(cgp->cg_frsum[i], 1, needswap);
+ ufs_add32(cgp->cg_frsum[i], 1, 0);
bdwrite(bp);
return (bno);
}
bno = ffs_mapsearch(fs, cgp, bpref, allocsiz);
for (i = 0; i < frags; i++)
- clrbit(cg_blksfree(cgp, needswap), bno + i);
- ufs_add32(cgp->cg_cs.cs_nffree, -frags, needswap);
+ clrbit(cg_blksfree(cgp, 0), bno + i);
+ ufs_add32(cgp->cg_cs.cs_nffree, -frags, 0);
fs->fs_cstotal.cs_nffree -= frags;
fs->fs_cs(fs, cg).cs_nffree -= frags;
fs->fs_fmod = 1;
- ufs_add32(cgp->cg_frsum[allocsiz], -1, needswap);
+ ufs_add32(cgp->cg_frsum[allocsiz], -1, 0);
if (frags != allocsiz)
- ufs_add32(cgp->cg_frsum[allocsiz - frags], 1, needswap);
+ ufs_add32(cgp->cg_frsum[allocsiz - frags], 1, 0);
blkno = cg * fs->fs_fpg + bno;
bdwrite(bp);
return blkno;
@@ -376,13 +375,12 @@ ffs_alloccgblk(struct inode *ip, struct buf *bp, daddr_t bpref)
daddr_t blkno;
int32_t bno;
struct fs *fs = ip->i_fs;
- const int needswap = UFS_FSNEEDSWAP(fs);
u_int8_t *blksfree;
cgp = (struct cg *)bp->b_data;
- blksfree = cg_blksfree(cgp, needswap);
- if (bpref == 0 || dtog(fs, bpref) != ufs_rw32(cgp->cg_cgx, needswap)) {
- bpref = ufs_rw32(cgp->cg_rotor, needswap);
+ blksfree = cg_blksfree(cgp, 0);
+ if (bpref == 0 || dtog(fs, bpref) != ufs_rw32(cgp->cg_cgx, 0)) {
+ bpref = ufs_rw32(cgp->cg_rotor, 0);
} else {
bpref = ffs_blknum(fs, bpref);
bno = dtogd(fs, bpref);
@@ -398,16 +396,16 @@ ffs_alloccgblk(struct inode *ip, struct buf *bp, daddr_t bpref)
bno = ffs_mapsearch(fs, cgp, bpref, (int)fs->fs_frag);
if (bno < 0)
return (0);
- cgp->cg_rotor = ufs_rw32(bno, needswap);
+ cgp->cg_rotor = ufs_rw32(bno, 0);
gotit:
blkno = ffs_fragstoblks(fs, bno);
ffs_clrblock(fs, blksfree, (long)blkno);
ffs_clusteracct(fs, cgp, blkno, -1);
- ufs_add32(cgp->cg_cs.cs_nbfree, -1, needswap);
+ ufs_add32(cgp->cg_cs.cs_nbfree, -1, 0);
fs->fs_cstotal.cs_nbfree--;
- fs->fs_cs(fs, ufs_rw32(cgp->cg_cgx, needswap)).cs_nbfree--;
+ fs->fs_cs(fs, ufs_rw32(cgp->cg_cgx, 0)).cs_nbfree--;
fs->fs_fmod = 1;
- blkno = ufs_rw32(cgp->cg_cgx, needswap) * fs->fs_fpg + bno;
+ blkno = ufs_rw32(cgp->cg_cgx, 0) * fs->fs_fpg + bno;
return (blkno);
}
@@ -434,7 +432,6 @@ ffs_mapsearch(struct fs *fs, struct cg *cgp, daddr_t bpref, int allocsiz)
int start, len, loc, i;
int blk, field, subfield, pos;
int ostart, olen;
- const int needswap = UFS_FSNEEDSWAP(fs);
/*
* find the fragment by searching through the free block
@@ -443,37 +440,37 @@ ffs_mapsearch(struct fs *fs, struct cg *cgp, daddr_t bpref, int allocsiz)
if (bpref)
start = dtogd(fs, bpref) / NBBY;
else
- start = ufs_rw32(cgp->cg_frotor, needswap) / NBBY;
+ start = ufs_rw32(cgp->cg_frotor, 0) / NBBY;
len = howmany(fs->fs_fpg, NBBY) - start;
ostart = start;
olen = len;
loc = scanc((u_int)len,
- (const u_char *)&cg_blksfree(cgp, needswap)[start],
+ (const u_char *)&cg_blksfree(cgp, 0)[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(cgp, 0)[0],
(const u_char *)fragtbl[fs->fs_frag],
(1 << (allocsiz - 1 + (fs->fs_frag % NBBY))));
if (loc == 0) {
errx(EXIT_FAILURE, "%s: map corrupted: start %d "
"len %d offset %d %ld", __func__, ostart, olen,
- ufs_rw32(cgp->cg_freeoff, needswap),
- (long)cg_blksfree(cgp, needswap) - (long)cgp);
+ ufs_rw32(cgp->cg_freeoff, 0),
+ (long)cg_blksfree(cgp, 0) - (long)cgp);
/* NOTREACHED */
}
}
bno = (start + len - loc) * NBBY;
- cgp->cg_frotor = ufs_rw32(bno, needswap);
+ cgp->cg_frotor = ufs_rw32(bno, 0);
/*
* found the byte in the map
* 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(cgp, 0), bno);
blk <<= 1;
field = around[allocsiz];
subfield = inside[allocsiz];
diff --git a/usr.sbin/makefs/ffs/ffs_balloc.c b/usr.sbin/makefs/ffs/ffs_balloc.c
index 92903ae3776..6bdcd5a812e 100644
--- a/usr.sbin/makefs/ffs/ffs_balloc.c
+++ b/usr.sbin/makefs/ffs/ffs_balloc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ffs_balloc.c,v 1.3 2016/10/16 20:26:56 natano Exp $ */
+/* $OpenBSD: ffs_balloc.c,v 1.4 2016/10/16 22:19:10 tedu Exp $ */
/* $NetBSD: ffs_balloc.c,v 1.21 2015/03/29 05:52:59 agc Exp $ */
/* From NetBSD: ffs_balloc.c,v 1.25 2001/08/08 08:36:36 lukem Exp */
@@ -80,7 +80,6 @@ ffs_balloc_ufs1(struct inode *ip, off_t offset, int bufsize, struct buf **bpp)
int osize, nsize, num, i, error;
int32_t *allocblk, allociblk[UFS_NIADDR + 1];
int32_t *allocib;
- const int needswap = UFS_FSNEEDSWAP(fs);
lbn = ffs_lblkno(fs, offset);
size = ffs_blkoff(fs, offset) + bufsize;
@@ -113,7 +112,7 @@ ffs_balloc_ufs1(struct inode *ip, off_t offset, int bufsize, struct buf **bpp)
*/
if (lbn < UFS_NDADDR) {
- nb = ufs_rw32(ip->i_ffs1_db[lbn], needswap);
+ nb = ufs_rw32(ip->i_ffs1_db[lbn], 0);
if (nb != 0 && ip->i_ffs1_size >= ffs_lblktosize(fs, lbn + 1)) {
/*
@@ -186,7 +185,7 @@ ffs_balloc_ufs1(struct inode *ip, off_t offset, int bufsize, struct buf **bpp)
*bpp = bp;
}
}
- ip->i_ffs1_db[lbn] = ufs_rw32((int32_t)newb, needswap);
+ ip->i_ffs1_db[lbn] = ufs_rw32((int32_t)newb, 0);
return (0);
}
@@ -208,7 +207,7 @@ ffs_balloc_ufs1(struct inode *ip, off_t offset, int bufsize, struct buf **bpp)
*/
--num;
- nb = ufs_rw32(ip->i_ffs1_ib[indirs[0].in_off], needswap);
+ nb = ufs_rw32(ip->i_ffs1_ib[indirs[0].in_off], 0);
allocib = NULL;
allocblk = allociblk;
if (nb == 0) {
@@ -228,7 +227,7 @@ ffs_balloc_ufs1(struct inode *ip, off_t offset, int bufsize, struct buf **bpp)
if ((error = bwrite(bp)) != 0)
return error;
allocib = &ip->i_ffs1_ib[indirs[0].in_off];
- *allocib = ufs_rw32((int32_t)nb, needswap);
+ *allocib = ufs_rw32((int32_t)nb, 0);
}
/*
@@ -243,7 +242,7 @@ ffs_balloc_ufs1(struct inode *ip, off_t offset, int bufsize, struct buf **bpp)
return error;
}
bap = (int32_t *)bp->b_data;
- nb = ufs_rw32(bap[indirs[i].in_off], needswap);
+ nb = ufs_rw32(bap[indirs[i].in_off], 0);
if (i == num)
break;
i++;
@@ -272,7 +271,7 @@ ffs_balloc_ufs1(struct inode *ip, off_t offset, int bufsize, struct buf **bpp)
brelse(bp, 0);
return error;
}
- bap[indirs[i - 1].in_off] = ufs_rw32(nb, needswap);
+ bap[indirs[i - 1].in_off] = ufs_rw32(nb, 0);
bwrite(bp);
}
@@ -296,7 +295,7 @@ ffs_balloc_ufs1(struct inode *ip, off_t offset, int bufsize, struct buf **bpp)
clrbuf(nbp);
*bpp = nbp;
}
- bap[indirs[num].in_off] = ufs_rw32(nb, needswap);
+ bap[indirs[num].in_off] = ufs_rw32(nb, 0);
/*
* If required, write synchronously, otherwise use
@@ -330,7 +329,6 @@ ffs_balloc_ufs2(struct inode *ip, off_t offset, int bufsize, struct buf **bpp)
int osize, nsize, num, i, error;
int64_t *allocblk, allociblk[UFS_NIADDR + 1];
int64_t *allocib;
- const int needswap = UFS_FSNEEDSWAP(fs);
lbn = ffs_lblkno(fs, offset);
size = ffs_blkoff(fs, offset) + bufsize;
@@ -363,7 +361,7 @@ ffs_balloc_ufs2(struct inode *ip, off_t offset, int bufsize, struct buf **bpp)
*/
if (lbn < UFS_NDADDR) {
- nb = ufs_rw64(ip->i_ffs2_db[lbn], needswap);
+ nb = ufs_rw64(ip->i_ffs2_db[lbn], 0);
if (nb != 0 && ip->i_ffs2_size >= ffs_lblktosize(fs, lbn + 1)) {
/*
@@ -436,7 +434,7 @@ ffs_balloc_ufs2(struct inode *ip, off_t offset, int bufsize, struct buf **bpp)
*bpp = bp;
}
}
- ip->i_ffs2_db[lbn] = ufs_rw64(newb, needswap);
+ ip->i_ffs2_db[lbn] = ufs_rw64(newb, 0);
return (0);
}
@@ -458,7 +456,7 @@ ffs_balloc_ufs2(struct inode *ip, off_t offset, int bufsize, struct buf **bpp)
*/
--num;
- nb = ufs_rw64(ip->i_ffs2_ib[indirs[0].in_off], needswap);
+ nb = ufs_rw64(ip->i_ffs2_ib[indirs[0].in_off], 0);
allocib = NULL;
allocblk = allociblk;
if (nb == 0) {
@@ -478,7 +476,7 @@ ffs_balloc_ufs2(struct inode *ip, off_t offset, int bufsize, struct buf **bpp)
if ((error = bwrite(bp)) != 0)
return error;
allocib = &ip->i_ffs2_ib[indirs[0].in_off];
- *allocib = ufs_rw64(nb, needswap);
+ *allocib = ufs_rw64(nb, 0);
}
/*
@@ -493,7 +491,7 @@ ffs_balloc_ufs2(struct inode *ip, off_t offset, int bufsize, struct buf **bpp)
return error;
}
bap = (int64_t *)bp->b_data;
- nb = ufs_rw64(bap[indirs[i].in_off], needswap);
+ nb = ufs_rw64(bap[indirs[i].in_off], 0);
if (i == num)
break;
i++;
@@ -522,7 +520,7 @@ ffs_balloc_ufs2(struct inode *ip, off_t offset, int bufsize, struct buf **bpp)
brelse(bp, 0);
return error;
}
- bap[indirs[i - 1].in_off] = ufs_rw64(nb, needswap);
+ bap[indirs[i - 1].in_off] = ufs_rw64(nb, 0);
bwrite(bp);
}
@@ -546,7 +544,7 @@ ffs_balloc_ufs2(struct inode *ip, off_t offset, int bufsize, struct buf **bpp)
clrbuf(nbp);
*bpp = nbp;
}
- bap[indirs[num].in_off] = ufs_rw64(nb, needswap);
+ bap[indirs[num].in_off] = ufs_rw64(nb, 0);
/*
* If required, write synchronously, otherwise use
diff --git a/usr.sbin/makefs/ufs/ffs/ffs_subr.c b/usr.sbin/makefs/ufs/ffs/ffs_subr.c
index 8371061f076..d6825c79259 100644
--- a/usr.sbin/makefs/ufs/ffs/ffs_subr.c
+++ b/usr.sbin/makefs/ufs/ffs/ffs_subr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ffs_subr.c,v 1.3 2016/10/16 20:26:56 natano Exp $ */
+/* $OpenBSD: ffs_subr.c,v 1.4 2016/10/16 22:19:10 tedu Exp $ */
/* $NetBSD: ffs_subr.c,v 1.49 2016/05/07 11:59:08 maxv Exp $ */
/*
@@ -141,14 +141,13 @@ ffs_clusteracct(struct fs *fs, struct cg *cgp, int32_t blkno, int cnt)
int32_t *lp;
u_char *freemapp, *mapp;
int i, start, end, forw, back, map, bit;
- const int needswap = UFS_FSNEEDSWAP(fs);
/* KASSERT(mutex_owned(&ump->um_lock)); */
if (fs->fs_contigsumsize <= 0)
return;
- freemapp = cg_clustersfree(cgp, needswap);
- sump = cg_clustersum(cgp, needswap);
+ freemapp = cg_clustersfree(cgp, 0);
+ sump = cg_clustersum(cgp, 0);
/*
* Allocate or clear the actual block.
*/
@@ -161,8 +160,8 @@ ffs_clusteracct(struct fs *fs, struct cg *cgp, int32_t blkno, int cnt)
*/
start = blkno + 1;
end = start + fs->fs_contigsumsize;
- if ((uint32_t)end >= ufs_rw32(cgp->cg_nclusterblks, needswap))
- end = ufs_rw32(cgp->cg_nclusterblks, needswap);
+ if ((uint32_t)end >= ufs_rw32(cgp->cg_nclusterblks, 0))
+ end = ufs_rw32(cgp->cg_nclusterblks, 0);
mapp = &freemapp[start / NBBY];
map = *mapp++;
bit = 1 << (start % NBBY);
@@ -205,17 +204,17 @@ ffs_clusteracct(struct fs *fs, struct cg *cgp, int32_t blkno, int cnt)
i = back + forw + 1;
if (i > fs->fs_contigsumsize)
i = fs->fs_contigsumsize;
- ufs_add32(sump[i], cnt, needswap);
+ ufs_add32(sump[i], cnt, 0);
if (back > 0)
- ufs_add32(sump[back], -cnt, needswap);
+ ufs_add32(sump[back], -cnt, 0);
if (forw > 0)
- ufs_add32(sump[forw], -cnt, needswap);
+ ufs_add32(sump[forw], -cnt, 0);
/*
* Update cluster summary information.
*/
lp = &sump[fs->fs_contigsumsize];
for (i = fs->fs_contigsumsize; i > 0; i--)
- if (ufs_rw32(*lp--, needswap) > 0)
+ if (ufs_rw32(*lp--, 0) > 0)
break;
}
diff --git a/usr.sbin/makefs/ufs/ufs/ufs_bswap.h b/usr.sbin/makefs/ufs/ufs/ufs_bswap.h
index 14bc9eac16d..2efca974ce1 100644
--- a/usr.sbin/makefs/ufs/ufs/ufs_bswap.h
+++ b/usr.sbin/makefs/ufs/ufs/ufs_bswap.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ufs_bswap.h,v 1.2 2016/10/16 20:26:56 natano Exp $ */
+/* $OpenBSD: ufs_bswap.h,v 1.3 2016/10/16 22:19:10 tedu Exp $ */
/* $NetBSD: ufs_bswap.h,v 1.21 2016/04/29 03:05:04 christos Exp $ */
/*
@@ -31,11 +31,6 @@
#include <sys/endian.h>
-/* Macros to access UFS flags */
-#define UFS_MPNEEDSWAP(ump) ((void)(ump), 0)
-#define UFS_FSNEEDSWAP(fs) ((void)(fs), 0)
-#define UFS_IPNEEDSWAP(ip) ((void)(ip), 0)
-
/* inlines for access to swapped data */
static inline u_int16_t
ufs_rw16(uint16_t a, int ns)