summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormillert <millert@openbsd.org>1999-02-06 23:07:40 +0000
committermillert <millert@openbsd.org>1999-02-06 23:07:40 +0000
commit8dc3663075b121774435308710438bdbd0b275b0 (patch)
treef0afb529ed1afd84044b9663130b390b1a17ce00
parentAlways initialize sc->handle[i].flags. (diff)
downloadwireguard-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.c4
-rw-r--r--sys/nfs/nfs_serv.c16
-rw-r--r--sys/nfs/nfs_socket.c4
-rw-r--r--sys/nfs/nfs_subs.c8
-rw-r--r--sys/nfs/nfs_vnops.c8
-rw-r--r--sys/nfs/nfsm_subs.h4
-rw-r--r--sys/nfs/xdr_subs.h8
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