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>
23 * XDR afs_int64 integers
26 xdr_int64(XDR
* xdrs
, afs_int64
* ulp
)
28 return xdr_afs_int64(xdrs
, ulp
);
32 xdr_afs_int64(XDR
* xdrs
, afs_int64
* ulp
)
37 if (xdrs
->x_op
== XDR_DECODE
) {
38 if (!XDR_GETINT32(xdrs
, (afs_int32
*) & high
))
40 if (!XDR_GETINT32(xdrs
, (afs_int32
*) & low
))
47 if (xdrs
->x_op
== XDR_ENCODE
) {
48 high
= (afs_int32
) (*ulp
>> 32);
49 low
= (afs_uint32
) (*ulp
& 0xFFFFFFFFL
);
50 if (!XDR_PUTINT32(xdrs
, (afs_int32
*) & high
))
52 return (XDR_PUTINT32(xdrs
, (afs_int32
*) & low
));
54 if (xdrs
->x_op
== XDR_FREE
)
60 * XDR afs_int64 integers
63 xdr_uint64(XDR
* xdrs
, afs_uint64
* ulp
)
65 return xdr_afs_uint64(xdrs
, ulp
);
69 xdr_afs_uint64(XDR
* xdrs
, afs_uint64
* ulp
)
74 if (xdrs
->x_op
== XDR_DECODE
) {
75 if (!XDR_GETINT32(xdrs
, (afs_int32
*) & high
))
77 if (!XDR_GETINT32(xdrs
, (afs_int32
*) & low
))
84 if (xdrs
->x_op
== XDR_ENCODE
) {
85 high
= (afs_uint32
) (*ulp
>> 32);
86 low
= (afs_uint32
) (*ulp
& 0xFFFFFFFFL
);
87 if (!XDR_PUTINT32(xdrs
, (afs_int32
*) & high
))
89 return (XDR_PUTINT32(xdrs
, (afs_int32
*) & low
));
91 if (xdrs
->x_op
== XDR_FREE
)