RTEMS CPU Kit with SuperCore
4.11.3
Main Page
Related Pages
Modules
+
Data Structures
Data Structures
+
Data Fields
+
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Files
File List
+
Globals
+
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Functions
_
a
b
c
d
e
f
g
i
j
l
m
n
o
p
q
r
s
t
u
v
w
+
Variables
_
b
c
d
i
r
+
Typedefs
a
b
c
d
f
h
i
m
o
p
q
r
s
t
u
w
x
+
Enumerations
b
c
d
e
h
i
m
o
p
r
s
t
w
+
Enumerator
c
i
m
p
r
s
t
w
+
Macros
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
w
mnt
data0
chrisj
rtems
releases
rtems-release.git
4.11.3
ws-rtems
rtems-4.11.3
cpukit
libnetworking
nfs
xdr_subs.h
Go to the documentation of this file.
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
9
* modification, are permitted provided that the following conditions
10
* are met:
11
* 1. Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* 2. Redistributions in binary form must reproduce the above copyright
14
* notice, this list of conditions and the following disclaimer in the
15
* documentation and/or other materials provided with the distribution.
16
* 4. Neither the name of the University nor the names of its contributors
17
* may be used to endorse or promote products derived from this software
18
* without specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30
* SUCH DAMAGE.
31
*
32
* @(#)xdr_subs.h 8.3 (Berkeley) 3/30/95
33
* $FreeBSD: src/sys/nfs/xdr_subs.h,v 1.15 2005/01/07 01:45:50 imp Exp $
34
*/
35
36
37
#ifndef _NFS_XDR_SUBS_H_
38
#define _NFS_XDR_SUBS_H_
39
40
/*
41
* Macros used for conversion to/from xdr representation by nfs...
42
* These use the MACHINE DEPENDENT routines ntohl, htonl
43
* As defined by "XDR: External Data Representation Standard" RFC1014
44
*
45
* To simplify the implementation, we use ntohl/htonl even on big-endian
46
* machines, and count on them being `#define'd away. Some of these
47
* might be slightly more efficient as quad_t copies on a big-endian,
48
* but we cannot count on their alignment anyway.
49
*/
50
51
#define fxdr_unsigned(t, v) ((t)ntohl((int32_t)(v)))
52
#define txdr_unsigned(v) (htonl((int32_t)(v)))
53
54
#define fxdr_nfsv2time(f, t) { \
55
(t)->tv_sec = ntohl(((struct nfsv2_time *)(f))->nfsv2_sec); \
56
if (((struct nfsv2_time *)(f))->nfsv2_usec != 0xffffffff) \
57
(t)->tv_nsec = 1000 * ntohl(((struct nfsv2_time *)(f))->nfsv2_usec); \
58
else \
59
(t)->tv_nsec = 0; \
60
}
61
#define txdr_nfsv2time(f, t) { \
62
((struct nfsv2_time *)(t))->nfsv2_sec = htonl((f)->tv_sec); \
63
if ((f)->tv_nsec != -1) \
64
((struct nfsv2_time *)(t))->nfsv2_usec = htonl((f)->tv_nsec / 1000); \
65
else \
66
((struct nfsv2_time *)(t))->nfsv2_usec = 0xffffffff; \
67
}
68
69
#define fxdr_nfsv3time(f, t) { \
70
(t)->tv_sec = ntohl(((struct nfsv3_time *)(f))->nfsv3_sec); \
71
(t)->tv_nsec = ntohl(((struct nfsv3_time *)(f))->nfsv3_nsec); \
72
}
73
#define txdr_nfsv3time(f, t) { \
74
((struct nfsv3_time *)(t))->nfsv3_sec = htonl((f)->tv_sec); \
75
((struct nfsv3_time *)(t))->nfsv3_nsec = htonl((f)->tv_nsec); \
76
}
77
78
#define fxdr_hyper(f) \
79
((((u_quad_t)ntohl(((u_int32_t *)(f))[0])) << 32) | \
80
(u_quad_t)(ntohl(((u_int32_t *)(f))[1])))
81
#define txdr_hyper(f, t) \
82
do { \
83
((u_int32_t *)(t))[0] = htonl((u_int32_t)((f) >> 32)); \
84
((u_int32_t *)(t))[1] = htonl((u_int32_t)((f) & 0xffffffff)); \
85
} while (0)
86
87
#endif
Generated by
1.8.13