From 1f205a479b43e5e40672fe5b4ae8f717b28c41b1 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 21 May 1997 01:48:59 +0000 Subject: Update. 1997-05-21 02:49 Ulrich Drepper * gnu-versions.h (_GNU_OBSTACK_INTERFACE_VERSION): Set to 2 since interface was changed with addition of _obstack_memory_used. Suggested by Ian Taylor . * malloc/obstack.c: Include . Include only if __GNU_LIBRARY__ or HAVE_STDLIB_H is defined. Reported by Ian Taylor . * dirent/Makefile (routines): Add versionsort. * dirent/dirent.h: Add prototype for versionsort. * dirent/versionsort.c: New file. * manual/filesys.texi: Add documentation for versionsort. * manual/string.texi: Add documentation for strverscmp. * string/Makefile (routines): Add strverscmp. (tests): Add tst-svc. * string/string.h: Add prototype for strverscmp. * string/strverscmp.c: New file. * string/tst-svc.c: New file. Test for strverscmp. * string/tst-svc.input: New file. Input data for tst-svc. * string/tst-svc.expect: New file. Expected out from tst-svc. * math/Makefile (calls): Add s_signbit. * po/sv.po: Update. * resolv/nss_dns/dns-host.c: Add casts to prevent warnings. * sunrpc/pmap_rmt.c: Likewise. * string/basename.c: Don't use ISO C definition style. Include is HAVE_CONFIG_H is defined. * sunrpc/proto.h: Add `const' wherever possible. * sunrpc/rpc_cout.c: Likewise. * sunrpc/rpc_svcout.c: Likewise. * sunrpc/xdr_mem.c: Likewise. * sunrpc/xdr_rec.c: Likewise. * sunrpc/xdr_stdio.c: Likewise. * sunrpc/rpc_parse.c: Delete comma from end of enum definition. * sunrpc/xdr.c: Little code cleanups. * sunrpc/xdr_flaot.c: Likewise. Patches by Matthew Wilcox . * sysdeps/i386/fpu/__math.h (__finite): Fix typo. * sysdeps/unix/sysv/linux/shmdt.c: Add cast to prevent warning. * time/europe: Update from tzdata1997f. * time/zic.c: Update from tzcode1997e. 1997-05-20 19:20 Miguel de Icaza * sysdeps/sparc/setjmp.S: Flush windows. Bug found by Richard Henderson. 1997-05-19 12:54 Andreas Schwab * misc/efgcvt_r.c (fcvt_r, ecvt_r): Rewritten as to fit the specs. 1997-05-19 18:41 Thorsten Kukuk * nis/nss_nisplus/nisplus-spwd.c (_nss_nisplus_parse_spent): Use atol instead of atoi. 1997-05-18 00:22 Philip Blundell * inet/Makefile (routines): Add if_index. * sysdeps/unix/sysv/linux/if_index.c: New file. * sysdeps/stub/if_index.c: New file. * sysdeps/unix/sysv/linux/net/if.h: Add prototypes for routines in if_index.c (required by IPv6 basic API). * sysdeps/unix/sysv/linux/netinet/in.h: Add struct ipv6_pktinfo. 1997-05-17 23:29 Philip Blundell * sysdeps/unix/sysv/linux/netinet/in.h: Update IPv6 definitions for new advanced API draft. 1997-05-13 21:33 Andreas Schwab * stdio-common/printf_fp.c: Only use the field width for deciding on padding when printing special values. * stdio-common/printf_fphex.c: Likewise. 1997-05-15 13:14 Miles Bader Changes by Thomas Bushnell : * hurd/hurdauth.c (_S_msg_add_auth): Implement correctly. 1997-05-12 14:50 Thomas Bushnell, n/BSG * hurd/hurdsig.c (_hurdsig_init): Double size of sigthread stack; msg_add_auth was overflowing it. 1997-05-12 21:20 Richard Henderson * elf/dl-lookup.c (_dl_lookup_symbol_skip): Call _dl_signal_error when we can't find the symbol. 1997-05-12 16:54 Ulrich Drepper * posix/regex.c: Fix handling of 32-bit Windog environments. Patch by Arnold Robbins . 1997-05-10 23:26 Andreas Schwab * sysdeps/unix/sysv/linux/m68k/syscalls.list: Add cacheflush. 1997-05-10 11:40 Andreas Schwab * elf/ldd.bash.in: Remove spurious quote character from version message. 1997-05-10 08:49 Andreas Schwab * locale/programs/locale.c (write_charmaps): Don't get stuck in a loop if the file ends in a long line without newline. * locale/programs/charmap.c (charmap_read): Likewise. 1997-05-12 03:47 Ulrich Drepper * sunrpc/rpc/xdr.h: Include more headers to be self-contained. * sunrpc/rpc/svc_auth.h: Likewise. * sunrpc/rpc/svc.h: Likewise. * sunrpc/rpc/rpc_msg.h: Likewise. * sunrpc/rpc/pmap_rmt.h: Likewise. * sunrpc/rpc/pmap_clnt.h: Likewise. * sunrpc/rpc/clnt.h: Likewise. * sunrpc/rpc/auth_unix.h: Likewise. * sysdeps/generic/rpc/auth.h: Likewise. Patches by Michael Deutschmann . 1997-05-11 15:29 Philip Blundell * sysdeps/stub/sigaction.c (__sigaction): Correct typo. * sysdeps/standalone/arm/errnos.h: New file. * sysdeps/stub/sys/param.h: Add dummy definition of MAXSYMLINKS. * sysdeps/unix/arm/fork.S: New file. * sysdeps/unix/sysv/linux/arm/sysdep.h: New file. * sysdeps/stub/tempname.c (__stdio_gen_tempname): Add missing `streamptr' argument. * sysdeps/stub/vdprintf.c: Remove second copy of file (!), include to get va_list defined, return 0 not NULL. * sysdeps/unix/sysv/linux/statfsbuf.h: Include . * sysdeps/unix/sysv/linux/arm/syscall.S: New file. * sysdeps/stub/direntry.h (struct dirent): Add missing ';'. * sysdeps/stub/seekdir.c (seekdir): Likewise. * sysdeps/stub/dirfd.c (dirfd): Argument dirp is DIR*, not FILE*. * sysdeps/standalone/dirstream.h: Define struct __dirstream not DIR; provides typedef. * sysdeps/unix/sysv/linux/arm/clone.S: New file. * sysdeps/unix/sysv/linux/arm/socket.S: New file. * sysdeps/stub/sysconf.c (__sysconf): Fix typos. 1997-05-01 06:35 Geoff Keating * sysdeps/powerpc/Dist: New file. * sysdeps/powerpc/Makefile: New file. * sysdeps/powerpc/fclrexcpt.c: New file. * sysdeps/powerpc/fegetenv.c: New file. * sysdeps/powerpc/fegetround.c: New file. * sysdeps/powerpc/feholdexcpt.c: New file. * sysdeps/powerpc/fenvbits.h: New file. * sysdeps/powerpc/fenv_const.c: New file. * sysdeps/powerpc/fenv_libc.h: New file. * sysdeps/powerpc/fesetenv.c: New file. * sysdeps/powerpc/fesetround.c: New file. * sysdeps/powerpc/feupdateenv.c: New file. * sysdeps/powerpc/fgetexcptflg.c: New file. * sysdeps/powerpc/fraiseexcpt.c: New file. * sysdeps/powerpc/fsetexcptflg.c: New file. * sysdeps/powerpc/ftestexcept.c: New file. * sysdeps/powerpc/mathbits.h: New file. * sysdeps/powerpc/dl-machine.h: Wrap in #ifndef dl_machine_h; define elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p, ELF_MACHINE_RELOC_NOPLT; consequent changes to elf_machine_rela. * sysdeps/powerpc/__math.h: Remove definition for hypot and __sgn. * sysdep/powerpc/fpu_control.h: Correct IEEE default mode. * sysdeps/unix/sysv/linux/powerpc/sysdep.h: Don't use .text, but instead .section ".text". 1997-04-25 05:06 Geoff Keating * sysdeps/powerpc/__longjmp.S: Use symbolic register numbering. * sysdeps/powerpc/bsd-_setjmp.S: Likewise. * sysdeps/powerpc/bsd-setjmp.S: Likewise. * sysdeps/powerpc/setjmp.S: Likewise. * sysdeps/unix/sysv/linux/clone.S: Likewise. * sysdeps/unix/sysv/linux/socket.S: Likewise. * sysdeps/unix/sysv/linux/syscall.S: Likewise. 1997-04-20 04:37 Geoff Keating * sysdeps/powerpc/strchr.s: New file. * sysdeps/powerpc/strcmp.s: New (ugly) file. * sysdeps/powerpc/memset.s: New file. * string/tester.c: Include prototype and _GNU_SOURCE to make standalone compilation possible. Give strcmp a better test. Give memset a better test. 1997-04-05 06:34 Geoff Keating * sysdeps/powerpc/strlen.s: Fixed bugs (how did it ever pass its tests before?). Changed to symbolic register numbering as an experiment. * sysdeps/powerpc/ffs.c: Don't include bstring.h, it doesn't exist. * sysdeps/rs6000/ffs.c: Likewise. 1997-05-12 02:28 Ulrich Drepper * time/sys/time.h: Make second argument of setitimer const. Patch by Michael Deutschmann . * sysdeps/stub/setitimer.c: Likewise. * sysdeps/mach/hurd/setitimer.c: Likewise. --- sunrpc/authuxprot.c | 1 + sunrpc/pmap_rmt.c | 2 +- sunrpc/proto.h | 8 +++--- sunrpc/rpc/auth_unix.h | 4 +++ sunrpc/rpc/clnt.h | 21 ++++++++------ sunrpc/rpc/pmap_clnt.h | 12 ++++---- sunrpc/rpc/pmap_rmt.h | 4 ++- sunrpc/rpc/rpc_msg.h | 1 + sunrpc/rpc/xdr.h | 20 ++++++++++++-- sunrpc/rpc_cout.c | 75 +++++++++++++++++++++----------------------------- sunrpc/rpc_parse.h | 6 ++-- sunrpc/rpc_svcout.c | 14 +++++----- sunrpc/xdr.c | 15 ---------- sunrpc/xdr_float.c | 8 +++--- sunrpc/xdr_mem.c | 53 +++++++++++++++++++++++++++++------ sunrpc/xdr_rec.c | 8 +++--- sunrpc/xdr_stdio.c | 10 +++---- 17 files changed, 149 insertions(+), 113 deletions(-) (limited to 'sunrpc') diff --git a/sunrpc/authuxprot.c b/sunrpc/authuxprot.c index d172ebc655..9f0242fcb0 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 c3667d4738..8ae93b8f6d 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 ed010f8fab..6d2747f728 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 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 +#include +#include +#include +#include __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 +#include +#include +#include __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 +#include +#include __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 - +#include +#include +#include __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 +#include #include /* 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 +#include +#include /* We need FILE. */ #include @@ -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 77319d9b15..ab3b24da74 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 07c1f67833..8d48c85a07 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 d19b9b45eb..75eb695e87 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 d666119376..becc59bed3 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 be5a07d028..2e1e37f0a2 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 481a8664b5..8e88e41ea2 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 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 af2f9f5ed7..66b33f8456 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 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 f95bc70be1..ddd726d8cb 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 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; -- cgit 1.4.1