xdr_enum man page on MirBSD

Man page or keyword search:  
man Server   6113 pages
apropos Keyword Search (all sections)
Output format
MirBSD logo
[printable version]

XDR(3)			   BSD Programmer's Manual			XDR(3)

NAME
     xdr_array, xdr_bool, xdr_bytes, xdr_char, xdr_destroy, xdr_double,
     xdr_enum, xdr_float, xdr_free, xdr_getpos, xdr_inline, xdr_int, xdr_long,
     xdrmem_create, xdr_opaque, xdr_pointer, xdrrec_create,
     xdrrec_endofrecord, xdrrec_eof, xdrrec_skiprecord, xdr_reference,
     xdr_setpos, xdr_short, xdrstdio_create, xdr_string, xdr_u_char,
     xdr_u_int, xdr_u_long, xdr_u_short, xdr_union, xdr_vector, xdr_void,
     xdr_wrapstring - library routines for external data representation

SYNOPSIS
     #include <sys/types.h>
     #include <rpc/xdr.h>

     int
     xdr_array(XDR *xdrs, char **arrp, u_int *sizep, u_int maxsize,
	     u_int elsize, xdrproc_t elproc);

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

     int
     xdr_bytes(XDR *xdrs, char **sp, u_int *sizep, u_int maxsize);

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

     void
     xdr_destroy(XDR *xdrs);

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

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

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

     void
     xdr_free(xdrproc_t proc, char *objp);

     u_int
     xdr_getpos(XDR *xdrs);

     long *
     xdr_inline(XDR *xdrs, int len);

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

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

     void
     xdrmem_create(XDR *xdrs, char *addr, u_int size, enum xdr_op op);

     int
     xdr_opaque(XDR *xdrs, char *cp, u_int cnt);

     int
     xdr_pointer(XDR *xdrs, char **objpp, u_int objsize, xdrproc_t xdrobj);

     void
     xdrrec_create(XDR *xdrs, u_int sendsize, u_int recvsize, char *handle,
	     int (*readit)(), int (*writeit)());

     int
     xdrrec_endofrecord(XDR *xdrs, int sendnow);

     int
     xdrrec_eof(XDR *xdrs, int empty);

     int
     xdrrec_skiprecord(XDR *xdrs);

     int
     xdr_reference(XDR *xdrs, char **pp, u_int size, xdrproc_t proc);

     int
     xdr_setpos(XDR *xdrs, u_int pos);

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

     void
     xdrstdio_create(XDR *xdrs, FILE *file, enum xdr_op op);

     int
     xdr_string(XDR *xdrs, char **sp, u_int maxsize);

     int
     xdr_u_char(XDR *xdrs, unsigned char *ucp);

     int
     xdr_u_int(XDR *xdrs, unsigned int *up);

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

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

     int
     xdr_union(XDR *xdrs, int *dscmp, char *unp, struct xdr_discrim *choices,
	     bool_t (*defaultarm)());

     int
     xdr_vector(XDR *xdrs, char *arrp, u_int size, u_int elsize,
	     xdrproc_t elproc);

     int
     xdr_void(void);

     int
     xdr_wrapstring(XDR *xdrs, char **sp);

