diff options
Diffstat (limited to 'sunrpc/rpc')
-rw-r--r-- | sunrpc/rpc/auth_unix.h | 4 | ||||
-rw-r--r-- | sunrpc/rpc/clnt.h | 21 | ||||
-rw-r--r-- | sunrpc/rpc/pmap_clnt.h | 12 | ||||
-rw-r--r-- | sunrpc/rpc/pmap_rmt.h | 4 | ||||
-rw-r--r-- | sunrpc/rpc/rpc_msg.h | 1 | ||||
-rw-r--r-- | sunrpc/rpc/xdr.h | 20 |
6 files changed, 44 insertions, 18 deletions
diff --git a/sunrpc/rpc/auth_unix.h b/sunrpc/rpc/auth_unix.h index 32d8d0aa35..d006f51f72 100644 --- a/sunrpc/rpc/auth_unix.h +++ b/sunrpc/rpc/auth_unix.h @@ -46,6 +46,10 @@ #define _RPC_AUTH_UNIX_H 1 #include <features.h> +#include <sys/types.h> +#include <rpc/types.h> +#include <rpc/auth.h> +#include <rpc/xdr.h> __BEGIN_DECLS diff --git a/sunrpc/rpc/clnt.h b/sunrpc/rpc/clnt.h index 2cabc00d64..43a599ad25 100644 --- a/sunrpc/rpc/clnt.h +++ b/sunrpc/rpc/clnt.h @@ -38,6 +38,9 @@ #define _RPC_CLNT_H 1 #include <features.h> +#include <sys/types.h> +#include <rpc/types.h> +#include <rpc/auth.h> __BEGIN_DECLS @@ -130,13 +133,13 @@ struct CLIENT { AUTH *cl_auth; /* authenticator */ struct clnt_ops { enum clnt_stat (*cl_call) __P ((CLIENT *, u_long, xdrproc_t, - caddr_t, xdrproc_t, - caddr_t, struct timeval)); + caddr_t, xdrproc_t, + caddr_t, struct timeval)); /* call remote procedure */ void (*cl_abort) __P ((void)); /* abort a call */ - void (*cl_geterr) __P ((CLIENT *, struct rpc_err *)); + void (*cl_geterr) __P ((CLIENT *, struct rpc_err *)); /* get specific error code */ - bool_t (*cl_freeres) __P ((CLIENT *, xdrproc_t, caddr_t)); + bool_t (*cl_freeres) __P ((CLIENT *, xdrproc_t, caddr_t)); /* frees results */ void (*cl_destroy) __P ((CLIENT *)); /* destroy this structure */ bool_t (*cl_control) __P ((CLIENT *, int, char *)); @@ -270,7 +273,7 @@ struct CLIENT { * u_long prog; * u_long vers; */ -extern CLIENT *clntraw_create __P ((__const u_long __prog, +extern CLIENT *clntraw_create __P ((__const u_long __prog, __const u_long __vers)); @@ -283,7 +286,7 @@ extern CLIENT *clntraw_create __P ((__const u_long __prog, * u_ong vers; -- version number * char *prot; -- protocol */ -extern CLIENT *clnt_create __P ((__const char *__host, __const u_long __prog, +extern CLIENT *clnt_create __P ((__const char *__host, __const u_long __prog, __const u_long __vers, __const char *__prot)); @@ -334,7 +337,7 @@ extern CLIENT *clntudp_bufcreate __P ((struct sockaddr_in *__raddr, int *__sockp, u_int __sendsz, u_int __recvsz)); -extern int callrpc __P ((__const char *__host, __const u_long __prognum, +extern int callrpc __P ((__const char *__host, __const u_long __prognum, __const u_long __versnum, __const u_long __procnum, __const xdrproc_t __inproc, __const char *__in, __const xdrproc_t __outproc, char *__out)); @@ -354,9 +357,9 @@ extern void clnt_perrno __P ((enum clnt_stat __num)); /* stderr */ /* * Print an English error message, given the client error code */ -extern void clnt_perror __P ((CLIENT *__clnt, __const char *__msg)); +extern void clnt_perror __P ((CLIENT *__clnt, __const char *__msg)); /* stderr */ -extern char *clnt_sperror __P ((CLIENT *__clnt, __const char *__msg)); +extern char *clnt_sperror __P ((CLIENT *__clnt, __const char *__msg)); /* string */ /* diff --git a/sunrpc/rpc/pmap_clnt.h b/sunrpc/rpc/pmap_clnt.h index 0b8d50f10f..45639e7dc4 100644 --- a/sunrpc/rpc/pmap_clnt.h +++ b/sunrpc/rpc/pmap_clnt.h @@ -38,6 +38,8 @@ #ifndef _RPC_PMAP_CLNT_H #define _RPC_PMAP_CLNT_H 1 #include <features.h> +#include <rpc/types.h> +#include <rpc/xdr.h> __BEGIN_DECLS @@ -70,23 +72,23 @@ extern bool_t pmap_set __P ((__const u_long __program, __const u_long __vers, extern bool_t pmap_unset __P ((__const u_long __program, __const u_long __vers)); extern struct pmaplist *pmap_getmaps __P ((struct sockaddr_in *__address)); extern enum clnt_stat pmap_rmtcall __P ((struct sockaddr_in *__addr, - __const u_long __prog, + __const u_long __prog, __const u_long __vers, - __const u_long __proc, + __const u_long __proc, xdrproc_t __xdrargs, caddr_t __argsp, xdrproc_t __xdrres, caddr_t __resp, struct timeval __tout, u_long *__port_ptr)); -extern enum clnt_stat clnt_broadcast __P ((__const u_long __prog, +extern enum clnt_stat clnt_broadcast __P ((__const u_long __prog, __const u_long __vers, - __const u_long __proc, + __const u_long __proc, xdrproc_t __xargs, caddr_t __argsp, xdrproc_t __xresults, caddr_t __resultsp, resultproc_t __eachresult)); extern u_short pmap_getport __P ((struct sockaddr_in *__address, - __const u_long __program, + __const u_long __program, __const u_long __version, u_int __protocol)); diff --git a/sunrpc/rpc/pmap_rmt.h b/sunrpc/rpc/pmap_rmt.h index 2e1af7e3d0..6d32045c8e 100644 --- a/sunrpc/rpc/pmap_rmt.h +++ b/sunrpc/rpc/pmap_rmt.h @@ -39,7 +39,9 @@ #define _RPC_PMAP_RMT_H 1 #include <features.h> - +#include <sys/types.h> +#include <rpc/types.h> +#include <rpc/xdr.h> __BEGIN_DECLS diff --git a/sunrpc/rpc/rpc_msg.h b/sunrpc/rpc/rpc_msg.h index 8f6b6a9da4..73996169d6 100644 --- a/sunrpc/rpc/rpc_msg.h +++ b/sunrpc/rpc/rpc_msg.h @@ -33,6 +33,7 @@ #define _RPC_MSG_H 1 #include <sys/cdefs.h> +#include <rpc/xdr.h> #include <rpc/clnt.h> /* diff --git a/sunrpc/rpc/xdr.h b/sunrpc/rpc/xdr.h index eecb1e14be..aa1c702757 100644 --- a/sunrpc/rpc/xdr.h +++ b/sunrpc/rpc/xdr.h @@ -39,6 +39,8 @@ #define __XDR_HEADER__ #include <features.h> +#include <sys/types.h> +#include <rpc/types.h> /* We need FILE. */ #include <stdio.h> @@ -91,8 +93,17 @@ enum xdr_op * This is the number of bytes per unit of external data. */ #define BYTES_PER_XDR_UNIT (4) +/* + * This only works if the above is a power of 2. But it's defined to be + * 4 by the appropriate RFCs. So it will work. And it's normally quicker + * than the old routine. + */ +#if 1 +#define RNDUP(x) (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1)) +#else /* this is the old routine */ #define RNDUP(x) ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \ * BYTES_PER_XDR_UNIT) +#endif /* * The XDR handle. @@ -108,7 +119,7 @@ struct XDR { bool_t (*x_getlong) __P ((XDR * __xdrs, long *__lp)); /* get a long from underlying stream */ - bool_t (*x_putlong) __P ((XDR * __xdrs, long *__lp)); + bool_t (*x_putlong) __P ((XDR * __xdrs, __const long *__lp)); /* put a long to " */ bool_t (*x_getbytes) __P ((XDR * __xdrs, caddr_t __addr, u_int __len)); /* get some bytes from " */ @@ -243,6 +254,9 @@ struct xdr_discrim /* * These are the "generic" xdr routines. + * None of these can have const applied because it's not possible to + * know whether the call is a read or a write to the passed parameter + * also, the XDR structure is always updated by some of these calls. */ extern bool_t xdr_void __P ((void)); extern bool_t xdr_int __P ((XDR * __xdrs, int *__ip)); @@ -294,8 +308,8 @@ extern bool_t xdr_netobj __P ((XDR * __xdrs, struct netobj * __np)); */ /* XDR using memory buffers */ -extern void xdrmem_create __P ((XDR * __xdrs, caddr_t __addr, u_int __size, - enum xdr_op __op)); +extern void xdrmem_create __P ((XDR * __xdrs, __const caddr_t __addr, + u_int __size, enum xdr_op __op)); /* XDR using stdio library */ extern void xdrstdio_create __P ((XDR * __xdrs, FILE * __file, |