xdr_subs.h (47751) | xdr_subs.h (50053) |
---|---|
1/* 2 * Copyright (c) 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Rick Macklem at The University of Guelph. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 20 unchanged lines hidden (view full) --- 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * @(#)xdr_subs.h 8.3 (Berkeley) 3/30/95 | 1/* 2 * Copyright (c) 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Rick Macklem at The University of Guelph. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 20 unchanged lines hidden (view full) --- 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * @(#)xdr_subs.h 8.3 (Berkeley) 3/30/95 |
37 * $Id: xdr_subs.h,v 1.10 1998/05/31 20:09:01 peter Exp $ | 37 * $Id: xdr_subs.h,v 1.11 1999/06/05 05:35:03 peter Exp $ |
38 */ 39 40 41#ifndef _NFS_XDR_SUBS_H_ 42#define _NFS_XDR_SUBS_H_ 43 44/* 45 * Macros used for conversion to/from xdr representation by nfs... --- 4 unchanged lines hidden (view full) --- 50 * machines, and count on them being `#define'd away. Some of these 51 * might be slightly more efficient as quad_t copies on a big-endian, 52 * but we cannot count on their alignment anyway. 53 */ 54 55#define fxdr_unsigned(t, v) ((t)ntohl((int32_t)(v))) 56#define txdr_unsigned(v) (htonl((int32_t)(v))) 57 | 38 */ 39 40 41#ifndef _NFS_XDR_SUBS_H_ 42#define _NFS_XDR_SUBS_H_ 43 44/* 45 * Macros used for conversion to/from xdr representation by nfs... --- 4 unchanged lines hidden (view full) --- 50 * machines, and count on them being `#define'd away. Some of these 51 * might be slightly more efficient as quad_t copies on a big-endian, 52 * but we cannot count on their alignment anyway. 53 */ 54 55#define fxdr_unsigned(t, v) ((t)ntohl((int32_t)(v))) 56#define txdr_unsigned(v) (htonl((int32_t)(v))) 57 |
58#define fxdr_nfsv2time(f, t) { \ | 58#define fxdr_nfsv2time(f, t) \ 59do { \ |
59 (t)->tv_sec = ntohl(((struct nfsv2_time *)(f))->nfsv2_sec); \ 60 if (((struct nfsv2_time *)(f))->nfsv2_usec != 0xffffffff) \ 61 (t)->tv_nsec = 1000 * ntohl(((struct nfsv2_time *)(f))->nfsv2_usec); \ 62 else \ 63 (t)->tv_nsec = 0; \ | 60 (t)->tv_sec = ntohl(((struct nfsv2_time *)(f))->nfsv2_sec); \ 61 if (((struct nfsv2_time *)(f))->nfsv2_usec != 0xffffffff) \ 62 (t)->tv_nsec = 1000 * ntohl(((struct nfsv2_time *)(f))->nfsv2_usec); \ 63 else \ 64 (t)->tv_nsec = 0; \ |
64} 65#define txdr_nfsv2time(f, t) { \ | 65} while (0) 66#define txdr_nfsv2time(f, t) \ 67do { \ |
66 ((struct nfsv2_time *)(t))->nfsv2_sec = htonl((f)->tv_sec); \ 67 if ((f)->tv_nsec != -1) \ 68 ((struct nfsv2_time *)(t))->nfsv2_usec = htonl((f)->tv_nsec / 1000); \ 69 else \ 70 ((struct nfsv2_time *)(t))->nfsv2_usec = 0xffffffff; \ | 68 ((struct nfsv2_time *)(t))->nfsv2_sec = htonl((f)->tv_sec); \ 69 if ((f)->tv_nsec != -1) \ 70 ((struct nfsv2_time *)(t))->nfsv2_usec = htonl((f)->tv_nsec / 1000); \ 71 else \ 72 ((struct nfsv2_time *)(t))->nfsv2_usec = 0xffffffff; \ |
71} | 73} while (0) |
72 | 74 |
73#define fxdr_nfsv3time(f, t) { \ | 75#define fxdr_nfsv3time(f, t) \ 76do { \ |
74 (t)->tv_sec = ntohl(((struct nfsv3_time *)(f))->nfsv3_sec); \ 75 (t)->tv_nsec = ntohl(((struct nfsv3_time *)(f))->nfsv3_nsec); \ | 77 (t)->tv_sec = ntohl(((struct nfsv3_time *)(f))->nfsv3_sec); \ 78 (t)->tv_nsec = ntohl(((struct nfsv3_time *)(f))->nfsv3_nsec); \ |
76} 77#define txdr_nfsv3time(f, t) { \ | 79} while (0) 80#define txdr_nfsv3time(f, t) \ 81do { \ |
78 ((struct nfsv3_time *)(t))->nfsv3_sec = htonl((f)->tv_sec); \ 79 ((struct nfsv3_time *)(t))->nfsv3_nsec = htonl((f)->tv_nsec); \ | 82 ((struct nfsv3_time *)(t))->nfsv3_sec = htonl((f)->tv_sec); \ 83 ((struct nfsv3_time *)(t))->nfsv3_nsec = htonl((f)->tv_nsec); \ |
80} | 84} while (0) |
81 82#define fxdr_hyper(f) \ 83 ((((u_quad_t)ntohl(((u_int32_t *)(f))[0])) << 32) | \ 84 (u_quad_t)(ntohl(((u_int32_t *)(f))[1]))) | 85 86#define fxdr_hyper(f) \ 87 ((((u_quad_t)ntohl(((u_int32_t *)(f))[0])) << 32) | \ 88 (u_quad_t)(ntohl(((u_int32_t *)(f))[1]))) |
85#define txdr_hyper(f, t) { \ | 89#define txdr_hyper(f, t) \ 90do { \ |
86 ((u_int32_t *)(t))[0] = htonl((u_int32_t)((f) >> 32)); \ 87 ((u_int32_t *)(t))[1] = htonl((u_int32_t)((f) & 0xffffffff)); \ | 91 ((u_int32_t *)(t))[0] = htonl((u_int32_t)((f) >> 32)); \ 92 ((u_int32_t *)(t))[1] = htonl((u_int32_t)((f) & 0xffffffff)); \ |
88} | 93} while (0) |
89 90#endif | 94 95#endif |