DESCRIPTION
     These routines allow C programmers to describe arbitrary data structures
     in a machine-independent fashion. Data for remote procedure calls are
     transmitted using these routines.

     xdr_array() is a filter primitive that translates between variable-length
     arrays and their corresponding external representations. The parameter
     arrp is the address of the pointer to the array, while sizep is the ad-
     dress of the element count of the array; this element count cannot exceed
     maxsize. The parameter elsize is the size of each of the array's ele-
     ments, and elproc is an XDR filter that translates between the array ele-
     ments' C form, and their external representation. This routine returns
     one if it succeeds, zero otherwise.

     xdr_bool() is a filter primitive that translates between booleans (C in-
     tegers) and their external representations. When encoding data, this
     filter produces values of either one or zero. This routine returns one if
     it succeeds, zero otherwise.

     xdr_bytes() is a filter primitive that translates between counted byte
     strings and their external representations. The parameter sp is the ad-
     dress of the string pointer. The length of the string is located at ad-
     dress sizep; strings cannot be longer than maxsize. This routine returns
     one if it succeeds, zero otherwise.

     xdr_char() is a filter primitive that translates between C characters and
     their external representations. This routine returns one if it succeeds,
     zero 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().

     xdr_destroy() is a macro that invokes the destroy routine associated with
     the XDR stream xdrs. Destruction usually involves freeing private data
     structures associated with the stream. Using xdrs after invoking
     xdr_destroy() is undefined.

     xdr_double() is a filter primitive that translates between C double pre-
     cision numbers and their external representations. This routine returns
     one if it succeeds, zero otherwise.

     xdr_enum() is a filter primitive that translates between the C enum type
     (actually an integer) and its external representations. This routine re-
     turns one if it succeeds, zero otherwise.

     xdr_float() is a filter primitive that translates between the C float
     type and its external representations. This routine returns one if it
     succeeds, zero otherwise.

     xdr_free() is a 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).

     xdr_getpos() is a macro that invokes the get-position routine associated
     with the XDR stream xdrs. The routine returns an unsigned integer, which
     indicates the position of the XDR byte stream. A desirable feature of XDR
     streams is that simple arithmetic works with this number, although the
     XDR stream instances need not guarantee this.

     xdr_inline() is a macro that invokes the in-line routine associated with
     the XDR stream xdrs. The routine returns a pointer to a contiguous piece
     of the stream's buffer; len is the byte length of the desired buffer.
     Note: pointer is cast to long *. Warning: xdr_inline() may return NULL if
     it cannot allocate a contiguous piece of a buffer. Therefore the behavior
     may vary among stream instances; it exists for the sake of efficiency.

     xdr_int() is a filter primitive that translates between C integers and
     their external representations. This routine returns one if it succeeds,
     zero otherwise.

     xdr_long() is a filter primitive that translates between C long integers
     and their external representations. This routine returns one if it
     succeeds, zero otherwise.

     xdrmem_create() is a routine which initializes the XDR stream object
     pointed to by xdrs. The stream's data is written to, or read from, a
     chunk of memory at location addr whose length is no more than size bytes
     long. The op determines the direction of the XDR stream (either
     XDR_ENCODE, XDR_DECODE, or XDR_FREE).

     xdr_opaque() is a filter primitive that translates between fixed size
     opaque data and its external representation. The parameter cp is the ad-
     dress of the opaque object, and cnt is its size in bytes. This routine
     returns one if it succeeds, zero otherwise.

     xdr_pointer() is like xdr_reference() except that it serializes NULL
     pointers, whereas xdr_reference() does not. Thus, xdr_pointer() can
     represent recursive data structures, such as binary trees or linked
     lists.

     xdrrec_create() is a routine which initializes the XDR stream object
     pointed to by xdrs. The stream's data is written to a buffer of size
     sendsize; a value of zero indicates the system should use a suitable de-
     fault. The stream's data is read from a buffer of size recvsize; it too
     can be set to a suitable default by passing a zero value. When a stream's
     output buffer is full, (*writeit)() is called. Similarly, when a stream's
     input buffer is empty, (*readit)() is called. The behavior of these two
     routines is similar to the system calls read() and write(), except that
     handle is passed to the former routines as the first parameter. Note: the
     XDR stream's op field must be set by the caller. Warning: this XDR stream
     implements an intermediate record stream. Therefore there are additional
     bytes in the stream to provide record boundary information.

     xdrrec_endofrecord() is a routine which can be invoked only on streams
     created by xdrrec_create(). The data in the output buffer is marked as a
     completed record, and the output buffer is optionally written out if
     sendnow is non-zero. This routine returns one if it succeeds, zero other-
     wise.

     xdrrec_eof() is a routine which can be invoked only on streams created by
     xdrrec_create(). After consuming the rest of the current record in the
     stream, this routine returns one if the stream has no more input, zero
     otherwise.

     xdrrec_skiprecord() is a routine which can be invoked only on streams
     created by xdrrec_create(). It tells the XDR implementation that the rest
     of the current record in the stream's input buffer should be discarded.
     This routine returns one if it succeeds, zero otherwise.

     xdr_reference() is a primitive that provides pointer chasing within
     structures. The parameter pp is the address of the pointer; size is the
     size of the structure that *pp points to; and proc is an XDR procedure
     that filters the structure between its C form and its external represen-
     tation. This routine returns one if it succeeds, zero otherwise. Warning:
     this routine does not understand NULL pointers. Use xdr_pointer() in-
     stead.

     xdr_setpos() is a macro that invokes the set position routine associated
     with the XDR stream xdrs. The parameter pos is a position value obtained
     from xdr_getpos(). This routine returns one if the XDR stream could be
     repositioned, and zero otherwise. Warning: it is difficult to reposition
     some types of XDR streams, so this routine may fail with one type of
     stream and succeed with another.

     xdr_short() is a filter primitive that translates between C short in-
     tegers and their external representations. This routine returns one if it
     succeeds, zero otherwise.

     xdrstdio_create() is a routine which initializes the XDR stream object
     pointed to by xdrs. The XDR stream data is written to, or read from, the
     Standard I/O stream file. The parameter op determines the direction of
     the XDR stream (either XDR_ENCODE, XDR_DECODE, or XDR_FREE). Warning: the
     destroy routine associated with such XDR streams calls fflush() on the
     file stream, but never fclose().

     xdr_string() is a filter primitive that translates between C strings and
     their corresponding external representations. Strings cannot be longer
     than maxsize. Note: sp is the address of the string's pointer. This rou-
     tine returns one if it succeeds, zero otherwise.

     xdr_u_char() is a filter primitive that translates between unsigned C
     characters and their external representations. This routine returns one
     if it succeeds, zero otherwise.

     xdr_u_int() is a filter primitive that translates between C unsigned in-
     tegers and their external representations. This routine returns one if it
     succeeds, zero otherwise.

     xdr_u_long() is a filter primitive that translates between C unsigned
     long integers and their external representations. This routine returns
     one if it succeeds, zero otherwise.

     xdr_u_short() is a filter primitive that translates between C unsigned
     short integers and their external representations. This routine returns
     one if it succeeds, zero otherwise.

     xdr_union() is a filter primitive that translates between a discriminated
     C union and its corresponding external representation. It first
     translates the discriminant of the union located at dscmp. This discrim-
     inant is always an enum_t. Next the union located at unp is translated.
     The parameter choices is a pointer to an array of struct xdr_discrim
     structures. Each structure contains an ordered pair of [ value , proc ].
     If the union's discriminant is equal to the associated value, then the
     proc is called to translate the union. The end of the struct xdr_discrim
     structure array is denoted by a routine of value NULL. If the discrim-
     inant is not found in the choices array, then the (*defaultarm)() pro-
     cedure is called (if it is not NULL). Returns one if it succeeds, zero
     otherwise.

     xdr_vector() is a filter primitive that translates between fixed-length
     arrays and their corresponding external representations. The parameter
     arrp is the address of the pointer to the array, while size is the ele-
     ment count of the array. The parameter elsize is the size of each of the
     array's elements, and elproc is an XDR filter that translates between the
     array elements' C form, and their external representation. This routine
     returns one if it succeeds, zero otherwise.

     xdr_void() is a routine which always returns one. It may be passed to RPC
     routines that require a function parameter, but where nothing is to be
     done.

     xdr_wrapstring() is a primitive that calls xdr_string(xdrs, sp,
     MAXUN.UNSIGNED ); where MAXUN.UNSIGNED is the maximum value of an un-
     signed integer. xdr_wrapstring() is handy because the RPC package passes
     a maximum of two XDR routines as parameters, and xdr_string(), one of the
     most frequently used primitives, requires three. Returns one if it
     succeeds, zero otherwise.

SEE ALSO
     rpc(3)

     eXternal Data Representation Standard: Protocol Specification.

     eXternal Data Representation: Sun Technical Notes.

     Sun Microsystems, Inc., XDR: External Data Representation Standard, RFC
     1014, USC-ISI.

MirOS BSD #10-current	      February 16, 1988				     4
[top]

List of man pages available for MirBSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net