diff options
author | Ulrich Drepper <drepper@redhat.com> | 1997-03-27 01:59:53 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1997-03-27 01:59:53 +0000 |
commit | e7fd8a39abd3a9c9d2139e686b17efb5dc3bf444 (patch) | |
tree | 637853189c42709eb7fa91817173d6097765888a /sunrpc/rpc_util.c | |
parent | 34b402e5a967b97fc73cc45fbef61bbeb8526f3d (diff) | |
download | glibc-e7fd8a39abd3a9c9d2139e686b17efb5dc3bf444.tar.gz glibc-e7fd8a39abd3a9c9d2139e686b17efb5dc3bf444.tar.xz glibc-e7fd8a39abd3a9c9d2139e686b17efb5dc3bf444.zip |
1997-03-27 02:28 Ulrich Drepper <drepper@cygnus.com> * gmon/gmon.c (monstartup): Mark all messages. (write_call_graph): Rewrite to use larger I/O vector for writev call to reduce syscall overhead. (write_bb_counts): Simplify writev handling. * inet/rexec.c: Make string parameters `const'. * resolv/netdb.h: Add prototypes for rcmd, rexec, ruserok, and rresvport. * math/Makefile: Don't define CFLAGS-* macros to prevent inlining in libm-test. * math/libm-test.c (this_does_nothing): Remove functions. It's notuseful on any platform but ix86. (inverse_func_pair_test): Don't use this_does_nothing. Use memory reference. (identities1_test): Likewise. (identities2_test): Likewise. (identities3_test): Likewise. (basic_test): Likewise. Patch by Andreas Schwab. (BUILD_COMPLEX): New macro. Create complex number from real and imaginary parts. This works around bugs/inefficiencies in current gcc. (cexp_test): Use BUILD_COMPLEX. Add more tests. * nss/nsswitch.c: Fix typo. * posix/glob.h: Add declaration for glob_pattern_p. * posix/glob.c: Rename glob_pattern_p to __glob_pattern_p and make glob_pattern_p a weak alias. This function is used in other packages (e.g. bash). * signal/Makefile (routines): Add sigisempty, sigandset, and sigorset. * signal/signal.h: Add prototypes for sigisempty, sigandset, and sigorset. * signal/sigisempty.c: New file. * signal/sigandset.c: New file. * signal/sigorset.c: New file. * sysdeps/generic/sigset.h: Define __sigisemptyset, __sigandset, and __sigorset. * sysdeps/unix/sysv/linux/sigset.h: Likewise. * stdlib/strtod.c: Handle `n-char-sequence' in NaN parsing. It determines the bits in the mantissa part of the NaN. * stdlib/strtof.c: Define SET_MANTISSA for float type. * wcsmbs/wcstof.c: Define SET_MANTISSA for float type. * stdlib/strtold.c: Define SET_MANTISSA for long double type. * wcsmbs/wcstold.c: Define SET_MANTISSA for long double type. * sysdeps/libm-ieee754/s_cexp.c: Use explicit assignment to complex number components. Some more corrects for special cases. * sysdeps/libm-ieee754/s_cexpf.c: Likewise. * sysdeps/libm-ieee754/s_cexpl.c: Likewise. * sysdeps/sparc/elf/start.S: Remove as per request of Miguel de Icaza. * sysdeps/unix/sysv/linux/netinet/icmp.h: Remove since we have ip_icmp.h. Reported by HJ Lu. 1997-03-25 03:50 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/Makefile (CFLAGS-rtld.c): Add -Wno-unused. * sysdeps/m68k/dl-machine.h (elf_machine_rela): Rewritten as for i386. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p, ELF_MACHINE_RELOC_NOPLT): Define. 1997-03-25 03:48 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * grp/grp.h: Include <stddef.h> only once. 1997-03-25 09:38 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/unix/sysv/linux/termbits.h (OXTABS): Don't define. * sysdeps/unix/sysv/linux/alpha/termbits.h (OXTABS): Likewise. * termios/sys/ttydefaults.h (TTYDEF_OFLAG): Use either OXTABS or TAB3, if one of them is defined. 1997-03-26 04:53 Ulrich Drepper <drepper@cygnus.com> * posix/glob.c (next_brace_sub): Decrement depth counter when '}' is found. Patch by Dennis Henriksen <opus@flamingo.osrl.dk>. 1997-03-25 16:25 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * sunrpc/Makefile: Comment gccwarn out. * sunrpc/auth_none.c: Fix prototypes and parameters for compiling with enabled warnings. * sunrpc/auth_unix.c: Likewise. * sunrpc/authuxprot.c: Likewise. * sunrpc/bindrsvprt.c: Likewise. * sunrpc/clnt_gen.c: Likewise. * sunrpc/clnt_perr.c: Likewise. * sunrpc/clnt_raw.c: Likewise. * sunrpc/clnt_simp.c: Likewise. * sunrpc/clnt_tcp.c: Likewise. * sunrpc/clnt_udp.c: Likewise. * sunrpc/get_myaddr.c: Likewise. * sunrpc/getrpcport.c: Likewise. * sunrpc/pm_getmaps.c: Likewise. * sunrpc/pm_getport.c: Likewise. * sunrpc/pmap_clnt.c: Likewise. * sunrpc/pmap_prot.c: Likewise. * sunrpc/pmap_prot2.c: Likewise. * sunrpc/pmap_rmt.c: Likewise. * sunrpc/rpc/auth.h: Likewise. * sunrpc/rpc/clnt.h: Likewise. * sunrpc/rpc/pmap_clnt.h: Likewise. * sunrpc/rpc/svc.h: Likewise. * sunrpc/rpc/svc_auth.h: Likewise. * sunrpc/rpc/types.h: Likewise. * sunrpc/rpc/xdr.h: Likewise. * sunrpc/rpc_clntout.c: Likewise. * sunrpc/rpc_cmsg.c: Likewise. * sunrpc/rpc_dtable.c: Likewise. * sunrpc/rpc_prot.c: Likewise. * sunrpc/svc.c: Likewise. * sunrpc/svc_auth.c: Likewise. * sunrpc/svc_authux.c: Likewise. * sunrpc/svc_raw.c: Likewise. * sunrpc/svc_run.c: Likewise. * sunrpc/svc_simple.c: Likewise. * sunrpc/svc_tcp.c: Likewise. * sunrpc/svc_udp.c: Likewise. * sunrpc/xdr.c: Likewise. * sunrpc/xdr_array.c: Likewise. * sunrpc/xdr_mem.c: Likewise. * sunrpc/xdr_rec.c: Likewise. * sunrpc/xdr_ref.c: Likewise. * sunrpc/xdr_stdio.c: Likewise. 1997-03-25 13:39 Ulrich Drepper <drepper@cygnus.com> * math/libm-test.c (log2_test): Compile this function and call it. (exp2_test): Likewise, but check whether function really exists before testing. * math/Makefile (libm-calls): Add s_log2 and s_exp2. 1997-03-25 04:50 Ulrich Drepper <drepper@cygnus.com> Implement exp2 function. * sysdeps/libm-i387/s_exp2.S: New file. * sysdeps/libm-i387/s_exp2f.S: New file. * sysdeps/libm-i387/s_exp2l.S: New file. Implement log2 function. * sysdeps/libm-i387/s_log2.S: New file. * sysdeps/libm-i387/s_log2f.S: New file. * sysdeps/libm-i387/s_log2l.S: New file. * sysdeps/libm-ieee754/s_log2.c: New file. * sysdeps/libm-ieee754/s_log2f.c: New file. * sysdeps/stub/s_log2.c: New file. Stub version.
Diffstat (limited to 'sunrpc/rpc_util.c')
-rw-r--r-- | sunrpc/rpc_util.c | 563 |
1 files changed, 301 insertions, 262 deletions
diff --git a/sunrpc/rpc_util.c b/sunrpc/rpc_util.c index cb4561ef39..a5fa727afe 100644 --- a/sunrpc/rpc_util.c +++ b/sunrpc/rpc_util.c @@ -28,14 +28,14 @@ * Mountain View, California 94043 */ -/* +/* * From: @(#)rpc_util.c 1.11 89/02/22 (C) 1987 SMI */ char util_rcsid[] = "$Id$"; /* - * rpc_util.c, Utility routines for the RPC protocol compiler + * rpc_util.c, Utility routines for the RPC protocol compiler */ #include <stdio.h> #include <ctype.h> @@ -63,425 +63,464 @@ FILE *fin; /* file pointer of current input */ list *defined; /* list of defined things */ -static int findit(const definition *def, const char *type); -static const char *fixit(const char *type, const char *orig); -static int typedefed(const definition *def, const char *type); -static const char *toktostr(tok_kind kind); -static void printbuf(void); -static void printwhere(void); +static int findit (const definition * def, const char *type); +static const char *fixit (const char *type, const char *orig); +static int typedefed (const definition * def, const char *type); +static const char *toktostr (tok_kind kind); +static void printbuf (void); +static void printwhere (void); /* - * Reinitialize the world + * Reinitialize the world */ void -reinitialize(void) +reinitialize (void) { - memset(curline, 0, MAXLINESIZE); - where = curline; - linenum = 0; - defined = NULL; + memset (curline, 0, MAXLINESIZE); + where = curline; + linenum = 0; + defined = NULL; } /* - * string equality + * string equality */ int -streq(const char *a, const char *b) +streq (const char *a, const char *b) { - return (strcmp(a, b) == 0); + return strcmp (a, b) == 0; } /* - * find a value in a list + * find a value in a list */ definition * -findval(list *lst, const char *val, - int (*cmp)(const definition *, const char *)) +findval (list * lst, const char *val, + int (*cmp) (const definition *, const char *)) { - - for (; lst != NULL; lst = lst->next) { - if (cmp(lst->val, val)) { - return (lst->val); - } + + for (; lst != NULL; lst = lst->next) + { + if (cmp (lst->val, val)) + { + return lst->val; } - return NULL; + } + return NULL; } /* - * store a value in a list + * store a value in a list */ void -storeval(list **lstp, definition *val) +storeval (list ** lstp, definition * val) { - list **l; - list *lst; - - - for (l = lstp; *l != NULL; l = (list **) & (*l)->next); - lst = ALLOC(list); - lst->val = val; - lst->next = NULL; - *l = lst; + list **l; + list *lst; + + + for (l = lstp; *l != NULL; l = (list **) & (*l)->next); + lst = ALLOC (list); + lst->val = val; + lst->next = NULL; + *l = lst; } static int -findit(const definition *def, const char *type) +findit (const definition * def, const char *type) { - return (streq(def->def_name, type)); + return streq (def->def_name, type); } static const char * -fixit(const char *type, const char *orig) +fixit (const char *type, const char *orig) { - definition *def; + definition *def; - def = findval(defined, type, findit); - if (def == NULL || def->def_kind != DEF_TYPEDEF) { - return (orig); - } - switch (def->def.ty.rel) { - case REL_VECTOR: - return (def->def.ty.old_type); - case REL_ALIAS: - return (fixit(def->def.ty.old_type, orig)); - default: - return (orig); - } + def = findval (defined, type, findit); + if (def == NULL || def->def_kind != DEF_TYPEDEF) + { + return orig; + } + switch (def->def.ty.rel) + { + case REL_VECTOR: + return (def->def.ty.old_type); + case REL_ALIAS: + return (fixit (def->def.ty.old_type, orig)); + default: + return orig; + } } const char * -fixtype(const char *type) +fixtype (const char *type) { - return (fixit(type, type)); + return fixit (type, type); } const char * -stringfix(const char *type) +stringfix (const char *type) { - if (streq(type, "string")) { - return "wrapstring"; - } - else { - return type; - } + if (streq (type, "string")) + { + return "wrapstring"; + } + else + { + return type; + } } void -ptype(const char *prefix, const char *type, int follow) +ptype (const char *prefix, const char *type, int follow) { - if (prefix != NULL) { - if (streq(prefix, "enum")) { - f_print(fout, "enum "); - } else { - f_print(fout, "struct "); - } + if (prefix != NULL) + { + if (streq (prefix, "enum")) + { + f_print (fout, "enum "); } - if (streq(type, "bool")) { - f_print(fout, "bool_t "); - } else if (streq(type, "string")) { - f_print(fout, "char *"); - } else { - f_print(fout, "%s ", follow ? fixtype(type) : type); + else + { + f_print (fout, "struct "); } + } + if (streq (type, "bool")) + { + f_print (fout, "bool_t "); + } + else if (streq (type, "string")) + { + f_print (fout, "char *"); + } + else + { + f_print (fout, "%s ", follow ? fixtype (type) : type); + } } static int -typedefed(const definition *def, const char *type) +typedefed (const definition * def, const char *type) { - if (def->def_kind != DEF_TYPEDEF || def->def.ty.old_prefix != NULL) { - return (0); - } else { - return (streq(def->def_name, type)); - } + if (def->def_kind != DEF_TYPEDEF || def->def.ty.old_prefix != NULL) + { + return 0; + } + else + { + return streq (def->def_name, type); + } } int -isvectordef(const char *type, relation rel) +isvectordef (const char *type, relation rel) { - definition *def; - - for (;;) { - switch (rel) { - case REL_VECTOR: - return (!streq(type, "string")); - case REL_ARRAY: - return (0); - case REL_POINTER: - return (0); - case REL_ALIAS: - def = findval(defined, type, typedefed); - if (def == NULL) { - return (0); - } - type = def->def.ty.old_type; - rel = def->def.ty.rel; - } + definition *def; + + for (;;) + { + switch (rel) + { + case REL_VECTOR: + return !streq (type, "string"); + case REL_ARRAY: + return 0; + case REL_POINTER: + return (0); + case REL_ALIAS: + def = findval (defined, type, typedefed); + if (def == NULL) + { + return 0; + } + type = def->def.ty.old_type; + rel = def->def.ty.rel; } + } } char * -locase(const char *str) +locase (const char *str) { - char c; - static char buf[100]; - char *p = buf; + char c; + static char buf[100]; + char *p = buf; - while ((c = *str++)!=0) { - *p++ = (c >= 'A' && c <= 'Z') ? (c - 'A' + 'a') : c; - } - *p = 0; - return (buf); + while ((c = *str++) != 0) + { + *p++ = (c >= 'A' && c <= 'Z') ? (c - 'A' + 'a') : c; + } + *p = 0; + return buf; } void -pvname_svc(const char *pname, const char *vnum) +pvname_svc (const char *pname, const char *vnum) { - f_print(fout, "%s_%s_svc", locase(pname), vnum); + f_print (fout, "%s_%s_svc", locase (pname), vnum); } void -pvname(const char *pname, const char *vnum) +pvname (const char *pname, const char *vnum) { - f_print(fout, "%s_%s", locase(pname), vnum); + f_print (fout, "%s_%s", locase (pname), vnum); } /* - * print a useful (?) error message, and then die + * print a useful (?) error message, and then die */ void -error(const char *msg) +error (const char *msg) { - printwhere(); - f_print(stderr, "%s, line %d: ", infilename, linenum); - f_print(stderr, "%s\n", msg); - crash(); + printwhere (); + f_print (stderr, "%s, line %d: ", infilename, linenum); + f_print (stderr, "%s\n", msg); + crash (); } /* * Something went wrong, unlink any files that we may have created and then - * die. + * die. */ void -crash(void) +crash (void) { - int i; + int i; - for (i = 0; i < nfiles; i++) { - (void) unlink(outfiles[i]); - } - exit(1); + for (i = 0; i < nfiles; i++) + { + (void) unlink (outfiles[i]); + } + exit (1); } void -record_open(const char *file) +record_open (const char *file) { - if (nfiles < NFILES) { - outfiles[nfiles++] = file; - } - else { - f_print(stderr, "too many files!\n"); - crash(); - } + if (nfiles < NFILES) + { + outfiles[nfiles++] = file; + } + else + { + f_print (stderr, "too many files!\n"); + crash (); + } } static char expectbuf[100]; /* - * error, token encountered was not the expected one + * error, token encountered was not the expected one */ void -expected1(tok_kind exp1) +expected1 (tok_kind exp1) { - s_print(expectbuf, "expected '%s'", - toktostr(exp1)); - error(expectbuf); + s_print (expectbuf, "expected '%s'", + toktostr (exp1)); + error (expectbuf); } /* - * error, token encountered was not one of two expected ones + * error, token encountered was not one of two expected ones */ void -expected2(tok_kind exp1, tok_kind exp2) +expected2 (tok_kind exp1, tok_kind exp2) { - s_print(expectbuf, "expected '%s' or '%s'", - toktostr(exp1), - toktostr(exp2)); - error(expectbuf); + s_print (expectbuf, "expected '%s' or '%s'", + toktostr (exp1), + toktostr (exp2)); + error (expectbuf); } /* - * error, token encountered was not one of 3 expected ones + * error, token encountered was not one of 3 expected ones */ void -expected3(tok_kind exp1, tok_kind exp2, tok_kind exp3) +expected3 (tok_kind exp1, tok_kind exp2, tok_kind exp3) { - s_print(expectbuf, "expected '%s', '%s' or '%s'", - toktostr(exp1), - toktostr(exp2), - toktostr(exp3)); - error(expectbuf); + s_print (expectbuf, "expected '%s', '%s' or '%s'", + toktostr (exp1), + toktostr (exp2), + toktostr (exp3)); + error (expectbuf); } void -tabify(FILE *f, int tab) +tabify (FILE * f, int tab) { - while (tab--) { - (void) fputc('\t', f); - } + while (tab--) + { + (void) fputc ('\t', f); + } } -static token tokstrings[] = { - {TOK_IDENT, "identifier"}, - {TOK_CONST, "const"}, - {TOK_RPAREN, ")"}, - {TOK_LPAREN, "("}, - {TOK_RBRACE, "}"}, - {TOK_LBRACE, "{"}, - {TOK_LBRACKET, "["}, - {TOK_RBRACKET, "]"}, - {TOK_STAR, "*"}, - {TOK_COMMA, ","}, - {TOK_EQUAL, "="}, - {TOK_COLON, ":"}, - {TOK_SEMICOLON, ";"}, - {TOK_UNION, "union"}, - {TOK_STRUCT, "struct"}, - {TOK_SWITCH, "switch"}, - {TOK_CASE, "case"}, - {TOK_DEFAULT, "default"}, - {TOK_ENUM, "enum"}, - {TOK_TYPEDEF, "typedef"}, - {TOK_INT, "int"}, - {TOK_SHORT, "short"}, - {TOK_LONG, "long"}, - {TOK_UNSIGNED, "unsigned"}, - {TOK_DOUBLE, "double"}, - {TOK_FLOAT, "float"}, - {TOK_CHAR, "char"}, - {TOK_STRING, "string"}, - {TOK_OPAQUE, "opaque"}, - {TOK_BOOL, "bool"}, - {TOK_VOID, "void"}, - {TOK_PROGRAM, "program"}, - {TOK_VERSION, "version"}, - {TOK_EOF, "??????"} +static const token tokstrings[] = +{ + {TOK_IDENT, "identifier"}, + {TOK_CONST, "const"}, + {TOK_RPAREN, ")"}, + {TOK_LPAREN, "("}, + {TOK_RBRACE, "}"}, + {TOK_LBRACE, "{"}, + {TOK_LBRACKET, "["}, + {TOK_RBRACKET, "]"}, + {TOK_STAR, "*"}, + {TOK_COMMA, ","}, + {TOK_EQUAL, "="}, + {TOK_COLON, ":"}, + {TOK_SEMICOLON, ";"}, + {TOK_UNION, "union"}, + {TOK_STRUCT, "struct"}, + {TOK_SWITCH, "switch"}, + {TOK_CASE, "case"}, + {TOK_DEFAULT, "default"}, + {TOK_ENUM, "enum"}, + {TOK_TYPEDEF, "typedef"}, + {TOK_INT, "int"}, + {TOK_SHORT, "short"}, + {TOK_LONG, "long"}, + {TOK_UNSIGNED, "unsigned"}, + {TOK_DOUBLE, "double"}, + {TOK_FLOAT, "float"}, + {TOK_CHAR, "char"}, + {TOK_STRING, "string"}, + {TOK_OPAQUE, "opaque"}, + {TOK_BOOL, "bool"}, + {TOK_VOID, "void"}, + {TOK_PROGRAM, "program"}, + {TOK_VERSION, "version"}, + {TOK_EOF, "??????"} }; static const char * -toktostr(tok_kind kind) +toktostr (tok_kind kind) { - token *sp; + token *sp; - for (sp = tokstrings; sp->kind != TOK_EOF && sp->kind != kind; sp++); - return (sp->str); + for (sp = tokstrings; sp->kind != TOK_EOF && sp->kind != kind; sp++); + return (sp->str); } static void -printbuf(void) +printbuf (void) { - char c; - int i; - int cnt; - -# define TABSIZE 4 - - for (i = 0; (c = curline[i])!=0; i++) { - if (c == '\t') { - cnt = 8 - (i % TABSIZE); - c = ' '; - } else { - cnt = 1; - } - while (cnt--) { - (void) fputc(c, stderr); - } + char c; + int i; + int cnt; + +#define TABSIZE 4 + + for (i = 0; (c = curline[i]) != 0; i++) + { + if (c == '\t') + { + cnt = 8 - (i % TABSIZE); + c = ' '; + } + else + { + cnt = 1; } + while (cnt--) + { + (void) fputc (c, stderr); + } + } } static void -printwhere(void) +printwhere (void) { - int i; - char c; - int cnt; - - printbuf(); - for (i = 0; i < where - curline; i++) { - c = curline[i]; - if (c == '\t') { - cnt = 8 - (i % TABSIZE); - } else { - cnt = 1; - } - while (cnt--) { - (void) fputc('^', stderr); - } + int i; + char c; + int cnt; + + printbuf (); + for (i = 0; i < where - curline; i++) + { + c = curline[i]; + if (c == '\t') + { + cnt = 8 - (i % TABSIZE); + } + else + { + cnt = 1; + } + while (cnt--) + { + (void) fputc ('^', stderr); } - (void) fputc('\n', stderr); + } + (void) fputc ('\n', stderr); } -char * -make_argname(const char *pname, const char *vname) +char * +make_argname (const char *pname, const char *vname) { - char *name; - - name = malloc(strlen(pname) + strlen(vname) + strlen(ARGEXT) + 3); - if (!name) { - fprintf(stderr, "failed in malloc"); - exit(1); - } - sprintf(name, "%s_%s_%s", locase(pname), vname, ARGEXT); - return name; + char *name; + + name = malloc (strlen (pname) + strlen (vname) + strlen (ARGEXT) + 3); + if (!name) + { + fprintf (stderr, "failed in malloc"); + exit (1); + } + sprintf (name, "%s_%s_%s", locase (pname), vname, ARGEXT); + return name; } bas_type *typ_list_h; bas_type *typ_list_t; void -add_type(int len, const char *type) +add_type (int len, const char *type) { bas_type *ptr; - if ((ptr = malloc(sizeof(bas_type))) == NULL) { - fprintf(stderr, "failed in malloc"); - exit(1); - } + if ((ptr = malloc (sizeof (bas_type))) == NULL) + { + fprintf (stderr, "failed in malloc"); + exit (1); + } - ptr->name=type; - ptr->length=len; - ptr->next=NULL; - if(typ_list_t == NULL) + ptr->name = type; + ptr->length = len; + ptr->next = NULL; + if (typ_list_t == NULL) { - typ_list_t=ptr; - typ_list_h=ptr; + typ_list_t = ptr; + typ_list_h = ptr; } else { - typ_list_t->next=ptr; - typ_list_t=ptr; + typ_list_t->next = ptr; + typ_list_t = ptr; } } -bas_type *find_type(const char *type) +bas_type * +find_type (const char *type) { bas_type *ptr; - ptr=typ_list_h; + ptr = typ_list_h; - while(ptr != NULL) + while (ptr != NULL) { - if(strcmp(ptr->name,type) == 0) - return(ptr); - else - ptr=ptr->next; + if (strcmp (ptr->name, type) == 0) + return ptr; + else + ptr = ptr->next; }; -return(NULL); + return NULL; } - |