xdr_simple(3N)

xdr_simple: xdr_bool, xdr_char, xdr_double, xdr_enum, xdr_float, xdr_free, xdr_hyper, xdr_int32, xdr_int64, xdr_int, xdr_long, xdr_longlong, xdr_longlong_t, xdr_short, xdr_time_t, xdr_u_char, xdr_u_hyper, xdr_u_int, xdr_u_long, xdr_u_longlong, xdr_u_longlong_t, xdr_u_short, xdr_uint32, xdr_uint64, xdr_void - library routines for external data representation

As shipped in IRIX 6.5.30. Last changed in IRIX 6.5.19.

NAME
     xdr_simple: xdr_bool, xdr_char, xdr_double, xdr_enum, xdr_float,
     xdr_free, xdr_hyper, xdr_int32, xdr_int64, xdr_int, xdr_long,
     xdr_longlong, xdr_longlong_t, xdr_short, xdr_time_t, xdr_u_char,
     xdr_u_hyper, xdr_u_int, xdr_u_long, xdr_u_longlong, xdr_u_longlong_t,
     xdr_u_short, xdr_uint32, xdr_uint64, xdr_void - library routines for
     external data representation

DESCRIPTION
     XDR library routines allow C programmers to describe simple data
     structures in a machine-independent fashion.  Protocols such as remote
     procedure calls (RPC) use these routines to describe the format of the
     data.

     These routines require the creation of XDR streams [see xdr_create(3N)].

   Routines
     See rpc(3N) for the definition of the XDR data structure.

     #include <rpc/xdr.h>

     bool_t
     xdr_bool(XDR *xdrs, bool_t *bp);

          xdr_bool translates between booleans (C integers) and their external
          representations.  When encoding data, this filter produces values of
          either 1 or 0.  This routine returns 1 if it succeeds, 0 otherwise.

     bool_t
     xdr_char(XDR *xdrs, char *cp);

          xdr_char translates between C characters and their external
          representations.  This routine returns 1 if it succeeds, 0
          otherwise.  Note:  encoded characters are not packed, and occupy 4
          bytes each.  For arrays of characters, it is worthwhile to consider
          xdr_bytes, xdr_opaque or xdr_string [see xdr_bytes, xdr_opaque and
          xdr_string in xdr_complex(3N)].

     bool_t
     xdr_double(XDR *xdrs, double *dp);

          xdr_double translates between C double precision numbers and their
          external representations.  This routine returns 1 if it succeeds, 0
          otherwise.

     bool_t
     xdr_enum(XDR *xdrs, enum_t *ep);

          xdr_enum translates between C enums (actually integers) and their
          external representations.  This routine returns 1 if it succeeds, 0
          otherwise.

     bool_t
     xdr_float(XDR *xdrs, float *fp);

          xdr_float translates between C floats and their external
          representations.  This routine returns 1 if it succeeds, 0
          otherwise.

     void
     xdr_free(xdrproc_t proc, char *objp);

          Generic freeing routine.  The first argument is the XDR routine for
          the object being freed.  The second argument is a pointer to the
          object itself.  Note:  the pointer passed to this routine is not
          freed, but what it points to is freed (recursively).

     bool_t
     xdr_int(XDR *xdrs, int *ip);
     bool_t
     xdr_int32(XDR *xdrs, int *ip);

          xdr_int translates between C integers and their external
          representations.  This routine returns 1 if it succeeds, 0
          otherwise. xdr_int32 is a synonym for xdr_int.

     bool_t
     xdr_long(XDR *xdrs, long *lp);

          xdr_long translates between C long integers and their external
          representations.  This routine returns 1 if it succeeds, 0
          otherwise.

          Note: In the IRIX 64-bit ABI, this routine may be somewhat
          misleading. The external representation of a long integer is defined
          by the XDR standard to be a 32 bit encoding, but in the IRIX 64-bit
          ABI, a long integer is 64 bits. Hence, in the IRIX 64-bit ABI, long
          integers are truncated by xdr_long, and xdr_long is only useful for
          encoding/decoding values in the range of -2147483648 to 2147483647.

     bool_t
     xdr_longlong_t(XDR *xdrs, __int64_t *lp);
     bool_t
     xdr_longlong(XDR *xdrs, __int64_t *lp);
     bool_t
     xdr_int64(XDR *xdrs, __int64_t *lp);
     bool_t
     xdr_hyper(XDR *xdrs, __int64_t *lp);

          xdr_longlong_t translates between C 64-bit integers and their
          external representations.  This routine returns 1 if it succeeds, 0
          otherwise. xdr_longlong, xdr_hyper and xdr_int64 are synonyms for
          xdr_longlong_t.

     bool_t
     xdr_short(XDR *xdrs, short *sp);

          xdr_short translates between C short integers and their external
          representations.  This routine returns 1 if it succeeds, 0
          otherwise.

     bool_t
     xdr_time_t(XDR *xdrs, time_t *tp);

          xdr_time_t translates between local representation of time_t, which
          on Irix is a 32bit integer, and its external representations. This
          routine returns 1 if it succeeds, 0 otherwise.

     bool_t
     xdr_u_char(XDR *xdrs, char *ucp);

          xdr_u_char translates between unsigned C characters and their
          external representations.  This routine returns 1 if it succeeds, 0
          otherwise.

     bool_t
     xdr_u_int(XDR *xdrs, unsigned int *ip);
     bool_t
     xdr_uint32(XDR *xdrs, unsigned int *ip);

          xdr_u_int translates between unsigned C integers and their external
          representations.  This routine returns 1 if it succeeds, 0
          otherwise. xdr_uint32 is a synonym for xdr_u_int.

     bool_t
     xdr_u_long(XDR *xdrs, unsigned long *ulp);

          xdr_u_long translates between C unsigned long integers and their
          external representations.  This routine returns 1 if it succeeds, 0
          otherwise.

          Note: In the IRIX 64-bit ABI, this routine may be somewhat
          misleading. The external representation of an unsigned long integer
          is defined by the XDR standard to be a 32 bit encoding, but in the
          IRIX 64-bit ABI, an unsigned long integer is 64 bits. Hence, in the
          IRIX 64-bit ABI, unsigned long integers are truncated by xdr_u_long,
          and xdr_u_long is only useful for encoding/decoding values in the
          range of 0 to 4294967295.

     bool_t
     xdr_u_longlong_t(XDR *xdrs, __uint64_t *lp);
     bool_t
     xdr_u_longlong(XDR *xdrs, __uint64_t *lp);
     bool_t
     xdr_uint64(XDR *xdrs, __uint64_t *lp);
     bool_t
     xdr_u_hyper(XDR *xdrs, __uint64_t *lp);

          xdr_u_longlong_t translates between C unsigned 64-bit integers and
          their external representations.  This routine returns 1 if it
          succeeds, 0 otherwise. xdr_u_longlong, xdr_u_hyper and xdr_uint64
          are synonyms for xdr_u_longlong_t.

     bool_t
     xdr_u_short(XDR *xdrs, unsigned short *usp);

          xdr_u_short translates between C unsigned short integers and their
          external representations.  This routine returns 1 if it succeeds, 0
          otherwise.

     bool_t
     xdr_void(XDR *xdrs, void *vp);

          This routine always returns 1.  It may be passed to RPC routines
          that require a function parameter, where nothing is to be done.

SEE ALSO
     rpc(3N), xdr(3N), xdr_admin(3N), xdr_complex(3N), xdr_create(3N)