diff options
Diffstat (limited to 'sunrpc')
-rw-r--r-- | sunrpc/authuxprot.c | 1 | ||||
-rw-r--r-- | sunrpc/pmap_rmt.c | 2 | ||||
-rw-r--r-- | sunrpc/proto.h | 8 | ||||
-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 | ||||
-rw-r--r-- | sunrpc/rpc_cout.c | 75 | ||||
-rw-r--r-- | sunrpc/rpc_parse.h | 6 | ||||
-rw-r--r-- | sunrpc/rpc_svcout.c | 14 | ||||
-rw-r--r-- | sunrpc/xdr.c | 15 | ||||
-rw-r--r-- | sunrpc/xdr_float.c | 8 | ||||
-rw-r--r-- | sunrpc/xdr_mem.c | 53 | ||||
-rw-r--r-- | sunrpc/xdr_rec.c | 8 | ||||
-rw-r--r-- | sunrpc/xdr_stdio.c | 10 |
17 files changed, 149 insertions, 113 deletions
diff --git a/sunrpc/authuxprot.c b/sunrpc/authuxprot.c index d172ebc..9f0242f 100644 --- a/sunrpc/authuxprot.c +++ b/sunrpc/authuxprot.c @@ -46,6 +46,7 @@ static char sccsid[] = "@(#)authunix_prot.c 1.15 87/08/11 Copyr 1984 Sun Micro"; /* * XDR for unix authentication parameters. + * Unfortunately, none of these can be declared const. */ bool_t xdr_authunix_parms (XDR * xdrs, struct authunix_parms *p) diff --git a/sunrpc/pmap_rmt.c b/sunrpc/pmap_rmt.c index c3667d4..8ae93b8 100644 --- a/sunrpc/pmap_rmt.c +++ b/sunrpc/pmap_rmt.c @@ -370,7 +370,7 @@ clnt_broadcast (prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult) stat = RPC_CANTRECV; goto done_broad; } - if (inlen < sizeof (u_long)) + if ((size_t) inlen < sizeof (u_long)) goto recv_again; /* * see if reply transaction id matches sent id. diff --git a/sunrpc/proto.h b/sunrpc/proto.h index ed010f8..6d2747f 100644 --- a/sunrpc/proto.h +++ b/sunrpc/proto.h @@ -1,7 +1,7 @@ /****** rpc_clntout.c ******/ void write_stubs(void); -void printarglist(proc_list *proc, +void printarglist(proc_list *proc, const char *addargname, const char *addargtype); /****** rpc_cout.c ******/ @@ -15,9 +15,9 @@ void emit_single_in_line(declaration *decl, int flag, relation rel); void print_datadef(definition *def); void print_funcdef(definition *def); void pxdrfuncdecl(const char *name, int pointerp); -void pprocdef(proc_list *proc, version_list *vp, +void pprocdef(proc_list *proc, version_list *vp, const char *addargtype, int server_p, int mode); -void pdeclaration(const char *name, declaration *dec, int tab, +void pdeclaration(const char *name, declaration *dec, int tab, const char *separator); /****** rpc_main.c ******/ @@ -36,7 +36,7 @@ void write_sample_clnt_main(void); /* see rpc_scan.h */ /****** rpc_svcout.c ******/ -int nullproc(proc_list *proc); +int nullproc(const proc_list *proc); void write_svc_aux(int nomain); void write_msg_out(void); diff --git a/sunrpc/rpc/auth_unix.h b/sunrpc/rpc/auth_unix.h index 32d8d0a..d006f51 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 2cabc00..43a599a 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 0b8d50f..45639e7 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 2e1af7e..6d32045 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 8f6b6a9..7399616 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 eecb1e1..aa1c702 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, diff --git a/sunrpc/rpc_cout.c b/sunrpc/rpc_cout.c index 77319d9..ab3b24d 100644 --- a/sunrpc/rpc_cout.c +++ b/sunrpc/rpc_cout.c @@ -45,10 +45,10 @@ char cout_rcsid[] = #include "proto.h" static void emit_enum(definition *def); -static void emit_program(definition *def); -static void emit_union(definition *def); +static void emit_program(const definition *def); +static void emit_union(const definition *def); static void emit_struct(definition *def); -static void emit_typedef(definition *def); +static void emit_typedef(const definition *def); static int findtype(const definition *def, const char *type); static int undefined(const char *type); static void print_generic_header(const char *procname, int pointerp); @@ -59,8 +59,8 @@ static void print_ifclose(int indent); static void print_ifstat(int indent, const char *prefix, const char *type, relation rel, const char *amax, const char *objname, const char *name); -static void print_stat(int indent, declaration *dec); -static void print_header(definition *def); +static void print_stat(int indent, const declaration *dec); +static void print_header(const definition *def); static void print_trailer(void); static char *upcase(const char *str); @@ -77,15 +77,16 @@ emit(definition *def) emit_program(def); return; } - if(def->def_kind == DEF_TYPEDEF) + if (def->def_kind == DEF_TYPEDEF) { /* now we need to handle declarations like - struct typedef foo foo; - since we don't want this to be expanded into 2 calls to xdr_foo */ + struct typedef foo foo; + since we don't want this to be expanded + into 2 calls to xdr_foo */ - if(strcmp(def->def.ty.old_type,def->def_name)==0) - return; - }; + if (strcmp(def->def.ty.old_type,def->def_name)==0) + return; + }; print_header(def); switch (def->def_kind) { @@ -102,7 +103,8 @@ emit(definition *def) emit_typedef(def); break; default: - /* can't happen */ + /* can't happen */ + break; } print_trailer(); } @@ -110,7 +112,6 @@ emit(definition *def) static int findtype(const definition *def, const char *type) { - if (def->def_kind == DEF_PROGRAM || def->def_kind == DEF_CONST) { return (0); } else { @@ -122,10 +123,7 @@ static int undefined(const char *type) { definition *def; - def = (definition *) FINDVAL(defined, type, findtype); - - return (def == NULL); } @@ -153,33 +151,25 @@ print_generic_header(const char *procname, int pointerp) } static void -print_header(definition *def) +print_header(const definition *def) { + print_generic_header(def->def_name, + def->def_kind != DEF_TYPEDEF || + !isvectordef(def->def.ty.old_type, + def->def.ty.rel)); -/* - decl_list *dl; - bas_type *ptr; - int i; - */ - - print_generic_header( def->def_name, - def->def_kind != DEF_TYPEDEF || - !isvectordef(def->def.ty.old_type, def->def.ty.rel)); - - /* Now add Inline support */ - - - if(inlineflag == 0 ) - return; - /*May cause lint to complain. but ... */ -f_print(fout, "\t register long *buf;\n\n"); + /* Now add Inline support */ + if(inlineflag == 0 ) + return; + /*May cause lint to complain. but ... */ + f_print(fout, "\t register long *buf;\n\n"); } static void -print_prog_header(proc_list *plist) +print_prog_header(const proc_list *plist) { - print_generic_header( plist->args.argname, 1 ); + print_generic_header(plist->args.argname, 1 ); } static void @@ -308,7 +298,7 @@ emit_enum(definition *def) } static void -emit_program(definition *def) +emit_program(const definition *def) { decl_list *dl; version_list *vlist; @@ -327,7 +317,7 @@ emit_program(definition *def) } static void -emit_union(definition *def) +emit_union(const definition *def) { declaration *dflt; case_list *cl; @@ -393,6 +383,8 @@ emit_union(definition *def) f_print(fout, "\t}\n"); } +/* this may be const. i haven't traced this one through yet. */ + static void emit_struct(definition *def) { @@ -446,9 +438,6 @@ emit_struct(definition *def) return; }; - - - flag=PUT; for(j=0; j<2; j++){ @@ -605,7 +594,7 @@ emit_struct(definition *def) static void -emit_typedef(definition *def) +emit_typedef(const definition *def) { const char *prefix = def->def.ty.old_prefix; const char *type = def->def.ty.old_type; @@ -617,7 +606,7 @@ emit_typedef(definition *def) } static void -print_stat(int indent, declaration *dec) +print_stat(int indent, const declaration *dec) { const char *prefix = dec->prefix; const char *type = dec->type; diff --git a/sunrpc/rpc_parse.h b/sunrpc/rpc_parse.h index 07c1f67..8d48c85 100644 --- a/sunrpc/rpc_parse.h +++ b/sunrpc/rpc_parse.h @@ -31,7 +31,7 @@ /* @(#)rpc_parse.h 1.3 90/08/29 (C) 1987 SMI */ /* - * rpc_parse.h, Definitions for the RPCL parser + * rpc_parse.h, Definitions for the RPCL parser */ enum defkind { @@ -50,7 +50,7 @@ enum relation { REL_VECTOR, /* fixed length array */ REL_ARRAY, /* variable length array */ REL_POINTER, /* pointer */ - REL_ALIAS, /* simple */ + REL_ALIAS /* simple */ }; typedef enum relation relation; @@ -113,7 +113,7 @@ struct arg_list { const char *argname; /* name of struct for arg*/ decl_list *decls; }; - + typedef struct arg_list arg_list; struct proc_list { diff --git a/sunrpc/rpc_svcout.c b/sunrpc/rpc_svcout.c index d19b9b4..75eb695 100644 --- a/sunrpc/rpc_svcout.c +++ b/sunrpc/rpc_svcout.c @@ -51,10 +51,10 @@ static const char ROUTINE[] = "local"; char _errbuf[256]; /* For all messages */ -static void internal_proctype (proc_list * plist); +static void internal_proctype (const proc_list * plist); static void p_xdrfunc (const char *rname, const char *typename); -static void write_real_program (definition * def); -static void write_program (definition * def, const char *storage); +static void write_real_program (const definition * def); +static void write_program (const definition * def, const char *storage); static void printerr (const char *err, const char *transp); static void printif (const char *proc, const char *transp, const char *prefix, const char *arg); @@ -78,7 +78,7 @@ p_xdrfunc (const char *rname, const char *typename) } void -internal_proctype (proc_list * plist) +internal_proctype (const proc_list * plist) { f_print (fout, "static "); ptype (plist->res_prefix, plist->res_type, 1); @@ -321,7 +321,7 @@ write_programs (const char *storage) Unpacks single user argument of printmsg_1 to call-by-value format expected by printmsg_1. */ static void -write_real_program (definition * def) +write_real_program (const definition * def) { version_list *vp; proc_list *proc; @@ -388,7 +388,7 @@ write_real_program (definition * def) } static void -write_program (definition * def, const char *storage) +write_program (const definition * def, const char *storage) { version_list *vp; proc_list *proc; @@ -566,7 +566,7 @@ printif (const char *proc, const char *transp, const char *prefix, } int -nullproc (proc_list * proc) +nullproc (const proc_list * proc) { for (; proc != NULL; proc = proc->next) { diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c index d666119..becc59b 100644 --- a/sunrpc/xdr.c +++ b/sunrpc/xdr.c @@ -93,10 +93,6 @@ xdr_int (xdrs, ip) int *ip; { -#ifdef lint - (void) (xdr_short (xdrs, (short *) ip)); - return (xdr_long (xdrs, (long *) ip)); -#else #if INT_MAX < LONG_MAX long l; @@ -123,7 +119,6 @@ xdr_int (xdrs, ip) #else #error unexpected integer sizes in_xdr_int() #endif -#endif } /* @@ -134,10 +129,6 @@ xdr_u_int (xdrs, up) XDR *xdrs; u_int *up; { -#ifdef lint - (void) (xdr_short (xdrs, (short *) up)); - return (xdr_u_long (xdrs, (u_long *) up)); -#else #if UINT_MAX < ULONG_MAX u_long l; @@ -164,7 +155,6 @@ xdr_u_int (xdrs, up) #else #error unexpected integer sizes in_xdr_u_int() #endif -#endif } /* @@ -349,7 +339,6 @@ xdr_enum (xdrs, ep) XDR *xdrs; enum_t *ep; { -#ifndef lint enum sizecheck { SIZEVAL @@ -392,10 +381,6 @@ xdr_enum (xdrs, ep) { return FALSE; } -#else /* lint */ - (void) (xdr_short (xdrs, (short *) ep)); - return xdr_long (xdrs, (long *) ep); -#endif /* lint */ } /* diff --git a/sunrpc/xdr_float.c b/sunrpc/xdr_float.c index be5a07d..2e1e37f 100644 --- a/sunrpc/xdr_float.c +++ b/sunrpc/xdr_float.c @@ -87,8 +87,8 @@ static struct sgl_limits { bool_t xdr_float(xdrs, fp) - register XDR *xdrs; - register float *fp; + XDR *xdrs; + float *fp; { #ifdef vax struct ieee_single is; @@ -207,8 +207,8 @@ static struct dbl_limits { bool_t xdr_double(xdrs, dp) - register XDR *xdrs; - double *dp; + XDR *xdrs; + double *dp; { #ifdef vax struct ieee_double id; diff --git a/sunrpc/xdr_mem.c b/sunrpc/xdr_mem.c index 481a866..8e88e41 100644 --- a/sunrpc/xdr_mem.c +++ b/sunrpc/xdr_mem.c @@ -47,13 +47,13 @@ static char sccsid[] = "@(#)xdr_mem.c 1.19 87/08/11 Copyr 1984 Sun Micro"; #include <rpc/rpc.h> static bool_t xdrmem_getlong (XDR *, long *); -static bool_t xdrmem_putlong (XDR *, long *); +static bool_t xdrmem_putlong (XDR *, const long *); static bool_t xdrmem_getbytes (XDR *, caddr_t, u_int); -static bool_t xdrmem_putbytes (XDR *, caddr_t, u_int); -static u_int xdrmem_getpos (XDR *); +static bool_t xdrmem_putbytes (XDR *, const caddr_t, u_int); +static u_int xdrmem_getpos (const XDR *); static bool_t xdrmem_setpos (XDR *, u_int); static long *xdrmem_inline (XDR *, int); -static void xdrmem_destroy (XDR *); +static void xdrmem_destroy (const XDR *); static const struct xdr_ops xdrmem_ops = { @@ -74,7 +74,7 @@ static const struct xdr_ops xdrmem_ops = void xdrmem_create (xdrs, addr, size, op) XDR *xdrs; - caddr_t addr; + const caddr_t addr; u_int size; enum xdr_op op; { @@ -85,11 +85,21 @@ xdrmem_create (xdrs, addr, size, op) xdrs->x_handy = size; } +/* + * Nothing needs to be done for the memory case. The argument is clearly + * const. + */ + static void -xdrmem_destroy (XDR *xdrs) +xdrmem_destroy (const XDR *xdrs) { } +/* + * Gets the next word from the memory referenced by xdrs and places it + * in the long pointed to by lp. It then increments the private word to + * point at the next element. Neither object pointed to is const + */ static bool_t xdrmem_getlong (xdrs, lp) XDR *xdrs; @@ -103,10 +113,15 @@ xdrmem_getlong (xdrs, lp) return TRUE; } +/* + * Puts the long pointed to by lp in the memory referenced by xdrs. It + * then increments the private word to point at the next element. The + * long pointed at is const + */ static bool_t xdrmem_putlong (xdrs, lp) XDR *xdrs; - long *lp; + const long *lp; { if ((xdrs->x_handy -= 4) < 0) @@ -116,6 +131,12 @@ xdrmem_putlong (xdrs, lp) return TRUE; } +/* + * Gets an unaligned number of bytes from the xdrs structure and writes them + * to the address passed in addr. Be very careful when calling this routine + * as it could leave the xdrs pointing to an unaligned structure which is not + * a good idea. None of the things pointed to are const. + */ static bool_t xdrmem_getbytes (xdrs, addr, len) XDR *xdrs; @@ -130,10 +151,14 @@ xdrmem_getbytes (xdrs, addr, len) return TRUE; } +/* + * The complementary function to the above. The same warnings apply about + * unaligned data. The source address is const. + */ static bool_t xdrmem_putbytes (xdrs, addr, len) XDR *xdrs; - caddr_t addr; + const caddr_t addr; u_int len; { @@ -144,14 +169,21 @@ xdrmem_putbytes (xdrs, addr, len) return TRUE; } +/* + * Not sure what this one does. But it clearly doesn't modify the contents + * of xdrs. **FIXME** does this not assume u_int == u_long? + */ static u_int xdrmem_getpos (xdrs) - XDR *xdrs; + const XDR *xdrs; { return (u_long) xdrs->x_private - (u_long) xdrs->x_base; } +/* + * xdrs modified + */ static bool_t xdrmem_setpos (xdrs, pos) XDR *xdrs; @@ -167,6 +199,9 @@ xdrmem_setpos (xdrs, pos) return TRUE; } +/* + * xdrs modified + */ static long * xdrmem_inline (xdrs, len) XDR *xdrs; diff --git a/sunrpc/xdr_rec.c b/sunrpc/xdr_rec.c index af2f9f5..66b33f8 100644 --- a/sunrpc/xdr_rec.c +++ b/sunrpc/xdr_rec.c @@ -54,9 +54,9 @@ static char sccsid[] = "@(#)xdr_rec.c 1.21 87/08/11 Copyr 1984 Sun Micro"; #include <rpc/rpc.h> static bool_t xdrrec_getlong (XDR *, long *); -static bool_t xdrrec_putlong (XDR *, long *); +static bool_t xdrrec_putlong (XDR *, const long *); static bool_t xdrrec_getbytes (XDR *, caddr_t, u_int); -static bool_t xdrrec_putbytes (XDR *, caddr_t, u_int); +static bool_t xdrrec_putbytes (XDR *, const caddr_t, u_int); static u_int xdrrec_getpos (XDR *); static bool_t xdrrec_setpos (XDR *, u_int); static long *xdrrec_inline (XDR *, int); @@ -221,7 +221,7 @@ xdrrec_getlong (xdrs, lp) static bool_t xdrrec_putlong (xdrs, lp) XDR *xdrs; - long *lp; + const long *lp; { RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private; int32_t *dest_lp = (int32_t *) rstrm->out_finger; @@ -276,7 +276,7 @@ xdrrec_getbytes (xdrs, addr, len) static bool_t xdrrec_putbytes (xdrs, addr, len) XDR *xdrs; - caddr_t addr; + const caddr_t addr; u_int len; { RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private; diff --git a/sunrpc/xdr_stdio.c b/sunrpc/xdr_stdio.c index f95bc70..ddd726d 100644 --- a/sunrpc/xdr_stdio.c +++ b/sunrpc/xdr_stdio.c @@ -46,9 +46,9 @@ static char sccsid[] = "@(#)xdr_stdio.c 1.16 87/08/11 Copyr 1984 Sun Micro"; #include <rpc/xdr.h> static bool_t xdrstdio_getlong (XDR *, long *); -static bool_t xdrstdio_putlong (XDR *, long *); +static bool_t xdrstdio_putlong (XDR *, const long *); static bool_t xdrstdio_getbytes (XDR *, caddr_t, u_int); -static bool_t xdrstdio_putbytes (XDR *, caddr_t, u_int); +static bool_t xdrstdio_putbytes (XDR *, const caddr_t, u_int); static u_int xdrstdio_getpos (XDR *); static bool_t xdrstdio_setpos (XDR *, u_int); static long *xdrstdio_inline (XDR *, int); @@ -114,7 +114,7 @@ xdrstdio_getlong (xdrs, lp) } static bool_t -xdrstdio_putlong (XDR *xdrs, long *lp) +xdrstdio_putlong (XDR *xdrs, const long *lp) { long mycopy = htonl (*lp); @@ -127,7 +127,7 @@ xdrstdio_putlong (XDR *xdrs, long *lp) static bool_t xdrstdio_getbytes (xdrs, addr, len) XDR *xdrs; - caddr_t addr; + const caddr_t addr; u_int len; { @@ -137,7 +137,7 @@ xdrstdio_getbytes (xdrs, addr, len) } static bool_t -xdrstdio_putbytes (XDR *xdrs, caddr_t addr, u_int len) +xdrstdio_putbytes (XDR *xdrs, const caddr_t addr, u_int len) { if ((len != 0) && (fwrite (addr, (int) len, 1, (FILE *) xdrs->x_private) != 1)) return FALSE; |