summaryrefslogtreecommitdiff
path: root/sunrpc/rpc
diff options
context:
space:
mode:
Diffstat (limited to 'sunrpc/rpc')
-rw-r--r--sunrpc/rpc/auth_unix.h4
-rw-r--r--sunrpc/rpc/clnt.h21
-rw-r--r--sunrpc/rpc/pmap_clnt.h12
-rw-r--r--sunrpc/rpc/pmap_rmt.h4
-rw-r--r--sunrpc/rpc/rpc_msg.h1
-rw-r--r--sunrpc/rpc/xdr.h20
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,