5c1898ee3727a0ad18fd7df2fea3b8f371130dbc
[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(register XDR * xdrs, afs_int32 * ip);
20 extern bool_t xdr_afs_uint32(register XDR * xdrs, afs_uint32 * up);
21
22 /* xdr_int64.c */
23 extern bool_t xdr_int64(register XDR * xdrs, afs_int64 * ulp);
24 extern bool_t xdr_afs_int64(register XDR * xdrs, afs_int64 * ulp);
25 extern bool_t xdr_uint64(register XDR * xdrs, afs_uint64 * ulp);
26 extern bool_t xdr_afs_uint64(register XDR * xdrs, afs_uint64 * ulp);
27
28 /* xdr_rx.c */
29 extern void xdrrx_create(register XDR * xdrs, register struct rx_call *call,
30                          register enum xdr_op op);
31
32 #ifndef XDR_AFS_DECLS_ONLY
33
34 /* xdr_array.c */
35 extern bool_t xdr_array(register 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(register 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(register XDR * xdrs, long *lp);
45 extern bool_t xdr_u_long(register XDR * xdrs, u_long * ulp);
46 extern bool_t xdr_int(register XDR * xdrs, int *ip);
47 extern bool_t xdr_u_int(register XDR * xdrs, u_int * up);
48 extern bool_t xdr_char(register XDR * xdrs, char *sp);
49 extern bool_t xdr_u_char(register XDR * xdrs, u_char * usp);
50 extern bool_t xdr_short(register XDR * xdrs, short *sp);
51 extern bool_t xdr_u_short(register XDR * xdrs, u_short * usp);
52 extern bool_t xdr_bool(register XDR * xdrs, bool_t * bp);
53 extern bool_t xdr_enum(register XDR * xdrs, enum_t * ep);
54 extern bool_t xdr_opaque(register XDR * xdrs, caddr_t cp, register u_int cnt);
55 extern bool_t xdr_bytes(register XDR * xdrs, char **cpp,
56                         register u_int * sizep, u_int maxsize);
57 extern bool_t xdr_union(register XDR * xdrs, enum_t * dscmp, caddr_t unp,
58                         struct xdr_discrim *choices, xdrproc_t dfault);
59 extern bool_t xdr_string(register XDR * xdrs, char **cpp, u_int maxsize);
60 extern bool_t xdr_wrapstring(register XDR * xdrs, char **cpp);
61
62
63 /* xdr_float.c */
64 extern bool_t xdr_float(register XDR * xdrs, register float *fp);
65 extern bool_t xdr_double(register XDR * xdrs, double *dp);
66
67 /* xdr_mem.c */
68 extern void xdrmem_create(register XDR * xdrs, caddr_t addr, u_int size,
69                           enum xdr_op op);
70
71
72 /* xdr_rec.c */
73 extern void xdrrec_create(register XDR * xdrs, u_int sendsize, u_int recvsize,
74                           caddr_t tcp_handle,
75                           int (*readit) (caddr_t tcp_handle, caddr_t out_base,
76                                          int len),
77                           int (*writeit) (caddr_t tcp_handle,
78                                           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, u_int obj_size,
92                           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,
95                          register xdrproc_t xdr_elem);
96
97
98 #endif
99 #endif /* _XDR_PROTOTYPES_H */