3 * XDR routine for int64 (long long or struct)
12 #if defined(KERNEL) && !defined(UKERNEL)
13 #ifdef AFS_LINUX20_ENV
16 #include <sys/param.h>
17 #include <sys/systm.h>
26 * XDR afs_int64 integers
29 xdr_int64(register XDR * xdrs, afs_int64 * ulp)
31 return xdr_afs_int64(xdrs, ulp);
35 xdr_afs_int64(register XDR * xdrs, afs_int64 * ulp)
40 if (xdrs->x_op == XDR_DECODE) {
41 if (!XDR_GETINT32(xdrs, (afs_int32 *) & high))
43 if (!XDR_GETINT32(xdrs, (afs_int32 *) & low))
50 if (xdrs->x_op == XDR_ENCODE) {
51 high = (afs_int32) (*ulp >> 32);
52 low = (afs_uint32) (*ulp & 0xFFFFFFFFL);
53 if (!XDR_PUTINT32(xdrs, (afs_int32 *) & high))
55 return (XDR_PUTINT32(xdrs, (afs_int32 *) & low));
57 if (xdrs->x_op == XDR_FREE)
63 * XDR afs_int64 integers
66 xdr_uint64(register XDR * xdrs, afs_uint64 * ulp)
68 return xdr_afs_uint64(xdrs, ulp);
72 xdr_afs_uint64(register XDR * xdrs, afs_uint64 * ulp)
77 if (xdrs->x_op == XDR_DECODE) {
78 if (!XDR_GETINT32(xdrs, (afs_uint32 *) & high))
80 if (!XDR_GETINT32(xdrs, (afs_uint32 *) & low))
87 if (xdrs->x_op == XDR_ENCODE) {
88 high = (afs_uint32) (*ulp >> 32);
89 low = (afs_uint32) (*ulp & 0xFFFFFFFFL);
90 if (!XDR_PUTINT32(xdrs, (afs_uint32 *) & high))
92 return (XDR_PUTINT32(xdrs, (afs_uint32 *) & low));
94 if (xdrs->x_op == XDR_FREE)
99 #else /* AFS_64BIT_ENV */
101 * XDR afs_int64 integers
104 xdr_int64(register XDR * xdrs, afs_int64 * ulp)
106 return xdr_afs_int64(xdrs, ulp);
110 xdr_afs_int64(register XDR * xdrs, afs_int64 * ulp)
112 if (xdrs->x_op == XDR_DECODE) {
113 if (!XDR_GETINT32(xdrs, (afs_int32 *) & ulp->high))
115 return (XDR_GETINT32(xdrs, (afs_int32 *) & ulp->low));
117 if (xdrs->x_op == XDR_ENCODE) {
118 if (!XDR_PUTINT32(xdrs, (afs_int32 *) & ulp->high))
120 return (XDR_PUTINT32(xdrs, (afs_int32 *) & ulp->low));
122 if (xdrs->x_op == XDR_FREE)
128 * XDR afs_uint64 integers
131 xdr_uint64(register XDR * xdrs, afs_uint64 * ulp)
133 return xdr_afs_uint64(xdrs, ulp);
137 xdr_afs_uint64(register XDR * xdrs, afs_uint64 * ulp)
139 if (xdrs->x_op == XDR_DECODE) {
140 if (!XDR_GETINT32(xdrs, (afs_uint32 *) & ulp->high))
142 return (XDR_GETINT32(xdrs, (afs_uint32 *) & ulp->low));
144 if (xdrs->x_op == XDR_ENCODE) {
145 if (!XDR_PUTINT32(xdrs, (afs_uint32 *) & ulp->high))
147 return (XDR_PUTINT32(xdrs, (afs_uint32 *) & ulp->low));
149 if (xdrs->x_op == XDR_FREE)
153 #endif /* AFS_64BIT_ENV */