diff options
Diffstat (limited to 'libc')
| -rw-r--r-- | libc/inet/rpc/auth_none.c | 1 | ||||
| -rw-r--r-- | libc/inet/rpc/auth_unix.c | 2 | ||||
| -rw-r--r-- | libc/inet/rpc/authunix_prot.c | 10 | ||||
| -rw-r--r-- | libc/inet/rpc/clnt_raw.c | 3 | ||||
| -rw-r--r-- | libc/inet/rpc/clnt_tcp.c | 5 | ||||
| -rw-r--r-- | libc/inet/rpc/clnt_udp.c | 4 | ||||
| -rw-r--r-- | libc/inet/rpc/clnt_unix.c | 5 | ||||
| -rw-r--r-- | libc/inet/rpc/pmap_clnt.c | 1 | ||||
| -rw-r--r-- | libc/inet/rpc/pmap_prot.c | 2 | ||||
| -rw-r--r-- | libc/inet/rpc/pmap_prot2.c | 3 | ||||
| -rw-r--r-- | libc/inet/rpc/pmap_rmt.c | 69 | ||||
| -rw-r--r-- | libc/inet/rpc/rpc_callmsg.c | 11 | ||||
| -rw-r--r-- | libc/inet/rpc/rpc_prot.c | 24 | ||||
| -rw-r--r-- | libc/inet/rpc/svc_auth_unix.c | 1 | ||||
| -rw-r--r-- | libc/inet/rpc/svc_raw.c | 2 | ||||
| -rw-r--r-- | libc/inet/rpc/svc_tcp.c | 5 | ||||
| -rw-r--r-- | libc/inet/rpc/svc_udp.c | 2 | ||||
| -rw-r--r-- | libc/inet/rpc/svc_unix.c | 5 | ||||
| -rw-r--r-- | libc/inet/rpc/xdr.c | 203 | ||||
| -rw-r--r-- | libc/inet/rpc/xdr_array.c | 13 | ||||
| -rw-r--r-- | libc/inet/rpc/xdr_rec.c | 16 | ||||
| -rw-r--r-- | libc/inet/rpc/xdr_reference.c | 14 | 
22 files changed, 231 insertions, 170 deletions
| diff --git a/libc/inet/rpc/auth_none.c b/libc/inet/rpc/auth_none.c index 9d1d42d03..b2e23924c 100644 --- a/libc/inet/rpc/auth_none.c +++ b/libc/inet/rpc/auth_none.c @@ -36,6 +36,7 @@   */  #define xdrmem_create __xdrmem_create +#define xdr_opaque_auth __xdr_opaque_auth  #define __FORCE_GLIBC  #include <features.h> diff --git a/libc/inet/rpc/auth_unix.c b/libc/inet/rpc/auth_unix.c index ca4e89bab..95733163c 100644 --- a/libc/inet/rpc/auth_unix.c +++ b/libc/inet/rpc/auth_unix.c @@ -42,6 +42,8 @@  #define getegid __getegid  #define geteuid __geteuid  #define xdrmem_create __xdrmem_create +#define xdr_authunix_parms __xdr_authunix_parms +#define xdr_opaque_auth __xdr_opaque_auth  #define __FORCE_GLIBC  #include <features.h> diff --git a/libc/inet/rpc/authunix_prot.c b/libc/inet/rpc/authunix_prot.c index b033c568a..32da3256d 100644 --- a/libc/inet/rpc/authunix_prot.c +++ b/libc/inet/rpc/authunix_prot.c @@ -34,6 +34,11 @@   * XDR for UNIX style authentication parameters for RPC   */ +#define xdr_string __xdr_string +#define xdr_u_int __xdr_u_int +#define xdr_array __xdr_array +#define xdr_u_long __xdr_u_long +  #include <rpc/types.h>  #include <rpc/xdr.h>  #include <rpc/auth.h> @@ -43,8 +48,8 @@   * XDR for unix authentication parameters.   * Unfortunately, none of these can be declared const.   */ -bool_t -xdr_authunix_parms (XDR * xdrs, struct authunix_parms *p) +bool_t attribute_hidden +__xdr_authunix_parms (XDR * xdrs, struct authunix_parms *p)  {    if (xdr_u_long (xdrs, &(p->aup_time))        && xdr_string (xdrs, &(p->aup_machname), MAX_MACHINE_NAME) @@ -63,3 +68,4 @@ xdr_authunix_parms (XDR * xdrs, struct authunix_parms *p)      }    return FALSE;  } +strong_alias(__xdr_authunix_parms,xdr_authunix_parms) diff --git a/libc/inet/rpc/clnt_raw.c b/libc/inet/rpc/clnt_raw.c index 1dbbbb8a8..ff48523a9 100644 --- a/libc/inet/rpc/clnt_raw.c +++ b/libc/inet/rpc/clnt_raw.c @@ -44,6 +44,9 @@ static char sccsid[] = "@(#)clnt_raw.c 1.22 87/08/11 Copyr 1984 Sun Micro";  #define authnone_create __authnone_create  #define xdrmem_create __xdrmem_create +#define xdr_callhdr __xdr_callhdr +#define xdr_replymsg __xdr_replymsg +#define xdr_opaque_auth __xdr_opaque_auth  #define svc_getreq __svc_getreq  #define __FORCE_GLIBC diff --git a/libc/inet/rpc/clnt_tcp.c b/libc/inet/rpc/clnt_tcp.c index 99c5751eb..4221eff63 100644 --- a/libc/inet/rpc/clnt_tcp.c +++ b/libc/inet/rpc/clnt_tcp.c @@ -52,6 +52,11 @@ static char sccsid[] = "@(#)clnt_tcp.c 1.37 87/10/05 Copyr 1984 Sun Micro";  #define authnone_create __authnone_create  #define xdrrec_create __xdrrec_create +#define xdrrec_endofrecord __xdrrec_endofrecord +#define xdrrec_skiprecord __xdrrec_skiprecord +#define xdr_callhdr __xdr_callhdr +#define xdr_replymsg __xdr_replymsg +#define xdr_opaque_auth __xdr_opaque_auth  #define xdrmem_create __xdrmem_create  #define pmap_getport __pmap_getport diff --git a/libc/inet/rpc/clnt_udp.c b/libc/inet/rpc/clnt_udp.c index 81fe9f7bc..b3d26fc21 100644 --- a/libc/inet/rpc/clnt_udp.c +++ b/libc/inet/rpc/clnt_udp.c @@ -42,6 +42,9 @@ static char sccsid[] = "@(#)clnt_udp.c 1.39 87/08/11 Copyr 1984 Sun Micro";  #define authnone_create __authnone_create  #define xdrmem_create __xdrmem_create +#define xdr_callhdr __xdr_callhdr +#define xdr_replymsg __xdr_replymsg +#define xdr_opaque_auth __xdr_opaque_auth  #define pmap_getport __pmap_getport @@ -69,7 +72,6 @@ static char sccsid[] = "@(#)clnt_udp.c 1.39 87/08/11 Copyr 1984 Sun Micro";  #include <sys/uio.h>  #endif -extern bool_t xdr_opaque_auth (XDR *, struct opaque_auth *);  extern u_long _create_xid (void) attribute_hidden;  /* diff --git a/libc/inet/rpc/clnt_unix.c b/libc/inet/rpc/clnt_unix.c index 3dbcc8d36..18b20af16 100644 --- a/libc/inet/rpc/clnt_unix.c +++ b/libc/inet/rpc/clnt_unix.c @@ -48,6 +48,11 @@  #define authnone_create __authnone_create  #define xdrrec_create __xdrrec_create +#define xdrrec_endofrecord __xdrrec_endofrecord +#define xdrrec_skiprecord __xdrrec_skiprecord +#define xdr_callhdr __xdr_callhdr +#define xdr_replymsg __xdr_replymsg +#define xdr_opaque_auth __xdr_opaque_auth  #define xdrmem_create __xdrmem_create  #define getegid __getegid  #define geteuid __geteuid diff --git a/libc/inet/rpc/pmap_clnt.c b/libc/inet/rpc/pmap_clnt.c index 666745442..dbd3e3198 100644 --- a/libc/inet/rpc/pmap_clnt.c +++ b/libc/inet/rpc/pmap_clnt.c @@ -36,6 +36,7 @@  #define clnt_perror __clnt_perror  #define clntudp_bufcreate __clntudp_bufcreate +#define xdr_bool __xdr_bool  #define __FORCE_GLIBC  #include <features.h> diff --git a/libc/inet/rpc/pmap_prot.c b/libc/inet/rpc/pmap_prot.c index c065dadfe..388c8aeee 100644 --- a/libc/inet/rpc/pmap_prot.c +++ b/libc/inet/rpc/pmap_prot.c @@ -38,6 +38,8 @@ static char sccsid[] = "@(#)pmap_prot.c 1.17 87/08/11 Copyr 1984 Sun Micro";   * Copyright (C) 1984, Sun Microsystems, Inc.   */ +#define xdr_u_long __xdr_u_long +  #include <rpc/types.h>  #include <rpc/xdr.h>  #include <rpc/pmap_prot.h> diff --git a/libc/inet/rpc/pmap_prot2.c b/libc/inet/rpc/pmap_prot2.c index 7dad1604f..655400f0c 100644 --- a/libc/inet/rpc/pmap_prot2.c +++ b/libc/inet/rpc/pmap_prot2.c @@ -38,6 +38,9 @@ static char sccsid[] = "@(#)pmap_prot2.c 1.3 87/08/11 Copyr 1984 Sun Micro";   * Copyright (C) 1984, Sun Microsystems, Inc.   */ +#define xdr_bool __xdr_bool +#define xdr_reference __xdr_reference +  #include <rpc/types.h>  #include <rpc/xdr.h>  #include <rpc/pmap_prot.h> diff --git a/libc/inet/rpc/pmap_rmt.c b/libc/inet/rpc/pmap_rmt.c index d612bec4d..8a42d78ee 100644 --- a/libc/inet/rpc/pmap_rmt.c +++ b/libc/inet/rpc/pmap_rmt.c @@ -41,6 +41,10 @@ static char sccsid[] = "@(#)pmap_rmt.c 1.21 87/08/27 Copyr 1984 Sun Micro";  #define authunix_create_default __authunix_create_default  #define xdrmem_create __xdrmem_create +#define xdr_callmsg __xdr_callmsg +#define xdr_replymsg __xdr_replymsg +#define xdr_reference __xdr_reference +#define xdr_u_long __xdr_u_long  #define inet_makeaddr __inet_makeaddr  #define clntudp_create __clntudp_create @@ -69,6 +73,37 @@ extern u_long _create_xid (void) attribute_hidden;  static const struct timeval timeout = {3, 0};  /* + * XDR remote call arguments + * written for XDR_ENCODE direction only + */ +bool_t attribute_hidden +__xdr_rmtcall_args (XDR *xdrs, struct rmtcallargs *cap) +{ +  u_int lenposition, argposition, position; + +  if (xdr_u_long (xdrs, &(cap->prog)) && +      xdr_u_long (xdrs, &(cap->vers)) && +      xdr_u_long (xdrs, &(cap->proc))) +    { +      lenposition = XDR_GETPOS (xdrs); +      if (!xdr_u_long (xdrs, &(cap->arglen))) +	return FALSE; +      argposition = XDR_GETPOS (xdrs); +      if (!(*(cap->xdr_args)) (xdrs, cap->args_ptr)) +	return FALSE; +      position = XDR_GETPOS (xdrs); +      cap->arglen = (u_long) position - (u_long) argposition; +      XDR_SETPOS (xdrs, lenposition); +      if (!xdr_u_long (xdrs, &(cap->arglen))) +	return FALSE; +      XDR_SETPOS (xdrs, position); +      return TRUE; +    } +  return FALSE; +} +strong_alias(__xdr_rmtcall_args,xdr_rmtcall_args) + +/*   * pmapper remote-call-service interface.   * This routine is used to call the pmapper remote call service   * which will look up a service program in the port maps, and then @@ -102,7 +137,7 @@ pmap_rmtcall (addr, prog, vers, proc, xdrargs, argsp, xdrres, resp, tout, port_p        r.port_ptr = port_ptr;        r.results_ptr = resp;        r.xdr_results = xdrres; -      stat = CLNT_CALL (client, PMAPPROC_CALLIT, (xdrproc_t)xdr_rmtcall_args, +      stat = CLNT_CALL (client, PMAPPROC_CALLIT, (xdrproc_t)__xdr_rmtcall_args,  			(caddr_t)&a, (xdrproc_t)xdr_rmtcallres,  			(caddr_t)&r, tout);        CLNT_DESTROY (client); @@ -118,36 +153,6 @@ pmap_rmtcall (addr, prog, vers, proc, xdrargs, argsp, xdrres, resp, tout, port_p  /* - * XDR remote call arguments - * written for XDR_ENCODE direction only - */ -bool_t -xdr_rmtcall_args (XDR *xdrs, struct rmtcallargs *cap) -{ -  u_int lenposition, argposition, position; - -  if (xdr_u_long (xdrs, &(cap->prog)) && -      xdr_u_long (xdrs, &(cap->vers)) && -      xdr_u_long (xdrs, &(cap->proc))) -    { -      lenposition = XDR_GETPOS (xdrs); -      if (!xdr_u_long (xdrs, &(cap->arglen))) -	return FALSE; -      argposition = XDR_GETPOS (xdrs); -      if (!(*(cap->xdr_args)) (xdrs, cap->args_ptr)) -	return FALSE; -      position = XDR_GETPOS (xdrs); -      cap->arglen = (u_long) position - (u_long) argposition; -      XDR_SETPOS (xdrs, lenposition); -      if (!xdr_u_long (xdrs, &(cap->arglen))) -	return FALSE; -      XDR_SETPOS (xdrs, position); -      return TRUE; -    } -  return FALSE; -} - -/*   * XDR remote call results   * written for XDR_DECODE direction only   */ @@ -307,7 +312,7 @@ clnt_broadcast (prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)    r.xdr_results = xresults;    r.results_ptr = resultsp;    xdrmem_create (xdrs, outbuf, MAX_BROADCAST_SIZE, XDR_ENCODE); -  if ((!xdr_callmsg (xdrs, &msg)) || (!xdr_rmtcall_args (xdrs, &a))) +  if ((!xdr_callmsg (xdrs, &msg)) || (!__xdr_rmtcall_args (xdrs, &a)))      {        stat = RPC_CANTENCODEARGS;        goto done_broad; diff --git a/libc/inet/rpc/rpc_callmsg.c b/libc/inet/rpc/rpc_callmsg.c index 8934eed91..6368e5920 100644 --- a/libc/inet/rpc/rpc_callmsg.c +++ b/libc/inet/rpc/rpc_callmsg.c @@ -38,6 +38,12 @@ static char sccsid[] = "@(#)rpc_callmsg.c 1.4 87/08/11 Copyr 1984 Sun Micro";   *   */ +#define xdr_enum __xdr_enum +#define xdr_opaque __xdr_opaque +#define xdr_u_int __xdr_u_int +#define xdr_u_long __xdr_u_long +#define xdr_opaque_auth __xdr_opaque_auth +  #define __FORCE_GLIBC  #include <features.h> @@ -48,8 +54,8 @@ static char sccsid[] = "@(#)rpc_callmsg.c 1.4 87/08/11 Copyr 1984 Sun Micro";  /*   * XDR a call message   */ -bool_t -xdr_callmsg (XDR *xdrs, struct rpc_msg *cmsg) +bool_t attribute_hidden +__xdr_callmsg (XDR *xdrs, struct rpc_msg *cmsg)  {    int32_t *buf;    struct opaque_auth *oa; @@ -204,3 +210,4 @@ xdr_callmsg (XDR *xdrs, struct rpc_msg *cmsg)      return xdr_opaque_auth (xdrs, &(cmsg->rm_call.cb_verf));    return FALSE;  } +strong_alias(__xdr_callmsg,xdr_callmsg) diff --git a/libc/inet/rpc/rpc_prot.c b/libc/inet/rpc/rpc_prot.c index bbe7b57f2..60cd5ff19 100644 --- a/libc/inet/rpc/rpc_prot.c +++ b/libc/inet/rpc/rpc_prot.c @@ -46,6 +46,9 @@ static char sccsid[] = "@(#)rpc_prot.c 1.36 87/08/11 Copyr 1984 Sun Micro";  #define xdr_bytes __xdr_bytes  #define xdr_union __xdr_union +#define xdr_enum __xdr_enum +#define xdr_opaque __xdr_opaque +#define xdr_u_long __xdr_u_long  #define __FORCE_GLIBC  #include <features.h> @@ -60,8 +63,8 @@ static char sccsid[] = "@(#)rpc_prot.c 1.36 87/08/11 Copyr 1984 Sun Micro";   * XDR an opaque authentication struct   * (see auth.h)   */ -bool_t -xdr_opaque_auth (XDR *xdrs, struct opaque_auth *ap) +bool_t attribute_hidden +__xdr_opaque_auth (XDR *xdrs, struct opaque_auth *ap)  {    if (xdr_enum (xdrs, &(ap->oa_flavor))) @@ -69,6 +72,7 @@ xdr_opaque_auth (XDR *xdrs, struct opaque_auth *ap)  		      &ap->oa_length, MAX_AUTH_BYTES);    return FALSE;  } +strong_alias(__xdr_opaque_auth,xdr_opaque_auth)  /*   * XDR a DES block @@ -88,7 +92,7 @@ bool_t  xdr_accepted_reply (XDR *xdrs, struct accepted_reply *ar)  {    /* personalized union, rather than calling xdr_union */ -  if (!xdr_opaque_auth (xdrs, &(ar->ar_verf))) +  if (!__xdr_opaque_auth (xdrs, &(ar->ar_verf)))      return FALSE;    if (!xdr_enum (xdrs, (enum_t *) & (ar->ar_stat)))      return FALSE; @@ -137,10 +141,8 @@ static const struct xdr_discrim reply_dscrm[3] =  /*   * XDR a reply message   */ -bool_t -xdr_replymsg (xdrs, rmsg) -     XDR *xdrs; -     struct rpc_msg *rmsg; +bool_t attribute_hidden +__xdr_replymsg (XDR *xdrs, struct rpc_msg *rmsg)  {    if (xdr_u_long (xdrs, &(rmsg->rm_xid)) &&        xdr_enum (xdrs, (enum_t *) & (rmsg->rm_direction)) && @@ -150,6 +152,7 @@ xdr_replymsg (xdrs, rmsg)  		      NULL_xdrproc_t);    return FALSE;  } +strong_alias(__xdr_replymsg,xdr_replymsg)  /* @@ -157,10 +160,8 @@ xdr_replymsg (xdrs, rmsg)   * The fields include: rm_xid, rm_direction, rpcvers, prog, and vers.   * The rm_xid is not really static, but the user can easily munge on the fly.   */ -bool_t -xdr_callhdr (xdrs, cmsg) -     XDR *xdrs; -     struct rpc_msg *cmsg; +bool_t attribute_hidden +__xdr_callhdr (XDR *xdrs, struct rpc_msg *cmsg)  {    cmsg->rm_direction = CALL; @@ -174,6 +175,7 @@ xdr_callhdr (xdrs, cmsg)      return xdr_u_long (xdrs, &(cmsg->rm_call.cb_vers));    return FALSE;  } +strong_alias(__xdr_callhdr,xdr_callhdr)  /* ************************** Client utility routine ************* */ diff --git a/libc/inet/rpc/svc_auth_unix.c b/libc/inet/rpc/svc_auth_unix.c index c84c42725..6c0f44f7d 100644 --- a/libc/inet/rpc/svc_auth_unix.c +++ b/libc/inet/rpc/svc_auth_unix.c @@ -39,6 +39,7 @@   */  #define xdrmem_create __xdrmem_create +#define xdr_authunix_parms __xdr_authunix_parms  #define __FORCE_GLIBC  #define _GNU_SOURCE diff --git a/libc/inet/rpc/svc_raw.c b/libc/inet/rpc/svc_raw.c index b55f0864f..8a4cc5981 100644 --- a/libc/inet/rpc/svc_raw.c +++ b/libc/inet/rpc/svc_raw.c @@ -41,6 +41,8 @@ static char sccsid[] = "@(#)svc_raw.c 1.15 87/08/11 Copyr 1984 Sun Micro";   */  #define xdrmem_create __xdrmem_create +#define xdr_callmsg __xdr_callmsg +#define xdr_replymsg __xdr_replymsg  #define __FORCE_GLIBC  #include <features.h> diff --git a/libc/inet/rpc/svc_tcp.c b/libc/inet/rpc/svc_tcp.c index 58c8ed1fd..888841a7d 100644 --- a/libc/inet/rpc/svc_tcp.c +++ b/libc/inet/rpc/svc_tcp.c @@ -42,6 +42,11 @@ static char sccsid[] = "@(#)svc_tcp.c 1.21 87/08/11 Copyr 1984 Sun Micro";   */  #define xdrrec_create __xdrrec_create +#define xdrrec_endofrecord __xdrrec_endofrecord +#define xdrrec_skiprecord __xdrrec_skiprecord +#define xdrrec_eof __xdrrec_eof +#define xdr_callmsg __xdr_callmsg +#define xdr_replymsg __xdr_replymsg  #define xprt_register __xprt_register  #define __FORCE_GLIBC diff --git a/libc/inet/rpc/svc_udp.c b/libc/inet/rpc/svc_udp.c index 019e40273..8154ebf91 100644 --- a/libc/inet/rpc/svc_udp.c +++ b/libc/inet/rpc/svc_udp.c @@ -41,6 +41,8 @@ static char sccsid[] = "@(#)svc_udp.c 1.24 87/08/11 Copyr 1984 Sun Micro";  #define xprt_register __xprt_register  #define xdrmem_create __xdrmem_create +#define xdr_callmsg __xdr_callmsg +#define xdr_replymsg __xdr_replymsg  #define __FORCE_GLIBC  #define _GNU_SOURCE diff --git a/libc/inet/rpc/svc_unix.c b/libc/inet/rpc/svc_unix.c index 0b7d964fd..3f10117e5 100644 --- a/libc/inet/rpc/svc_unix.c +++ b/libc/inet/rpc/svc_unix.c @@ -38,6 +38,11 @@   */  #define xdrrec_create __xdrrec_create +#define xdrrec_endofrecord __xdrrec_endofrecord +#define xdrrec_skiprecord __xdrrec_skiprecord +#define xdrrec_eof __xdrrec_eof +#define xdr_callmsg __xdr_callmsg +#define xdr_replymsg __xdr_replymsg  #define xprt_register __xprt_register  #define getegid __getegid  #define geteuid __geteuid diff --git a/libc/inet/rpc/xdr.c b/libc/inet/rpc/xdr.c index c608cd27f..3d36c4021 100644 --- a/libc/inet/rpc/xdr.c +++ b/libc/inet/rpc/xdr.c @@ -91,19 +91,41 @@ xdr_void (void)  }  /* - * XDR integers + * XDR long integers + * The definition of xdr_long() is kept for backward + * compatibility. Instead xdr_int() should be used.   */ -bool_t -xdr_int (XDR *xdrs, int *ip) +bool_t attribute_hidden +__xdr_long (XDR *xdrs, long *lp)  { -#if INT_MAX < LONG_MAX +  if (xdrs->x_op == XDR_ENCODE +      && (sizeof (int32_t) == sizeof (long) +	  || (int32_t) *lp == *lp)) +    return XDR_PUTLONG (xdrs, lp); + +  if (xdrs->x_op == XDR_DECODE) +    return XDR_GETLONG (xdrs, lp); + +  if (xdrs->x_op == XDR_FREE) +    return TRUE; + +  return FALSE; +} +strong_alias(__xdr_long,xdr_long) + +/* + * XDR short integers + */ +bool_t attribute_hidden +__xdr_short (XDR *xdrs, short *sp) +{    long l;    switch (xdrs->x_op)      {      case XDR_ENCODE: -      l = (long) *ip; +      l = (long) *sp;        return XDR_PUTLONG (xdrs, &l);      case XDR_DECODE: @@ -111,33 +133,30 @@ xdr_int (XDR *xdrs, int *ip)  	{  	  return FALSE;  	} -      *ip = (int) l; +      *sp = (short) l; +      return TRUE; +      case XDR_FREE:        return TRUE;      }    return FALSE; -#elif INT_MAX == LONG_MAX -  return xdr_long (xdrs, (long *) ip); -#elif INT_MAX == SHRT_MAX -  return xdr_short (xdrs, (short *) ip); -#else -#error unexpected integer sizes in_xdr_int() -#endif  } +strong_alias(__xdr_short,xdr_short)  /* - * XDR unsigned integers + * XDR integers   */ -bool_t -xdr_u_int (XDR *xdrs, u_int *up) +bool_t attribute_hidden +__xdr_int (XDR *xdrs, int *ip)  { -#if UINT_MAX < ULONG_MAX -  u_long l; + +#if INT_MAX < LONG_MAX +  long l;    switch (xdrs->x_op)      {      case XDR_ENCODE: -      l = (u_long) * up; +      l = (long) *ip;        return XDR_PUTLONG (xdrs, &l);      case XDR_DECODE: @@ -145,50 +164,28 @@ xdr_u_int (XDR *xdrs, u_int *up)  	{  	  return FALSE;  	} -      *up = (u_int) l; +      *ip = (int) l;      case XDR_FREE:        return TRUE;      }    return FALSE; -#elif UINT_MAX == ULONG_MAX -  return xdr_u_long (xdrs, (u_long *) up); -#elif UINT_MAX == USHRT_MAX -  return xdr_short (xdrs, (short *) up); +#elif INT_MAX == LONG_MAX +  return __xdr_long (xdrs, (long *) ip); +#elif INT_MAX == SHRT_MAX +  return __xdr_short (xdrs, (short *) ip);  #else -#error unexpected integer sizes in_xdr_u_int() +#error unexpected integer sizes in xdr_int()  #endif  } - -/* - * XDR long integers - * The definition of xdr_long() is kept for backward - * compatibility. Instead xdr_int() should be used. - */ -bool_t -xdr_long (XDR *xdrs, long *lp) -{ - -  if (xdrs->x_op == XDR_ENCODE -      && (sizeof (int32_t) == sizeof (long) -	  || (int32_t) *lp == *lp)) -    return XDR_PUTLONG (xdrs, lp); - -  if (xdrs->x_op == XDR_DECODE) -    return XDR_GETLONG (xdrs, lp); - -  if (xdrs->x_op == XDR_FREE) -    return TRUE; - -  return FALSE; -} +strong_alias(__xdr_int,xdr_int)  /*   * XDR unsigned long integers   * The definition of xdr_u_long() is kept for backward   * compatibility. Instead xdr_u_int() should be used.   */ -bool_t -xdr_u_long (XDR *xdrs, u_long *ulp) +bool_t attribute_hidden +__xdr_u_long (XDR *xdrs, u_long *ulp)  {    switch (xdrs->x_op)      { @@ -215,6 +212,42 @@ xdr_u_long (XDR *xdrs, u_long *ulp)      }    return FALSE;  } +strong_alias(__xdr_u_long,xdr_u_long) + +/* + * XDR unsigned integers + */ +bool_t attribute_hidden +__xdr_u_int (XDR *xdrs, u_int *up) +{ +#if UINT_MAX < ULONG_MAX +  u_long l; + +  switch (xdrs->x_op) +    { +    case XDR_ENCODE: +      l = (u_long) * up; +      return XDR_PUTLONG (xdrs, &l); + +    case XDR_DECODE: +      if (!XDR_GETLONG (xdrs, &l)) +	{ +	  return FALSE; +	} +      *up = (u_int) l; +    case XDR_FREE: +      return TRUE; +    } +  return FALSE; +#elif UINT_MAX == ULONG_MAX +  return __xdr_u_long (xdrs, (u_long *) up); +#elif UINT_MAX == USHRT_MAX +  return __xdr_short (xdrs, (short *) up); +#else +#error unexpected integer sizes in xdr_u_int() +#endif +} +strong_alias(__xdr_u_int,xdr_u_int)  /*   * XDR hyper integers @@ -296,34 +329,6 @@ xdr_u_longlong_t (XDR *xdrs, u_quad_t *ullp)  }  /* - * XDR short integers - */ -bool_t -xdr_short (XDR *xdrs, short *sp) -{ -  long l; - -  switch (xdrs->x_op) -    { -    case XDR_ENCODE: -      l = (long) *sp; -      return XDR_PUTLONG (xdrs, &l); - -    case XDR_DECODE: -      if (!XDR_GETLONG (xdrs, &l)) -	{ -	  return FALSE; -	} -      *sp = (short) l; -      return TRUE; - -    case XDR_FREE: -      return TRUE; -    } -  return FALSE; -} - -/*   * XDR unsigned short integers   */  bool_t @@ -361,7 +366,7 @@ xdr_char (XDR *xdrs, char *cp)    int i;    i = (*cp); -  if (!xdr_int (xdrs, &i)) +  if (!__xdr_int (xdrs, &i))      {        return FALSE;      } @@ -378,7 +383,7 @@ xdr_u_char (XDR *xdrs, u_char *cp)    u_int u;    u = (*cp); -  if (!xdr_u_int (xdrs, &u)) +  if (!__xdr_u_int (xdrs, &u))      {        return FALSE;      } @@ -389,8 +394,8 @@ xdr_u_char (XDR *xdrs, u_char *cp)  /*   * XDR booleans   */ -bool_t -xdr_bool (XDR *xdrs, bool_t *bp) +bool_t attribute_hidden +__xdr_bool (XDR *xdrs, bool_t *bp)  {    long lb; @@ -413,12 +418,13 @@ xdr_bool (XDR *xdrs, bool_t *bp)      }    return FALSE;  } +strong_alias(__xdr_bool,xdr_bool)  /*   * XDR enumerations   */ -bool_t -xdr_enum (XDR *xdrs, enum_t *ep) +bool_t attribute_hidden +__xdr_enum (XDR *xdrs, enum_t *ep)  {    enum sizecheck      { @@ -451,26 +457,27 @@ xdr_enum (XDR *xdrs, enum_t *ep)  	}        return FALSE;  #else -      return xdr_long (xdrs, (long *) ep); +      return __xdr_long (xdrs, (long *) ep);  #endif      }    else if (sizeof (enum sizecheck) == sizeof (short))      { -      return xdr_short (xdrs, (short *) ep); +      return __xdr_short (xdrs, (short *) ep);      }    else      {        return FALSE;      }  } +strong_alias(__xdr_enum,xdr_enum)  /*   * XDR opaque data   * Allows the specification of a fixed size sequence of opaque bytes.   * cp points to the opaque object and cnt gives the byte length.   */ -bool_t -xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt) +bool_t attribute_hidden +__xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt)  {    u_int rndup;    static char crud[BYTES_PER_XDR_UNIT]; @@ -513,6 +520,7 @@ xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt)      }    return FALSE;  } +strong_alias(__xdr_opaque,xdr_opaque)  /*   * XDR counted bytes @@ -528,7 +536,7 @@ __xdr_bytes (XDR *xdrs, char **cpp, u_int *sizep, u_int maxsize)    /*     * first deal with the length since xdr bytes are counted     */ -  if (!xdr_u_int (xdrs, sizep)) +  if (!__xdr_u_int (xdrs, sizep))      {        return FALSE;      } @@ -565,7 +573,7 @@ __xdr_bytes (XDR *xdrs, char **cpp, u_int *sizep, u_int maxsize)        /* fall into ... */      case XDR_ENCODE: -      return xdr_opaque (xdrs, sp, nodesize); +      return __xdr_opaque (xdrs, sp, nodesize);      case XDR_FREE:        if (sp != NULL) @@ -610,7 +618,7 @@ __xdr_union (XDR *xdrs, enum_t *dscmp, char *unp, const struct xdr_discrim *choi    /*     * we deal with the discriminator;  it's an enum     */ -  if (!xdr_enum (xdrs, dscmp)) +  if (!__xdr_enum (xdrs, dscmp))      {        return FALSE;      } @@ -648,11 +656,8 @@ strong_alias(__xdr_union,xdr_union)   * storage is allocated.  The last parameter is the max allowed length   * of the string as specified by a protocol.   */ -bool_t -xdr_string (xdrs, cpp, maxsize) -     XDR *xdrs; -     char **cpp; -     u_int maxsize; +bool_t attribute_hidden +__xdr_string (XDR *xdrs, char **cpp, u_int maxsize)  {    char *sp = *cpp;	/* sp is the actual string pointer */    u_int size; @@ -677,7 +682,7 @@ xdr_string (xdrs, cpp, maxsize)      case XDR_DECODE:        break;      } -  if (!xdr_u_int (xdrs, &size)) +  if (!__xdr_u_int (xdrs, &size))      {        return FALSE;      } @@ -714,7 +719,7 @@ xdr_string (xdrs, cpp, maxsize)        /* fall into ... */      case XDR_ENCODE: -      return xdr_opaque (xdrs, sp, size); +      return __xdr_opaque (xdrs, sp, size);      case XDR_FREE:        mem_free (sp, nodesize); @@ -733,7 +738,7 @@ xdr_wrapstring (xdrs, cpp)       XDR *xdrs;       char **cpp;  { -  if (xdr_string (xdrs, cpp, LASTUNSIGNED)) +  if (__xdr_string (xdrs, cpp, LASTUNSIGNED))      {        return TRUE;      } diff --git a/libc/inet/rpc/xdr_array.c b/libc/inet/rpc/xdr_array.c index 584174e22..a4e50fa8d 100644 --- a/libc/inet/rpc/xdr_array.c +++ b/libc/inet/rpc/xdr_array.c @@ -40,6 +40,8 @@ static char sccsid[] = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro";   * arrays.  See xdr.h for more info on the interface to xdr.   */ +#define xdr_u_int __xdr_u_int +  #define __FORCE_GLIBC  #define _GNU_SOURCE  #include <features.h> @@ -64,14 +66,8 @@ static char sccsid[] = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro";   * elsize is the size (in bytes) of each element, and elproc is the   * xdr procedure to call to handle each element of the array.   */ -bool_t -xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc) -     XDR *xdrs; -     caddr_t *addrp;		/* array pointer */ -     u_int *sizep;		/* number of elements */ -     u_int maxsize;		/* max numberof elements */ -     u_int elsize;		/* size in bytes of each element */ -     xdrproc_t elproc;		/* xdr routine to handle each element */ +bool_t attribute_hidden +__xdr_array (XDR *xdrs, caddr_t *addrp, u_int *sizep, u_int maxsize, u_int elsize, xdrproc_t elproc)  {    u_int i;    caddr_t target = *addrp; @@ -145,6 +141,7 @@ xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc)      }    return stat;  } +strong_alias(__xdr_array,xdr_array)  /*   * xdr_vector(): diff --git a/libc/inet/rpc/xdr_rec.c b/libc/inet/rpc/xdr_rec.c index 749955401..a8d95e162 100644 --- a/libc/inet/rpc/xdr_rec.c +++ b/libc/inet/rpc/xdr_rec.c @@ -476,8 +476,8 @@ xdrrec_putint32 (XDR *xdrs, const int32_t *ip)   * Before reading (deserializing from the stream, one should always call   * this procedure to guarantee proper record alignment.   */ -bool_t -xdrrec_skiprecord (XDR *xdrs) +bool_t attribute_hidden +__xdrrec_skiprecord (XDR *xdrs)  {    RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private; @@ -492,14 +492,15 @@ xdrrec_skiprecord (XDR *xdrs)    rstrm->last_frag = FALSE;    return TRUE;  } +strong_alias(__xdrrec_skiprecord,xdrrec_skiprecord)  /*   * Lookahead function.   * Returns TRUE iff there is no more input in the buffer   * after consuming the rest of the current record.   */ -bool_t -xdrrec_eof (XDR *xdrs) +bool_t attribute_hidden +__xdrrec_eof (XDR *xdrs)  {    RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private; @@ -515,6 +516,7 @@ xdrrec_eof (XDR *xdrs)      return TRUE;    return FALSE;  } +strong_alias(__xdrrec_eof,xdrrec_eof)  /*   * The client must tell the package when an end-of-record has occurred. @@ -522,8 +524,8 @@ xdrrec_eof (XDR *xdrs)   * (output) tcp stream.  (This lets the package support batched or   * pipelined procedure calls.)  TRUE => immediate flush to tcp connection.   */ -bool_t -xdrrec_endofrecord (XDR *xdrs, bool_t sendnow) +bool_t attribute_hidden +__xdrrec_endofrecord (XDR *xdrs, bool_t sendnow)  {    RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;    u_long len;		/* fragment length */ @@ -541,7 +543,7 @@ xdrrec_endofrecord (XDR *xdrs, bool_t sendnow)    rstrm->out_finger += BYTES_PER_XDR_UNIT;    return TRUE;  } - +strong_alias(__xdrrec_endofrecord,xdrrec_endofrecord)  /*   * Internal useful routines diff --git a/libc/inet/rpc/xdr_reference.c b/libc/inet/rpc/xdr_reference.c index 177c25059..478c8e906 100644 --- a/libc/inet/rpc/xdr_reference.c +++ b/libc/inet/rpc/xdr_reference.c @@ -40,6 +40,8 @@ static char sccsid[] = "@(#)xdr_reference.c 1.11 87/08/11 SMI";   * "pointers".  See xdr.h for more info on the interface to xdr.   */ +#define xdr_bool __xdr_bool +  #define __FORCE_GLIBC  #define _GNU_SOURCE  #include <features.h> @@ -66,12 +68,8 @@ static char sccsid[] = "@(#)xdr_reference.c 1.11 87/08/11 SMI";   * size is the size of the referneced structure.   * proc is the routine to handle the referenced structure.   */ -bool_t -xdr_reference (xdrs, pp, size, proc) -     XDR *xdrs; -     caddr_t *pp;		/* the pointer to work on */ -     u_int size;		/* size of the object pointed to */ -     xdrproc_t proc;		/* xdr routine to handle the object */ +bool_t attribute_hidden +__xdr_reference (XDR *xdrs, caddr_t *pp, u_int size, xdrproc_t proc)  {    caddr_t loc = *pp;    bool_t stat; @@ -110,7 +108,7 @@ xdr_reference (xdrs, pp, size, proc)      }    return stat;  } - +strong_alias(__xdr_reference,xdr_reference)  /*   * xdr_pointer(): @@ -151,5 +149,5 @@ xdr_pointer (xdrs, objpp, obj_size, xdr_obj)        *objpp = NULL;        return TRUE;      } -  return xdr_reference (xdrs, objpp, obj_size, xdr_obj); +  return __xdr_reference (xdrs, objpp, obj_size, xdr_obj);  } | 
