linux-updates-20060309
[openafs.git] / src / rx / xdr_afsuuid.c
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  * 
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 /*
11  * xdr_afsuuid.c, XDR routine for built in afsUUID data type.
12  */
13
14 #include <afsconfig.h>
15 #include "afs/param.h"
16
17 RCSID
18     ("$Header$");
19
20 #if defined(KERNEL) && !defined(UKERNEL)
21 #ifdef AFS_LINUX20_ENV
22 #include "h/string.h"
23 #if 0
24 #define bzero(A, C) memset((A), 0, (C))
25 #endif
26 #else
27 #include <sys/param.h>
28 #include <sys/systm.h>
29 #endif
30 #else
31 #include <stdio.h>
32 #endif
33 #include "xdr.h"
34
35 int
36 xdr_afsUUID(XDR * xdrs, afsUUID * objp)
37 {
38     if (!xdr_afs_uint32(xdrs, &objp->time_low)) {
39         return (FALSE);
40     }
41     if (!xdr_u_short(xdrs, &objp->time_mid)) {
42         return (FALSE);
43     }
44     if (!xdr_u_short(xdrs, &objp->time_hi_and_version)) {
45         return (FALSE);
46     }
47     if (!xdr_char(xdrs, &objp->clock_seq_hi_and_reserved)) {
48         return (FALSE);
49     }
50     if (!xdr_char(xdrs, &objp->clock_seq_low)) {
51         return (FALSE);
52     }
53     /* Cast needed here because xdrproc_t officially takes 3 args :-( */
54     if (!xdr_vector(xdrs, (char *)objp->node, 6, sizeof(char), (xdrproc_t)xdr_char)) {
55         return (FALSE);
56     }
57     return (TRUE);
58 }