summaryrefslogtreecommitdiff
path: root/libc/inet/rpc/xdr_float.c
diff options
context:
space:
mode:
Diffstat (limited to 'libc/inet/rpc/xdr_float.c')
-rw-r--r--libc/inet/rpc/xdr_float.c154
1 files changed, 83 insertions, 71 deletions
diff --git a/libc/inet/rpc/xdr_float.c b/libc/inet/rpc/xdr_float.c
index ce7b6e07f..f8eb5e99c 100644
--- a/libc/inet/rpc/xdr_float.c
+++ b/libc/inet/rpc/xdr_float.c
@@ -28,7 +28,9 @@
* Mountain View, California 94043
*/
#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
+static char sccsid[] =
+
+ "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
#endif
/*
@@ -59,18 +61,18 @@ static char sccsid[] = "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
#ifdef vax
/* What IEEE single precision floating point looks like on a Vax */
-struct ieee_single {
- unsigned int mantissa: 23;
- unsigned int exp : 8;
- unsigned int sign : 1;
+struct ieee_single {
+ unsigned int mantissa:23;
+ unsigned int exp:8;
+ unsigned int sign:1;
};
/* Vax single precision floating point */
-struct vax_single {
- unsigned int mantissa1 : 7;
- unsigned int exp : 8;
- unsigned int sign : 1;
- unsigned int mantissa2 : 16;
+struct vax_single {
+ unsigned int mantissa1:7;
+ unsigned int exp:8;
+ unsigned int sign:1;
+ unsigned int mantissa2:16;
};
#define VAX_SNG_BIAS 0x81
@@ -80,17 +82,20 @@ static struct sgl_limits {
struct vax_single s;
struct ieee_single ieee;
} sgl_limits[2] = {
- {{ 0x7f, 0xff, 0x0, 0xffff }, /* Max Vax */
- { 0x0, 0xff, 0x0 }}, /* Max IEEE */
- {{ 0x0, 0x0, 0x0, 0x0 }, /* Min Vax */
- { 0x0, 0x0, 0x0 }} /* Min IEEE */
+ { {
+ 0x7f, 0xff, 0x0, 0xffff}, /* Max Vax */
+ {
+ 0x0, 0xff, 0x0}}, /* Max IEEE */
+ { {
+ 0x0, 0x0, 0x0, 0x0}, /* Min Vax */
+ {
+ 0x0, 0x0, 0x0}} /* Min IEEE */
};
-#endif /* vax */
+#endif /* vax */
-bool_t
-xdr_float(xdrs, fp)
- register XDR *xdrs;
- register float *fp;
+bool_t xdr_float(xdrs, fp)
+register XDR *xdrs;
+register float *fp;
{
#if !defined(mc68000) && !defined(sparc)
struct ieee_single is;
@@ -102,12 +107,13 @@ xdr_float(xdrs, fp)
case XDR_ENCODE:
#if defined(mc68000) || defined(sparc)
- return (XDR_PUTLONG(xdrs, (long *)fp));
+ return (XDR_PUTLONG(xdrs, (long *) fp));
#else
- vs = *((struct vax_single *)fp);
+ vs = *((struct vax_single *) fp);
for (i = 0, lim = sgl_limits;
- i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
- i++, lim++) {
+
+ i < sizeof(sgl_limits) / sizeof(struct sgl_limits);
+ i++, lim++) {
if ((vs.mantissa2 == lim->s.mantissa2) &&
(vs.exp == lim->s.exp) &&
(vs.mantissa1 == lim->s.mantissa1)) {
@@ -117,21 +123,22 @@ xdr_float(xdrs, fp)
}
is.exp = vs.exp - VAX_SNG_BIAS + IEEE_SNG_BIAS;
is.mantissa = (vs.mantissa1 << 16) | vs.mantissa2;
- shipit:
+ shipit:
is.sign = vs.sign;
- return (XDR_PUTLONG(xdrs, (long *)&is));
+ return (XDR_PUTLONG(xdrs, (long *) &is));
#endif
case XDR_DECODE:
#if defined(mc68000) || defined(sparc)
- return (XDR_GETLONG(xdrs, (long *)fp));
+ return (XDR_GETLONG(xdrs, (long *) fp));
#else
- vsp = (struct vax_single *)fp;
- if (!XDR_GETLONG(xdrs, (long *)&is))
+ vsp = (struct vax_single *) fp;
+ if (!XDR_GETLONG(xdrs, (long *) &is))
return (FALSE);
for (i = 0, lim = sgl_limits;
- i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
- i++, lim++) {
+
+ i < sizeof(sgl_limits) / sizeof(struct sgl_limits);
+ i++, lim++) {
if ((is.exp == lim->ieee.exp) &&
(is.mantissa == lim->ieee.mantissa)) {
*vsp = lim->s;
@@ -141,7 +148,7 @@ xdr_float(xdrs, fp)
vsp->exp = is.exp - IEEE_SNG_BIAS + VAX_SNG_BIAS;
vsp->mantissa2 = is.mantissa;
vsp->mantissa1 = (is.mantissa >> 16);
- doneit:
+ doneit:
vsp->sign = is.sign;
return (TRUE);
#endif
@@ -158,21 +165,21 @@ xdr_float(xdrs, fp)
#ifdef vax
/* What IEEE double precision floating point looks like on a Vax */
-struct ieee_double {
- unsigned int mantissa1 : 20;
- unsigned int exp : 11;
- unsigned int sign : 1;
- unsigned int mantissa2 : 32;
+struct ieee_double {
+ unsigned int mantissa1:20;
+ unsigned int exp:11;
+ unsigned int sign:1;
+ unsigned int mantissa2:32;
};
/* Vax double precision floating point */
-struct vax_double {
- unsigned int mantissa1 : 7;
- unsigned int exp : 8;
- unsigned int sign : 1;
- unsigned int mantissa2 : 16;
- unsigned int mantissa3 : 16;
- unsigned int mantissa4 : 16;
+struct vax_double {
+ unsigned int mantissa1:7;
+ unsigned int exp:8;
+ unsigned int sign:1;
+ unsigned int mantissa2:16;
+ unsigned int mantissa3:16;
+ unsigned int mantissa4:16;
};
#define VAX_DBL_BIAS 0x81
@@ -180,27 +187,31 @@ struct vax_double {
#define MASK(nbits) ((1 << nbits) - 1)
static struct dbl_limits {
- struct vax_double d;
- struct ieee_double ieee;
+ struct vax_double d;
+ struct ieee_double ieee;
} dbl_limits[2] = {
- {{ 0x7f, 0xff, 0x0, 0xffff, 0xffff, 0xffff }, /* Max Vax */
- { 0x0, 0x7ff, 0x0, 0x0 }}, /* Max IEEE */
- {{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, /* Min Vax */
- { 0x0, 0x0, 0x0, 0x0 }} /* Min IEEE */
+ { {
+ 0x7f, 0xff, 0x0, 0xffff, 0xffff, 0xffff}, /* Max Vax */
+ {
+ 0x0, 0x7ff, 0x0, 0x0}}, /* Max IEEE */
+ { {
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, /* Min Vax */
+ {
+ 0x0, 0x0, 0x0, 0x0}} /* Min IEEE */
};
-#endif /* vax */
+#endif /* vax */
-bool_t
-xdr_double(xdrs, dp)
- register XDR *xdrs;
- double *dp;
+bool_t xdr_double(xdrs, dp)
+register XDR *xdrs;
+double *dp;
{
register long *lp;
+
#if !defined(mc68000) && !defined(sparc)
- struct ieee_double id;
- struct vax_double vd;
+ struct ieee_double id;
+ struct vax_double vd;
register struct dbl_limits *lim;
int i;
#endif
@@ -209,12 +220,13 @@ xdr_double(xdrs, dp)
case XDR_ENCODE:
#if defined(mc68000) || defined(sparc)
- lp = (long *)dp;
+ lp = (long *) dp;
#else
- vd = *((struct vax_double *)dp);
+ vd = *((struct vax_double *) dp);
for (i = 0, lim = dbl_limits;
- i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
- i++, lim++) {
+
+ i < sizeof(dbl_limits) / sizeof(struct dbl_limits);
+ i++, lim++) {
if ((vd.mantissa4 == lim->d.mantissa4) &&
(vd.mantissa3 == lim->d.mantissa3) &&
(vd.mantissa2 == lim->d.mantissa2) &&
@@ -227,25 +239,25 @@ xdr_double(xdrs, dp)
id.exp = vd.exp - VAX_DBL_BIAS + IEEE_DBL_BIAS;
id.mantissa1 = (vd.mantissa1 << 13) | (vd.mantissa2 >> 3);
id.mantissa2 = ((vd.mantissa2 & MASK(3)) << 29) |
- (vd.mantissa3 << 13) |
- ((vd.mantissa4 >> 3) & MASK(13));
- shipit:
+ (vd.mantissa3 << 13) | ((vd.mantissa4 >> 3) & MASK(13));
+ shipit:
id.sign = vd.sign;
- lp = (long *)&id;
+ lp = (long *) &id;
#endif
return (XDR_PUTLONG(xdrs, lp++) && XDR_PUTLONG(xdrs, lp));
case XDR_DECODE:
#if defined(mc68000) || defined(sparc)
- lp = (long *)dp;
+ lp = (long *) dp;
return (XDR_GETLONG(xdrs, lp++) && XDR_GETLONG(xdrs, lp));
#else
- lp = (long *)&id;
+ lp = (long *) &id;
if (!XDR_GETLONG(xdrs, lp++) || !XDR_GETLONG(xdrs, lp))
return (FALSE);
for (i = 0, lim = dbl_limits;
- i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
- i++, lim++) {
+
+ i < sizeof(dbl_limits) / sizeof(struct dbl_limits);
+ i++, lim++) {
if ((id.mantissa2 == lim->ieee.mantissa2) &&
(id.mantissa1 == lim->ieee.mantissa1) &&
(id.exp == lim->ieee.exp)) {
@@ -256,12 +268,12 @@ xdr_double(xdrs, dp)
vd.exp = id.exp - IEEE_DBL_BIAS + VAX_DBL_BIAS;
vd.mantissa1 = (id.mantissa1 >> 13);
vd.mantissa2 = ((id.mantissa1 & MASK(13)) << 3) |
- (id.mantissa2 >> 29);
+ (id.mantissa2 >> 29);
vd.mantissa3 = (id.mantissa2 >> 13);
vd.mantissa4 = (id.mantissa2 << 3);
- doneit:
+ doneit:
vd.sign = id.sign;
- *dp = *((double *)&vd);
+ *dp = *((double *) &vd);
return (TRUE);
#endif