|
From: Chuck L. <chu...@or...> - 2013-11-29 18:04:40
|
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 <chu...@or...>
---
src/xdr.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
tirpc/rpc/xdr.h | 4 ++++
2 files changed, 52 insertions(+)
diff --git a/src/xdr.c b/src/xdr.c
index 221f31e..c645dea 100644
--- a/src/xdr.c
+++ b/src/xdr.c
@@ -255,6 +255,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
*/
bool_t
@@ -377,6 +389,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
*/
bool_t
@@ -439,6 +463,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
*/
bool_t
@@ -866,6 +902,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
*/
bool_t
diff --git a/tirpc/rpc/xdr.h b/tirpc/rpc/xdr.h
index 8518e91..450aa17 100644
--- a/tirpc/rpc/xdr.h
+++ b/tirpc/rpc/xdr.h
@@ -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);
|