XDR_SIMPLE(3NSL) Networking Services Library Functions XDR_SIMPLE(3NSL)
NAME
xdr_simple, xdr_bool, xdr_char, xdr_double, xdr_enum, xdr_float,
xdr_free, xdr_hyper, xdr_int, xdr_long, xdr_longlong_t,
xdr_quadruple, xdr_short, xdr_u_char, xdr_u_hyper, xdr_u_int,
xdr_u_long, xdr_u_longlong_t, xdr_u_short, xdr_void - library
routines for external data representation
SYNOPSIS
#include <rpc/xdr.h>
bool_t xdr_bool(
XDR *xdrs,
bool_t *bp);
bool_t xdr_char(
XDR *xdrs,
char *cp);
bool_t xdr_double(
XDR *xdrs,
double *dp);
bool_t xdr_enum(
XDR *xdrs,
enum_t *ep);
bool_t xdr_float(
XDR *xdrs,
float *fp);
void xdr_free(
xdrproc_t proc,
char *objp);
bool_t xdr_hyper(
XDR *xdrs,
longlong_t *llp);
bool_t xdr_int(
XDR *xdrs,
int *ip);
bool_t xdr_long(
XDR *xdrs,
longt *lp);
bool_t xdr_longlong_t(
XDR *xdrs,
longlong_t *llp);
bool_t xdr_quadruple(
XDR *xdrs,
long double *pq);
bool_t xdr_short(
XDR *xdrs,
short *sp);
bool_t xdr_u_char(
XDR *xdrs,
unsigned char *ucp);
bool_t xdr_u_hyper(
XDR *xdrs,
u_longlong_t *ullp);
bool_t xdr_u_int(
XDR *xdrs,
unsigned *up);
bool_t xdr_u_long(
XDR *xdrs,
unsigned long *ulp);
bool_t xdr_u_longlong_t(
XDR *xdrs,
u_longlong_t *ullp);
bool_t xdr_u_short(
XDR xdrs,
unsigned short *usp);
bool_t xdr_void(void)
DESCRIPTION
The
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(3NSL)).
Routines
See
rpc(3NSL) for the definition of the
XDR data structure. Note
that any buffers passed to the
XDR routines must be properly aligned.
It is suggested that
malloc(3C) be used to allocate these buffers or
that the programmer insure that the buffer address is divisible
evenly by four.
xdr_bool() 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
TRUE if
it succeeds,
FALSE otherwise.
xdr_char() xdr_char() translates between C characters and
their external representations. This routine
returns
TRUE if it succeeds,
FALSE 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_complex(3NSL)).
xdr_double() xdr_double() translates between C
double precision numbers and their external
representations. This routine returns
TRUE if
it succeeds,
FALSE otherwise.
xdr_enum() xdr_enum() translates between C
enums (actually
integers) and their external representations.
This routine returns
TRUE if it succeeds,
FALSE otherwise.
xdr_float() xdr_float() translates between C
floats and
their external representations. This routine
returns
TRUE if it succeeds,
FALSE otherwise.
xdr_free() 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, depending on the XDR
routine).
xdr_hyper() xdr_hyper() translates between ANSI C
long long integers and their external
representations. This routine returns
TRUE if
it succeeds,
FALSE otherwise.
xdr_int() xdr_int() translates between C integers and
their external representations. This routine
returns
TRUE if it succeeds,
FALSE otherwise.
xdr_long() xdr_long() translates between C
long integers
and their external representations. This
routine returns
TRUE if it succeeds,
FALSE otherwise.
In a 64-bit environment, this routine returns
an error if the value of
lp is outside the
range
[INT32_MIN, INT32_MAX]. The
xdr_int() routine is recommended in place of this
routine.
xdr_longlong_t() xdr_longlong_t() translates between ANSI C
long long integers and their external
representations. This routine returns
TRUE if
it succeeds,
FALSE otherwise. This routine is
identical to
xdr_hyper().
xdr_quadruple() xdr_quadruple() translates between IEEE
quadruple precision floating point numbers and
their external representations. This routine
returns
TRUE if it succeeds,
FALSE otherwise.
xdr_short() xdr_short() translates between C
short integers
and their external representations. This
routine returns
TRUE if it succeeds,
FALSE otherwise.
xdr_u_char() xdr_u_char() translates between
unsigned C
characters and their external representations.
This routine returns
TRUE if it succeeds,
FALSE otherwise.
xdr_u_hyper() xdr_u_hyper() translates between unsigned ANSI
C
long long integers and their external
representations. This routine returns
TRUE if
it succeeds,
FALSE otherwise.
xdr_u_int() A filter primitive that translates between a C
unsigned integer and its external
representation. This routine returns
TRUE if it
succeeds,
FALSE otherwise.
xdr_u_long() xdr_u_long() translates between C
unsigned long integers and their external representations.
This routine returns
TRUE if it succeeds,
FALSE otherwise.
In a 64-bit environment, this routine returns
an error if the value of
ulp is outside the
range
[0, UINT32_MAX]. The
xdr_u_int() routine
is recommended in place of this routine.
xdr_u_longlong_t() xdr_u_longlong_t() translates between unsigned
ANSI C
long long integers and their external
representations. This routine returns
TRUE if
it succeeds,
FALSE otherwise. This routine is
identical to
xdr_u_hyper().
xdr_u_short() xdr_u_short() translates between C
unsigned short integers and their external
representations. This routine returns
TRUE if
it succeeds,
FALSE otherwise.
xdr_void() This routine always returns
TRUE. It may be
passed to
RPC routines that require a function
parameter, where nothing is to be done.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+---------------+-----------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------+
|MT-Level | Safe |
+---------------+-----------------+
SEE ALSO
malloc(3C),
rpc(3NSL),
xdr_admin(3NSL),
xdr_complex(3NSL),
xdr_create(3NSL),
attributes(7) October 22, 2014 XDR_SIMPLE(3NSL)