about summary refs log tree commit diff
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,