]> granicus.if.org Git - libtirpc/commitdiff
Add compatibility XDR functions for unsigned integers
authorChuck Lever <chuck.lever@oracle.com>
Mon, 9 Dec 2013 16:15:42 +0000 (11:15 -0500)
committerSteve Dickson <steved@redhat.com>
Mon, 9 Dec 2013 16:19:10 +0000 (11:19 -0500)
For compatibility with glibc and Solaris, add synonyms for the
existing XDR functions that handle sized unsigned integers.

Note that the NFSv4 protocol specifications define the protocol in
terms of "uint32" and "uint64" rather than using the "u_int"
versions.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
src/xdr.c
tirpc/rpc/xdr.h

index 221f31ebdf88a3d1a53a6087668e4cf443c2fd32..c645dea6aae1279e5fb0d1c39129ef51b493d533 100644 (file)
--- a/src/xdr.c
+++ b/src/xdr.c
@@ -254,6 +254,18 @@ xdr_u_int32_t(xdrs, u_int32_p)
 }
 
 
+/*
+ * XDR unsigned 32-bit integers
+ */
+bool_t
+xdr_uint32_t(xdrs, uint32_p)
+       XDR *xdrs;
+       uint32_t *uint32_p;
+{
+       return (xdr_u_int32_t(xdrs, (u_int32_t *)uint32_p));
+}
+
+
 /*
  * XDR short integers
  */
@@ -376,6 +388,18 @@ xdr_u_int16_t(xdrs, u_int16_p)
 }
 
 
+/*
+ * XDR unsigned 16-bit integers
+ */
+bool_t
+xdr_uint16_t(xdrs, uint16_p)
+       XDR *xdrs;
+       uint16_t *uint16_p;
+{
+       return (xdr_u_int16_t(xdrs, (u_int16_t *)uint16_p));
+}
+
+
 /*
  * XDR 8-bit integers
  */
@@ -438,6 +462,18 @@ xdr_u_int8_t(xdrs, uint8_p)
 }
 
 
+/*
+ * XDR unsigned 8-bit integers
+ */
+bool_t
+xdr_uint8_t(xdrs, uint8_p)
+       XDR *xdrs;
+       uint8_t *uint8_p;
+{
+       return (xdr_u_int8_t(xdrs, (uint8_t *)uint8_p));
+}
+
+
 /*
  * XDR a char
  */
@@ -865,6 +901,18 @@ xdr_u_int64_t(xdrs, ullp)
 }
 
 
+/*
+ * XDR unsigned 64-bit integers
+ */
+bool_t
+xdr_uint64_t(xdrs, ullp)
+       XDR *xdrs;
+       uint64_t *ullp;
+{
+       return (xdr_u_int64_t(xdrs, (u_int64_t *)ullp));
+}
+
+
 /*
  * XDR hypers
  */
index 8518e9147fe8ef8a654c408ef1f94c143b9aaaed..450aa17dfc360438b3518976278cb047369d3214 100644 (file)
@@ -297,12 +297,16 @@ extern bool_t     xdr_short(XDR *, short *);
 extern bool_t  xdr_u_short(XDR *, u_short *);
 extern bool_t  xdr_int8_t(XDR *, int8_t *);
 extern bool_t  xdr_u_int8_t(XDR *, uint8_t *);
+extern bool_t  xdr_uint8_t(XDR *, uint8_t *);
 extern bool_t  xdr_int16_t(XDR *, int16_t *);
 extern bool_t  xdr_u_int16_t(XDR *, u_int16_t *);
+extern bool_t  xdr_uint16_t(XDR *, uint16_t *);
 extern bool_t  xdr_int32_t(XDR *, int32_t *);
 extern bool_t  xdr_u_int32_t(XDR *, u_int32_t *);
+extern bool_t  xdr_uint32_t(XDR *, uint32_t *);
 extern bool_t  xdr_int64_t(XDR *, int64_t *);
 extern bool_t  xdr_u_int64_t(XDR *, u_int64_t *);
+extern bool_t  xdr_uint64_t(XDR *, uint64_t *);
 extern bool_t  xdr_bool(XDR *, bool_t *);
 extern bool_t  xdr_enum(XDR *, enum_t *);
 extern bool_t  xdr_array(XDR *, char **, u_int *, u_int, u_int, xdrproc_t);