xdr_simple(3N) xdr_simple(3N)
xdr_simple: xdr_bool, xdr_char, xdr_double, xdr_enum, xdr_float,
xdr_free, xdr_int, xdr_long, xdr_longlong_t, xdr_short, xdr_u_char,
xdr_u_int, xdr_u_long, xdr_u_longlong_t, xdr_u_short, xdr_void - library
routines for external data representation
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 [Toc] [Back]
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.
Page 1
xdr_simple(3N) xdr_simple(3N)
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);
xdr_int translates between C integers and their external
representations. This routine returns 1 if it succeeds, 0
otherwise.
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);
xdr_longlong_t translates between C 64-bit integers and their
external representations. This routine returns 1 if it succeeds, 0
otherwise.
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.
Page 2
xdr_simple(3N) xdr_simple(3N)
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);
xdr_u_int translates between unsigned C integers and their external
representations. This routine returns 1 if it succeeds, 0
otherwise.
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);
xdr_u_longlong_t translates between C unsigned 64-bit integers and
their external representations. This routine returns 1 if it
succeeds, 0 otherwise.
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.
Page 3
xdr_simple(3N) xdr_simple(3N)
SEE ALSO
rpc(3N), xdr_admin(3N), xdr_complex(3N), xdr_create(3N)
PPPPaaaaggggeeee 4444 [ Back ]
|