RX: Avoid retrying calls on busy channels
[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 struct rx_call;
14
15 /* xdr_afsuuid.c */
16 extern int xdr_afsUUID(XDR * xdrs, afsUUID * objp);
17
18 /* xdr_int32.c */
19 extern bool_t xdr_afs_int32(XDR * xdrs, afs_int32 * ip);
20 extern bool_t xdr_afs_uint32(XDR * xdrs, afs_uint32 * up);
21
22 /* xdr_int64.c */
23 extern bool_t xdr_int64(XDR * xdrs, afs_int64 * ulp);
24 extern bool_t xdr_afs_int64(XDR * xdrs, afs_int64 * ulp);
25 extern bool_t xdr_uint64(XDR * xdrs, afs_uint64 * ulp);
26 extern bool_t xdr_afs_uint64(XDR * xdrs, afs_uint64 * ulp);
27
28 /* xdr_rx.c */
29 extern void xdrrx_create(XDR * xdrs, struct rx_call *call,
30                          enum xdr_op op);
31
32 #ifndef XDR_AFS_DECLS_ONLY
33
34 /* xdr_array.c */
35 extern bool_t xdr_array(XDR * xdrs, caddr_t * addrp, u_int * sizep,
36                         u_int maxsize, u_int elsize, xdrproc_t elproc);
37
38 /* xdr_arrayn.c */
39 extern bool_t xdr_arrayN(XDR * xdrs, caddr_t * addrp, u_int * sizep,
40                          u_int maxsize, u_int elsize, xdrproc_t elproc);
41
42 /* xdr.c */
43 extern bool_t xdr_void(void);
44 extern bool_t xdr_long(XDR * xdrs, long *lp);
45 extern bool_t xdr_u_long(XDR * xdrs, u_long * ulp);
46 extern bool_t xdr_int(XDR * xdrs, int *ip);
47 extern bool_t xdr_u_int(XDR * xdrs, u_int * up);
48 extern bool_t xdr_char(XDR * xdrs, char *sp);
49 extern bool_t xdr_u_char(XDR * xdrs, u_char * usp);
50 extern bool_t xdr_short(XDR * xdrs, short *sp);
51 extern bool_t xdr_u_short(XDR * xdrs, u_short * usp);
52 extern bool_t xdr_bool(XDR * xdrs, bool_t * bp);
53 extern bool_t xdr_enum(XDR * xdrs, enum_t * ep);
54 extern bool_t xdr_opaque(XDR * xdrs, caddr_t cp, u_int cnt);
55 extern bool_t xdr_bytes(XDR * xdrs, char **cpp,
56                         u_int * sizep, u_int maxsize);
57 extern bool_t xdr_union(XDR * xdrs, enum_t * dscmp, caddr_t unp,
58                         struct xdr_discrim *choices, xdrproc_t dfault);
59 extern bool_t xdr_string(XDR * xdrs, char **cpp, u_int maxsize);
60 extern bool_t xdr_wrapstring(XDR * xdrs, char **cpp);
61 extern void * xdr_alloc(afs_int32 size);
62 extern void   xdr_free(xdrproc_t proc, void *obj);
63
64
65 /* xdr_float.c */
66 extern bool_t xdr_float(XDR * xdrs, float *fp);
67 extern bool_t xdr_double(XDR * xdrs, double *dp);
68
69 /* xdr_len.c */
70 extern void xdrlen_create(XDR *xdrs);
71
72 /* xdr_mem.c */
73 extern void xdrmem_create(XDR * xdrs, caddr_t addr, u_int size,
74                           enum xdr_op op);
75
76
77 /* xdr_rec.c */
78 extern void xdrrec_create(XDR * xdrs, u_int sendsize, u_int recvsize,
79                           caddr_t tcp_handle,
80                           int (*readit) (caddr_t tcp_handle, caddr_t out_base,
81                                          int len),
82                           int (*writeit) (caddr_t tcp_handle,
83                                           caddr_t out_base, int len));
84 extern bool_t xdrrec_skiprecord(XDR * xdrs);
85 extern bool_t xdrrec_eof(XDR * xdrs);
86 extern bool_t xdrrec_endofrecord(XDR * xdrs, bool_t sendnow);
87
88
89 /* xdr_refernce.c */
90
91 extern bool_t xdr_reference(XDR *xdrs, caddr_t *pp, u_int size,
92                             xdrproc_t proc);
93
94 /* xdr_stdio.c */
95
96
97 /* xdr_update.c */
98 extern bool_t xdr_pointer(XDR * xdrs, char **objpp, u_int obj_size,
99                           xdrproc_t xdr_obj);
100 extern bool_t xdr_vector(XDR * xdrs, char *basep,
101                          u_int nelem, u_int elemsize,
102                          xdrproc_t xdr_elem);
103
104
105 #endif
106
107 #ifndef osi_alloc
108 extern char *osi_alloc(afs_int32 x);
109 #endif
110 #ifndef osi_free
111 extern int osi_free(char *x, afs_int32 size);
112 #endif
113 #endif /* _XDR_PROTOTYPES_H */