diff options
author | tedu <tedu@openbsd.org> | 2016-10-16 22:19:10 +0000 |
---|---|---|
committer | tedu <tedu@openbsd.org> | 2016-10-16 22:19:10 +0000 |
commit | 3f361c9e9e8fc1134eb3e921860bd3eeab9a0a6c (patch) | |
tree | d72ec19e18c8a09274831d3e4e734edbbb909a36 /usr.sbin/makefs | |
parent | Use notifys for alerts too. (diff) | |
download | wireguard-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.c | 57 | ||||
-rw-r--r-- | usr.sbin/makefs/ffs/ffs_balloc.c | 32 | ||||
-rw-r--r-- | usr.sbin/makefs/ufs/ffs/ffs_subr.c | 19 | ||||
-rw-r--r-- | usr.sbin/makefs/ufs/ufs/ufs_bswap.h | 7 |
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) |