3 * XDR routine for int64 (long long or struct)
10 #if defined(KERNEL) && !defined(UKERNEL)
11 #ifdef AFS_LINUX20_ENV
14 #include <sys/param.h>
15 #include <sys/systm.h>
24 * XDR afs_int64 integers
27 xdr_int64(XDR * xdrs, afs_int64 * ulp)
29 return xdr_afs_int64(xdrs, ulp);
33 xdr_afs_int64(XDR * xdrs, afs_int64 * ulp)
38 if (xdrs->x_op == XDR_DECODE) {
39 if (!XDR_GETINT32(xdrs, (afs_int32 *) & high))
41 if (!XDR_GETINT32(xdrs, (afs_int32 *) & low))
48 if (xdrs->x_op == XDR_ENCODE) {
49 high = (afs_int32) (*ulp >> 32);
50 low = (afs_uint32) (*ulp & 0xFFFFFFFFL);
51 if (!XDR_PUTINT32(xdrs, (afs_int32 *) & high))
53 return (XDR_PUTINT32(xdrs, (afs_int32 *) & low));
55 if (xdrs->x_op == XDR_FREE)
61 * XDR afs_int64 integers
64 xdr_uint64(XDR * xdrs, afs_uint64 * ulp)
66 return xdr_afs_uint64(xdrs, ulp);
70 xdr_afs_uint64(XDR * xdrs, afs_uint64 * ulp)
75 if (xdrs->x_op == XDR_DECODE) {
76 if (!XDR_GETINT32(xdrs, (afs_int32 *) & high))
78 if (!XDR_GETINT32(xdrs, (afs_int32 *) & low))
85 if (xdrs->x_op == XDR_ENCODE) {
86 high = (afs_uint32) (*ulp >> 32);
87 low = (afs_uint32) (*ulp & 0xFFFFFFFFL);
88 if (!XDR_PUTINT32(xdrs, (afs_int32 *) & high))
90 return (XDR_PUTINT32(xdrs, (afs_int32 *) & low));
92 if (xdrs->x_op == XDR_FREE)
97 #else /* AFS_64BIT_ENV */
99 * XDR afs_int64 integers
102 xdr_int64(XDR * xdrs, afs_int64 * ulp)
104 return xdr_afs_int64(xdrs, ulp);
108 xdr_afs_int64(XDR * xdrs, afs_int64 * ulp)
110 if (xdrs->x_op == XDR_DECODE) {
111 if (!XDR_GETINT32(xdrs, (afs_int32 *) & ulp->high))
113 return (XDR_GETINT32(xdrs, (afs_int32 *) & ulp->low));
115 if (xdrs->x_op == XDR_ENCODE) {
116 if (!XDR_PUTINT32(xdrs, (afs_int32 *) & ulp->high))
118 return (XDR_PUTINT32(xdrs, (afs_int32 *) & ulp->low));
120 if (xdrs->x_op == XDR_FREE)
126 * XDR afs_uint64 integers
129 xdr_uint64(XDR * xdrs, afs_uint64 * ulp)
131 return xdr_afs_uint64(xdrs, ulp);
135 xdr_afs_uint64(XDR * xdrs, afs_uint64 * ulp)
137 if (xdrs->x_op == XDR_DECODE) {
138 if (!XDR_GETINT32(xdrs, (afs_uint32 *) & ulp->high))
140 return (XDR_GETINT32(xdrs, (afs_uint32 *) & ulp->low));
142 if (xdrs->x_op == XDR_ENCODE) {
143 if (!XDR_PUTINT32(xdrs, (afs_uint32 *) & ulp->high))
145 return (XDR_PUTINT32(xdrs, (afs_uint32 *) & ulp->low));
147 if (xdrs->x_op == XDR_FREE)
151 #endif /* AFS_64BIT_ENV */