aboutsummaryrefslogtreecommitdiff
path: root/sunrpc
diff options
context:
space:
mode:
Diffstat (limited to 'sunrpc')
-rw-r--r--sunrpc/Makefile2
-rw-r--r--sunrpc/Versions6
-rw-r--r--sunrpc/rpc/xdr.h8
-rw-r--r--sunrpc/xdr.c39
-rw-r--r--sunrpc/xdr_intXX_t.c147
5 files changed, 157 insertions, 45 deletions
diff --git a/sunrpc/Makefile b/sunrpc/Makefile
index 0a327ea..5ab9fb5 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 b840939..e1a74ae 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 fe72abb..dd9959a 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 0e3e5fc..57552c4 100644
--- a/sunrpc/xdr.c
+++ b/sunrpc/xdr.c
@@ -152,45 +152,6 @@ xdr_u_int (XDR *xdrs, u_int *up)
}
/*
- * 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 0000000..98132cd
--- /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 <kukuk@vt.uni-paderborn.de>, 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 <rpc/types.h>
+#include <rpc/xdr.h>
+
+/* 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;
+ }
+}