2 * Copyright 2000, International Business Machines Corporation and others.
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
10 #ifndef _XDR_PROTOTYPES_H
11 #define _XDR_PROTOTYPES_H
13 /* I don't like this, but some of these defs depend on rx.h */
14 #if defined(KERNEL) && defined(UKERNEL)
15 #include "../afs/sysincludes.h"
22 extern int xdr_afsUUID(XDR *xdrs, afsUUID *objp);
25 extern bool_t xdr_afs_int32(register XDR *xdrs, afs_int32 *ip);
26 extern bool_t xdr_afs_uint32(register XDR *xdrs, afs_uint32 *up);
29 extern bool_t xdr_int64(register XDR *xdrs, afs_int64 *ulp);
30 extern bool_t xdr_afs_int64(register XDR *xdrs, afs_int64 *ulp);
31 extern bool_t xdr_uint64(register XDR *xdrs, afs_uint64 *ulp);
32 extern bool_t xdr_afs_uint64(register XDR *xdrs, afs_uint64 *ulp);
35 extern void xdrrx_create(register XDR *xdrs, register struct rx_call *call, register enum xdr_op op);
37 #ifndef XDR_AFS_DECLS_ONLY
40 extern bool_t xdr_array(register XDR *xdrs, caddr_t *addrp, u_int *sizep,
41 u_int maxsize, u_int elsize, xdrproc_t elproc);
44 extern bool_t xdr_arrayN(register XDR *xdrs, caddr_t *addrp, u_int *sizep,
45 u_int maxsize, u_int elsize, xdrproc_t elproc);
48 extern bool_t xdr_void(void);
49 extern bool_t xdr_long(register XDR *xdrs, long *lp);
50 extern bool_t xdr_u_long(register XDR *xdrs, u_long *ulp);
51 extern bool_t xdr_int(register XDR *xdrs, int *ip);
52 extern bool_t xdr_u_int(register XDR *xdrs, u_int *up);
53 extern bool_t xdr_char(register XDR *xdrs, char *sp);
54 extern bool_t xdr_u_char(register XDR *xdrs, u_char *usp);
55 extern bool_t xdr_short(register XDR *xdrs, short *sp);
56 extern bool_t xdr_u_short(register XDR *xdrs, u_short *usp);
57 extern bool_t xdr_bool(register XDR *xdrs, bool_t *bp);
58 extern bool_t xdr_enum(register XDR *xdrs, enum_t *ep);
59 extern bool_t xdr_opaque(register XDR *xdrs, caddr_t cp, register u_int cnt);
60 extern bool_t xdr_bytes(register XDR *xdrs, char **cpp, register u_int *sizep, u_int maxsize);
61 extern bool_t xdr_union(register XDR *xdrs, enum_t *dscmp, caddr_t unp,
62 struct xdr_discrim *choices, xdrproc_t dfault);
63 extern bool_t xdr_string(register XDR *xdrs, char **cpp, u_int maxsize);
64 extern bool_t xdr_wrapstring(register XDR *xdrs, char **cpp);
68 extern bool_t xdr_float(register XDR *xdrs, register float *fp);
69 extern bool_t xdr_double(register XDR *xdrs, double *dp);
72 extern void xdrmem_create(register XDR *xdrs, caddr_t addr, u_int size, enum xdr_op op);
76 extern void xdrrec_create(register XDR *xdrs, u_int sendsize, u_int recvsize, caddr_t tcp_handle,
77 int (*readit)(caddr_t tcp_handle, caddr_t out_base, int len),
78 int (*writeit)(caddr_t tcp_handle, caddr_t out_base, int len));
79 extern bool_t xdrrec_skiprecord(XDR *xdrs);
80 extern bool_t xdrrec_eof(XDR *xdrs);
81 extern bool_t xdrrec_endofrecord(XDR *xdrs, bool_t sendnow);
91 extern bool_t xdr_pointer(register XDR *xdrs, char **objpp,
92 u_int obj_size, xdrproc_t xdr_obj);
93 extern bool_t xdr_vector(register XDR *xdrs, register char *basep,
94 register u_int nelem, register u_int elemsize, register xdrproc_t xdr_elem);
98 #endif /* _XDR_PROTOTYPES_H */