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>
23 #if defined(KERNEL) && !defined(UKERNEL)
25 #include <afs/longc_procs.h>
31 * XDR afs_int64 integers
34 xdr_int64(register XDR * xdrs, afs_int64 * ulp)
36 return xdr_afs_int64(xdrs, ulp);
40 xdr_afs_int64(register XDR * xdrs, afs_int64 * ulp)
45 if (xdrs->x_op == XDR_DECODE) {
46 if (!XDR_GETINT32(xdrs, (afs_int32 *) & high))
48 if (!XDR_GETINT32(xdrs, (afs_int32 *) & low))
55 if (xdrs->x_op == XDR_ENCODE) {
56 high = (afs_int32)(*ulp >> 32);
57 low = (afs_uint32)(*ulp & 0xFFFFFFFFL);
58 if (!XDR_PUTINT32(xdrs, (afs_int32 *) & high))
60 return (XDR_PUTINT32(xdrs, (afs_int32 *) & low));
62 if (xdrs->x_op == XDR_FREE)
68 * XDR afs_int64 integers
71 xdr_uint64(register XDR * xdrs, afs_uint64 * ulp)
73 return xdr_afs_uint64(xdrs, ulp);
77 xdr_afs_uint64(register XDR * xdrs, afs_uint64 * ulp)
82 if (xdrs->x_op == XDR_DECODE) {
83 if (!XDR_GETINT32(xdrs, (afs_uint32 *) & high))
85 if (!XDR_GETINT32(xdrs, (afs_uint32 *) & low))
92 if (xdrs->x_op == XDR_ENCODE) {
93 high = (afs_uint32)(*ulp >> 32);
94 low = (afs_uint32)(*ulp & 0xFFFFFFFFL);
95 if (!XDR_PUTINT32(xdrs, (afs_uint32 *) & high))
97 return (XDR_PUTINT32(xdrs, (afs_uint32 *) & low));
99 if (xdrs->x_op == XDR_FREE)
104 #else /* AFS_64BIT_ENV */
106 * XDR afs_int64 integers
109 xdr_int64(register XDR * xdrs, afs_int64 * ulp)
111 return xdr_afs_int64(xdrs, ulp);
115 xdr_afs_int64(register XDR * xdrs, afs_int64 * ulp)
117 if (xdrs->x_op == XDR_DECODE) {
118 if (!XDR_GETINT32(xdrs, (afs_int32 *) & ulp->high))
120 return (XDR_GETINT32(xdrs, (afs_int32 *) & ulp->low));
122 if (xdrs->x_op == XDR_ENCODE) {
123 if (!XDR_PUTINT32(xdrs, (afs_int32 *) & ulp->high))
125 return (XDR_PUTINT32(xdrs, (afs_int32 *) & ulp->low));
127 if (xdrs->x_op == XDR_FREE)
133 * XDR afs_uint64 integers
136 xdr_uint64(register XDR * xdrs, afs_uint64 * ulp)
138 return xdr_afs_uint64(xdrs, ulp);
142 xdr_afs_uint64(register XDR * xdrs, afs_uint64 * ulp)
144 if (xdrs->x_op == XDR_DECODE) {
145 if (!XDR_GETINT32(xdrs, (afs_uint32 *) & ulp->high))
147 return (XDR_GETINT32(xdrs, (afs_uint32 *) & ulp->low));
149 if (xdrs->x_op == XDR_ENCODE) {
150 if (!XDR_PUTINT32(xdrs, (afs_uint32 *) & ulp->high))
152 return (XDR_PUTINT32(xdrs, (afs_uint32 *) & ulp->low));
154 if (xdrs->x_op == XDR_FREE)
158 #endif /* AFS_64BIT_ENV */