diff options
author | 1999-02-06 23:07:40 +0000 | |
---|---|---|
committer | 1999-02-06 23:07:40 +0000 | |
commit | 8dc3663075b121774435308710438bdbd0b275b0 (patch) | |
tree | f0afb529ed1afd84044b9663130b390b1a17ce00 | |
parent | Always initialize sc->handle[i].flags. (diff) | |
download | wireguard-openbsd-8dc3663075b121774435308710438bdbd0b275b0.tar.xz wireguard-openbsd-8dc3663075b121774435308710438bdbd0b275b0.zip |
Use bitwise operations to extract high and low words from the quad
in txdr_hyper. This should be more portable than casting to an array
of ints and pulling out the two 32-bit words (this produced incorrect
results on alpha for the high word for filesystems < 4gig). As a side
effect, txdr_hyper now takes a u_quad_t as its first arg, not u_quad_t *.
-rw-r--r-- | sys/nfs/nfs_nqlease.c | 4 | ||||
-rw-r--r-- | sys/nfs/nfs_serv.c | 16 | ||||
-rw-r--r-- | sys/nfs/nfs_socket.c | 4 | ||||
-rw-r--r-- | sys/nfs/nfs_subs.c | 8 | ||||
-rw-r--r-- | sys/nfs/nfs_vnops.c | 8 | ||||
-rw-r--r-- | sys/nfs/nfsm_subs.h | 4 | ||||
-rw-r--r-- | sys/nfs/xdr_subs.h | 8 |
7 files changed, 26 insertions, 26 deletions
diff --git a/sys/nfs/nfs_nqlease.c b/sys/nfs/nfs_nqlease.c index d3462d48426..e39557c4867 100644 --- a/sys/nfs/nfs_nqlease.c +++ b/sys/nfs/nfs_nqlease.c @@ -1,4 +1,4 @@ -/* $OpenBSD: nfs_nqlease.c,v 1.13 1998/08/19 22:26:51 csapuntz Exp $ */ +/* $OpenBSD: nfs_nqlease.c,v 1.14 1999/02/06 23:07:40 millert Exp $ */ /* $NetBSD: nfs_nqlease.c,v 1.14 1996/02/18 14:06:50 fvdl Exp $ */ /* @@ -730,7 +730,7 @@ nqnfsrv_getlease(nfsd, slp, procp, mrq) nfsm_build(tl, u_int32_t *, 4 * NFSX_UNSIGNED); *tl++ = txdr_unsigned(cache); *tl++ = txdr_unsigned(nfsd->nd_duration); - txdr_hyper(&frev, tl); + txdr_hyper(frev, tl); nfsm_build(fp, struct nfs_fattr *, NFSX_V3FATTR); nfsm_srvfillattr(&va, fp); nfsm_srvdone; diff --git a/sys/nfs/nfs_serv.c b/sys/nfs/nfs_serv.c index 7b98b457062..1f2934927a4 100644 --- a/sys/nfs/nfs_serv.c +++ b/sys/nfs/nfs_serv.c @@ -1,4 +1,4 @@ -/* $OpenBSD: nfs_serv.c,v 1.17 1999/02/01 17:44:17 millert Exp $ */ +/* $OpenBSD: nfs_serv.c,v 1.18 1999/02/06 23:07:42 millert Exp $ */ /* $NetBSD: nfs_serv.c,v 1.25 1996/03/02 15:55:52 jtk Exp $ */ /* @@ -2490,7 +2490,7 @@ again: if (v3) { nfsm_srvpostop_attr(getret, &at); nfsm_build(tl, u_int32_t *, 4 * NFSX_UNSIGNED); - txdr_hyper(&at.va_filerev, tl); + txdr_hyper(at.va_filerev, tl); tl += 2; } else nfsm_build(tl, u_int32_t *, 2 * NFSX_UNSIGNED); @@ -2529,7 +2529,7 @@ again: if (v3) { nfsm_srvpostop_attr(getret, &at); nfsm_build(tl, u_int32_t *, 2 * NFSX_UNSIGNED); - txdr_hyper(&at.va_filerev, tl); + txdr_hyper(at.va_filerev, tl); } mp = mp2 = mb; bp = bpos; @@ -2747,7 +2747,7 @@ again: 2 * NFSX_UNSIGNED); nfsm_srvpostop_attr(getret, &at); nfsm_build(tl, u_int32_t *, 4 * NFSX_UNSIGNED); - txdr_hyper(&at.va_filerev, tl); + txdr_hyper(at.va_filerev, tl); tl += 2; *tl++ = nfs_false; *tl = nfs_true; @@ -2783,7 +2783,7 @@ again: nfsm_reply(cnt); nfsm_srvpostop_attr(getret, &at); nfsm_build(tl, u_int32_t *, 2 * NFSX_UNSIGNED); - txdr_hyper(&at.va_filerev, tl); + txdr_hyper(at.va_filerev, tl); mp = mp2 = mb; bp = bpos; be = bp + M_TRAILINGSPACE(mp); @@ -3032,13 +3032,13 @@ nfsrv_statfs(nfsd, slp, procp, mrq) if (v3) { tval = (u_quad_t)sf->f_blocks; tval *= (u_quad_t)sf->f_bsize; - txdr_hyper(&tval, &sfp->sf_tbytes); + txdr_hyper(tval, &sfp->sf_tbytes); tval = (u_quad_t)sf->f_bfree; tval *= (u_quad_t)sf->f_bsize; - txdr_hyper(&tval, &sfp->sf_fbytes); + txdr_hyper(tval, &sfp->sf_fbytes); tval = (u_quad_t)sf->f_bavail; tval *= (u_quad_t)sf->f_bsize; - txdr_hyper(&tval, &sfp->sf_abytes); + txdr_hyper(tval, &sfp->sf_abytes); sfp->sf_tfiles.nfsuquad[0] = 0; sfp->sf_tfiles.nfsuquad[1] = txdr_unsigned(sf->f_files); sfp->sf_ffiles.nfsuquad[0] = 0; diff --git a/sys/nfs/nfs_socket.c b/sys/nfs/nfs_socket.c index e07444cc080..fe77781da2d 100644 --- a/sys/nfs/nfs_socket.c +++ b/sys/nfs/nfs_socket.c @@ -1,4 +1,4 @@ -/* $OpenBSD: nfs_socket.c,v 1.13 1998/08/19 22:26:53 csapuntz Exp $ */ +/* $OpenBSD: nfs_socket.c,v 1.14 1999/02/06 23:07:44 millert Exp $ */ /* $NetBSD: nfs_socket.c,v 1.27 1996/04/15 20:20:00 thorpej Exp $ */ /* @@ -1224,7 +1224,7 @@ nfs_rephead(siz, nd, slp, err, cache, frev, mrq, mbp, bposp) *tl++ = txdr_unsigned(nd->nd_flag & ND_LEASE); *tl++ = txdr_unsigned(cache); *tl++ = txdr_unsigned(nd->nd_duration); - txdr_hyper(frev, tl); + txdr_hyper(*frev, tl); } else { nfsm_build(tl, u_int32_t *, NFSX_UNSIGNED); *tl = 0; diff --git a/sys/nfs/nfs_subs.c b/sys/nfs/nfs_subs.c index 7f9a546239e..40474abcabe 100644 --- a/sys/nfs/nfs_subs.c +++ b/sys/nfs/nfs_subs.c @@ -1,4 +1,4 @@ -/* $OpenBSD: nfs_subs.c,v 1.24 1999/01/16 13:28:25 niklas Exp $ */ +/* $OpenBSD: nfs_subs.c,v 1.25 1999/02/06 23:07:45 millert Exp $ */ /* $NetBSD: nfs_subs.c,v 1.27.4.3 1996/07/08 20:34:24 jtc Exp $ */ /* @@ -1600,7 +1600,7 @@ nfsm_srvwcc(nfsd, before_ret, before_vap, after_ret, after_vap, mbp, bposp) } else { nfsm_build(tl, u_int32_t *, 7 * NFSX_UNSIGNED); *tl++ = nfs_true; - txdr_hyper(&(before_vap->va_size), tl); + txdr_hyper(before_vap->va_size, tl); tl += 2; txdr_nfsv3time(&(before_vap->va_mtime), tl); tl += 2; @@ -1650,8 +1650,8 @@ nfsm_srvfattr(nfsd, vap, fp) if (nfsd->nd_flag & ND_NFSV3) { fp->fa_type = vtonfsv3_type(vap->va_type); fp->fa_mode = vtonfsv3_mode(vap->va_mode); - txdr_hyper(&vap->va_size, &fp->fa3_size); - txdr_hyper(&vap->va_bytes, &fp->fa3_used); + txdr_hyper(vap->va_size, &fp->fa3_size); + txdr_hyper(vap->va_bytes, &fp->fa3_used); fp->fa3_rdev.specdata1 = txdr_unsigned(major(vap->va_rdev)); fp->fa3_rdev.specdata2 = txdr_unsigned(minor(vap->va_rdev)); fp->fa3_fsid.nfsuquad[0] = 0; diff --git a/sys/nfs/nfs_vnops.c b/sys/nfs/nfs_vnops.c index 3804d47504d..e09bf34e690 100644 --- a/sys/nfs/nfs_vnops.c +++ b/sys/nfs/nfs_vnops.c @@ -1,4 +1,4 @@ -/* $OpenBSD: nfs_vnops.c,v 1.23 1999/01/10 20:06:51 millert Exp $ */ +/* $OpenBSD: nfs_vnops.c,v 1.24 1999/02/06 23:07:46 millert Exp $ */ /* $NetBSD: nfs_vnops.c,v 1.62.4.1 1996/07/08 20:26:52 jtc Exp $ */ /* @@ -954,7 +954,7 @@ nfs_readrpc(vp, uiop, cred) nfsm_fhtom(vp, v3); nfsm_build(tl, u_int32_t *, NFSX_UNSIGNED * 3); if (v3) { - txdr_hyper(&uiop->uio_offset, tl); + txdr_hyper(uiop->uio_offset, tl); *(tl + 2) = txdr_unsigned(len); } else { *tl++ = txdr_unsigned(uiop->uio_offset); @@ -1021,7 +1021,7 @@ nfs_writerpc(vp, uiop, cred, iomode, must_commit) nfsm_fhtom(vp, v3); if (v3) { nfsm_build(tl, u_int32_t *, 5 * NFSX_UNSIGNED); - txdr_hyper(&uiop->uio_offset, tl); + txdr_hyper(uiop->uio_offset, tl); tl += 2; *tl++ = txdr_unsigned(len); *tl++ = txdr_unsigned(*iomode); @@ -2503,7 +2503,7 @@ nfs_commit(vp, offset, cnt, cred, procp) nfsm_reqhead(vp, NFSPROC_COMMIT, NFSX_FH(1)); nfsm_fhtom(vp, 1); nfsm_build(tl, u_int32_t *, 3 * NFSX_UNSIGNED); - txdr_hyper(&offset, tl); + txdr_hyper(offset, tl); tl += 2; *tl = txdr_unsigned(cnt); nfsm_request(vp, NFSPROC_COMMIT, procp, cred); diff --git a/sys/nfs/nfsm_subs.h b/sys/nfs/nfsm_subs.h index c0df657bf0e..19bf83f4be0 100644 --- a/sys/nfs/nfsm_subs.h +++ b/sys/nfs/nfsm_subs.h @@ -1,4 +1,4 @@ -/* $OpenBSD: nfsm_subs.h,v 1.9 1999/01/10 20:06:53 millert Exp $ */ +/* $OpenBSD: nfsm_subs.h,v 1.10 1999/02/06 23:07:47 millert Exp $ */ /* $NetBSD: nfsm_subs.h,v 1.10 1996/03/20 21:59:56 fvdl Exp $ */ /* @@ -257,7 +257,7 @@ if ((full) && (a)->va_size != VNOVAL) { \ nfsm_build(tl, u_int32_t *, 3 * NFSX_UNSIGNED); \ *tl++ = nfs_true; \ - txdr_hyper(&(a)->va_size, tl); \ + txdr_hyper((a)->va_size, tl); \ } else { \ nfsm_build(tl, u_int32_t *, NFSX_UNSIGNED); \ *tl = nfs_false; \ diff --git a/sys/nfs/xdr_subs.h b/sys/nfs/xdr_subs.h index 6cc84bc6b6a..65bbc160f1b 100644 --- a/sys/nfs/xdr_subs.h +++ b/sys/nfs/xdr_subs.h @@ -1,4 +1,4 @@ -/* $OpenBSD: xdr_subs.h,v 1.6 1998/12/28 17:49:21 millert Exp $ */ +/* $OpenBSD: xdr_subs.h,v 1.7 1999/02/06 23:07:47 millert Exp $ */ /* $NetBSD: xdr_subs.h,v 1.11 1996/02/18 11:54:12 fvdl Exp $ */ /* @@ -86,9 +86,9 @@ (u_quad_t)(ntohl(((u_int32_t *)(f))[1]))) -#define txdr_hyper(f, t) { \ - ((int32_t *)(t))[0] = htonl(((int32_t *)(f))[_QUAD_HIGHWORD]); \ - ((int32_t *)(t))[1] = htonl(((int32_t *)(f))[_QUAD_LOWWORD]); \ +#define txdr_hyper(f, t) { \ + ((u_int32_t *)(t))[0] = htonl((u_int32_t)((f) >> 32)); \ + ((u_int32_t *)(t))[1] = htonl((u_int32_t)((f) & 0xffffffff)); \ } #endif |