Imported Upstream version 0.2.5
[platform/upstream/libtirpc.git] / src / xdr.c
index fb31f54..1142a88 100644 (file)
--- 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,92 @@ 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
+xdr_int8_t(xdrs, int8_p)
+       XDR *xdrs;
+       int8_t *int8_p;
+{
+       long l;
+
+       switch (xdrs->x_op) {
+
+       case XDR_ENCODE:
+               l = (long) *int8_p;
+               return (XDR_PUTLONG(xdrs, &l));
+
+       case XDR_DECODE:
+               if (!XDR_GETLONG(xdrs, &l)) {
+                       return (FALSE);
+               }
+               *int8_p = (int8_t) l;
+               return (TRUE);
+
+       case XDR_FREE:
+               return (TRUE);
+       }
+       /* NOTREACHED */
+       return (FALSE);
+}
+
+
+/*
+ * XDR unsigned 8-bit integers
+ */
+bool_t
+xdr_u_int8_t(xdrs, uint8_p)
+       XDR *xdrs;
+       uint8_t *uint8_p;
+{
+       u_long l;
+
+       switch (xdrs->x_op) {
+
+       case XDR_ENCODE:
+               l = (u_long) *uint8_p;
+               return (XDR_PUTLONG(xdrs, (long *)&l));
+
+       case XDR_DECODE:
+               if (!XDR_GETLONG(xdrs, (long *)&l)) {
+                       return (FALSE);
+               }
+               *uint8_p = (uint8_t) l;
+               return (TRUE);
+
+       case XDR_FREE:
+               return (TRUE);
+       }
+       /* NOTREACHED */
+       return (FALSE);
+}
+
+
+/*
+ * 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
@@ -804,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
@@ -869,3 +979,26 @@ xdr_u_longlong_t(xdrs, ullp)
         */
        return (xdr_u_int64_t(xdrs, (u_int64_t *)ullp));
 }
+
+/*
+ * XDR quad_t
+ */
+bool_t
+xdr_quad_t(xdrs, llp)
+       XDR *xdrs;
+       int64_t *llp;
+{
+       return (xdr_int64_t(xdrs, (int64_t *)llp));
+}
+
+
+/*
+ * XDR u_quad_t
+ */
+bool_t
+xdr_u_quad_t(xdrs, ullp)
+       XDR *xdrs;
+       u_int64_t *ullp;
+{
+       return (xdr_u_int64_t(xdrs, (u_int64_t *)ullp));
+}