Deleted Added
full compact
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