fix-netreceive-memleak-20030130
[openafs.git] / src / rx / xdr_prototypes.h
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 #ifndef _XDR_PROTOTYPES_H
11 #define _XDR_PROTOTYPES_H
12
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"
16 #include "rx/rx.h"
17 #else
18 #include "rx/rx.h"
19 #endif
20
21 /* xdr_afsuuid.c */
22 extern int xdr_afsUUID(XDR *xdrs, afsUUID *objp);
23
24 /* xdr_int32.c */
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);
27
28 /* xdr_int64.c */
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);
33
34 /* xdr_rx.c */
35 extern void xdrrx_create(register XDR *xdrs, register struct rx_call *call, register enum xdr_op op);
36
37 #ifndef XDR_AFS_DECLS_ONLY
38
39 /* xdr_array.c */
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);
42
43 /* xdr_arrayn.c */
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);
46
47 /* xdr.c */
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);
65
66
67 /* xdr_float.c */
68 extern bool_t xdr_float(register XDR *xdrs, register float *fp);
69 extern bool_t xdr_double(register XDR *xdrs, double *dp);
70
71 /* xdr_mem.c */
72 extern void xdrmem_create(register XDR *xdrs, caddr_t addr, u_int size, enum xdr_op op);
73
74
75 /* xdr_rec.c */
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);
82
83
84 /* xdr_refernce.c */
85
86
87 /* xdr_stdio.c */
88
89
90 /* xdr_update.c */
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);
95
96
97 #endif
98 #endif /* _XDR_PROTOTYPES_H */