From 5713a71e1aeb46a2f9774b7a17c4236fca1cab02 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 30 Nov 1998 16:42:19 +0000 Subject: Update. 1998-11-29 Thorsten Kukuk * sunrpc/Makefile: Add xdr_intXX_t to routines. * sunrpc/Versions: Add xdr_int8_t, xdr_uint8_t, xdr_in16_t and xdr_uint16_t. * sunrpc/rpc/xdr.h: Add prototypes for new xdr_intXX_t functions. * sunrpc/xdr.c: Remove xdr_int32_t and xdr_uint32_t. * sunrpc/xdr_intXX_t.c: New, contains all xdr_intXX_t functions. * nis/Depend: New. * nis/nss_nis/nis-service.c: Include generated prototype for parser. --- sunrpc/Makefile | 2 +- sunrpc/Versions | 6 +-- sunrpc/rpc/xdr.h | 8 ++- sunrpc/xdr.c | 39 -------------- sunrpc/xdr_intXX_t.c | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 157 insertions(+), 45 deletions(-) create mode 100644 sunrpc/xdr_intXX_t.c (limited to 'sunrpc') diff --git a/sunrpc/Makefile b/sunrpc/Makefile index 0a327ea4f7..5ab9fb5941 100644 --- a/sunrpc/Makefile +++ b/sunrpc/Makefile @@ -67,7 +67,7 @@ routines := auth_none auth_unix authuxprot bindrsvprt \ xdr_rec xdr_ref xdr_stdio publickey xdr_sizeof \ auth_des authdes_prot des_crypt des_impl des_soft \ key_call key_prot netname openchild rtime svcauth_des xcrypt\ - clnt_unix svc_unix create_xid + clnt_unix svc_unix create_xid xdr_intXX_t others := rpcinfo install-bin := rpcgen diff --git a/sunrpc/Versions b/sunrpc/Versions index b840939a04..e1a74aedfd 100644 --- a/sunrpc/Versions +++ b/sunrpc/Versions @@ -96,8 +96,8 @@ libc { # x* xdecrypt; xdr_authdes_cred; xdr_authdes_verf; xdr_cryptkeyarg; xdr_cryptkeyarg2; xdr_cryptkeyres; xdr_des_block; - xdr_getcredres; xdr_int32_t; xdr_key_netstarg; xdr_key_netstres; - xdr_keybuf; xdr_keystatus; xdr_netnamestr; xdr_sizeof; xdr_uint32_t; - xdr_unixcred; + xdr_getcredres; xdr_int16_t; xdr_int32_t; xdr_int8_t; xdr_key_netstarg; + xdr_key_netstres; xdr_keybuf; xdr_keystatus; xdr_netnamestr; xdr_sizeof; + xdr_uint16_t; xdr_uint32_t; xdr_uint8_t; xdr_unixcred; } } diff --git a/sunrpc/rpc/xdr.h b/sunrpc/rpc/xdr.h index fe72abb7d8..dd9959aa5e 100644 --- a/sunrpc/rpc/xdr.h +++ b/sunrpc/rpc/xdr.h @@ -271,12 +271,16 @@ struct xdr_discrim extern bool_t xdr_void __P ((void)); extern bool_t xdr_int __P ((XDR *__xdrs, int *__ip)); extern bool_t xdr_u_int __P ((XDR *__xdrs, u_int *__up)); -extern bool_t xdr_int32_t __P ((XDR *__xdrs, int32_t *__ip)); -extern bool_t xdr_uint32_t __P ((XDR *__xdrs, uint32_t *__up)); extern bool_t xdr_long __P ((XDR *__xdrs, long *__lp)); extern bool_t xdr_u_long __P ((XDR *__xdrs, u_long *__ulp)); extern bool_t xdr_short __P ((XDR *__xdrs, short *__sp)); extern bool_t xdr_u_short __P ((XDR *__xdrs, u_short *__usp)); +extern bool_t xdr_int8_t __P ((XDR *__xdrs, int8_t *__ip)); +extern bool_t xdr_uint8_t __P ((XDR *__xdrs, uint8_t *__up)); +extern bool_t xdr_int16_t __P ((XDR *__xdrs, int16_t *__ip)); +extern bool_t xdr_uint16_t __P ((XDR *__xdrs, uint16_t *__up)); +extern bool_t xdr_int32_t __P ((XDR *__xdrs, int32_t *__ip)); +extern bool_t xdr_uint32_t __P ((XDR *__xdrs, uint32_t *__up)); extern bool_t xdr_bool __P ((XDR *__xdrs, bool_t *__bp)); extern bool_t xdr_enum __P ((XDR *__xdrs, enum_t *__ep)); extern bool_t xdr_array __P ((XDR * _xdrs, caddr_t *__addrp, u_int *__sizep, diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c index 0e3e5fc63a..57552c4427 100644 --- a/sunrpc/xdr.c +++ b/sunrpc/xdr.c @@ -151,45 +151,6 @@ xdr_u_int (XDR *xdrs, u_int *up) #endif } -/* - * XDR 32bit integers - */ -bool_t -xdr_int32_t (XDR *xdrs, int32_t *lp) -{ - - if (xdrs->x_op == XDR_ENCODE) - return XDR_PUTINT32 (xdrs, lp); - - if (xdrs->x_op == XDR_DECODE) - return XDR_GETINT32 (xdrs, lp); - - if (xdrs->x_op == XDR_FREE) - return TRUE; - - return FALSE; -} - -/* - * XDR 32bit unsigned integers - */ -bool_t -xdr_uint32_t (XDR *xdrs, uint32_t *ulp) -{ - switch (xdrs->x_op) - { - case XDR_DECODE: - return XDR_GETINT32 (xdrs, (uint32_t *) ulp); - - case XDR_ENCODE: - return XDR_PUTINT32 (xdrs, (uint32_t *) ulp); - - case XDR_FREE: - return TRUE; - } - return FALSE; -} - /* * XDR long integers * same as xdr_u_long - open coded to save a proc call! diff --git a/sunrpc/xdr_intXX_t.c b/sunrpc/xdr_intXX_t.c new file mode 100644 index 0000000000..98132cd802 --- /dev/null +++ b/sunrpc/xdr_intXX_t.c @@ -0,0 +1,147 @@ +/* Copyright (c) 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Thorsten Kukuk , 1998. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include +#include + +/* XDR 32bit integers */ +bool_t +xdr_int32_t (XDR *xdrs, int32_t *lp) +{ + switch (xdrs->x_op) + { + case XDR_ENCODE: + return XDR_PUTINT32 (xdrs, lp); + case XDR_DECODE: + return XDR_GETINT32 (xdrs, lp); + case XDR_FREE: + return TRUE; + default: + return FALSE; + } +} + +/* XDR 32bit unsigned integers */ +bool_t +xdr_uint32_t (XDR *xdrs, uint32_t *ulp) +{ + switch (xdrs->x_op) + { + case XDR_DECODE: + return XDR_GETINT32 (xdrs, (int32_t *) ulp); + case XDR_ENCODE: + return XDR_PUTINT32 (xdrs, (int32_t *) ulp); + case XDR_FREE: + return TRUE; + default: + return FALSE; + } +} + +/* XDR 16bit integers */ +bool_t +xdr_int16_t (XDR *xdrs, int16_t *ip) +{ + int32_t t; + + switch (xdrs->x_op) + { + case XDR_ENCODE: + t = (int32_t) *ip; + return XDR_PUTINT32 (xdrs, &t); + case XDR_DECODE: + if (!XDR_GETINT32 (xdrs, &t)) + return FALSE; + *ip = (int16_t) t; + return TRUE; + case XDR_FREE: + return TRUE; + default: + return FALSE; + } +} + +/* XDR 16bit unsigned integers */ +bool_t +xdr_uint16_t (XDR *xdrs, uint16_t *uip) +{ + uint32_t ut; + + switch (xdrs->x_op) + { + case XDR_DECODE: + ut = (uint32_t) *uip; + return XDR_GETINT32 (xdrs, (int32_t *) &ut); + case XDR_ENCODE: + if (!XDR_PUTINT32 (xdrs, (int32_t *) &ut)) + return FALSE; + *uip = (uint16_t) ut; + return TRUE; + case XDR_FREE: + return TRUE; + default: + return FALSE; + } +} + +/* XDR 8bit integers */ +bool_t +xdr_int8_t (XDR *xdrs, int8_t *ip) +{ + int32_t t; + + switch (xdrs->x_op) + { + case XDR_ENCODE: + t = (int32_t) *ip; + return XDR_PUTINT32 (xdrs, &t); + case XDR_DECODE: + if (!XDR_GETINT32 (xdrs, &t)) + return FALSE; + *ip = (int8_t) t; + return TRUE; + case XDR_FREE: + return TRUE; + default: + return FALSE; + } +} + +/* XDR 8bit unsigned integers */ +bool_t +xdr_uint8_t (XDR *xdrs, uint8_t *uip) +{ + uint32_t ut; + + switch (xdrs->x_op) + { + case XDR_DECODE: + ut = (uint32_t) *uip; + return XDR_GETINT32 (xdrs, (int32_t *) &ut); + case XDR_ENCODE: + if (!XDR_PUTINT32 (xdrs, (int32_t *) &ut)) + return FALSE; + *uip = (uint8_t) ut; + return TRUE; + case XDR_FREE: + return TRUE; + default: + return FALSE; + } +} -- cgit 1.4.1