diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2002-06-25 14:52:37 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2002-06-25 14:52:37 +0000 |
commit | 411e387c27b183eb53c9563a8decfb02af73dfd0 (patch) | |
tree | 8787b53c4df78702fa6a77cc722ee830ada6a3f7 /c/src/librpc/src/rpc/pmap_prot2.c | |
parent | 2002-06-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de> (diff) | |
download | rtems-411e387c27b183eb53c9563a8decfb02af73dfd0.tar.bz2 |
2002-06-25 Joel Sherrill <joel@OARcorp.com>
* Per PR233, moved librpc to exec. Ralf will patch after move.
The patches associated with this PR are out of date.
./include/rpc/.cvsignore, ./include/rpc/Makefile.am,
./include/rpc/auth.h, ./include/rpc/auth_des.h,
./include/rpc/auth_unix.h, ./include/rpc/clnt.h,
./include/rpc/des.h, ./include/rpc/des_crypt.h,
./include/rpc/pmap_clnt.h, ./include/rpc/pmap_prot.h,
./include/rpc/pmap_rmt.h, ./include/rpc/rpc.h,
./include/rpc/rpc_com.h, ./include/rpc/rpc_msg.h,
./include/rpc/svc.h, ./include/rpc/svc_auth.h,
./include/rpc/types.h, ./include/rpc/xdr.h,
./include/.cvsignore, ./include/Makefile.am,
./include/rpcsvc/.cvsignore, ./include/rpcsvc/Makefile.am,
./include/rpcsvc/bootparam_prot.x, ./include/rpcsvc/crypt.x,
./include/rpcsvc/key_prot.x, ./include/rpcsvc/klm_prot.x,
./include/rpcsvc/mount.x, ./include/rpcsvc/nfs_prot.x,
./include/rpcsvc/nis.x, ./include/rpcsvc/nis_cache.x,
./include/rpcsvc/nis_callback.x, ./include/rpcsvc/nis_db.h,
./include/rpcsvc/nis_object.x, ./include/rpcsvc/nis_tags.h,
./include/rpcsvc/nislib.h, ./include/rpcsvc/nlm_prot.x,
./include/rpcsvc/pmap_prot.x, ./include/rpcsvc/rex.x,
./include/rpcsvc/rnusers.x, ./include/rpcsvc/rquota.x,
./include/rpcsvc/rstat.x, ./include/rpcsvc/rwall.x,
./include/rpcsvc/sm_inter.x, ./include/rpcsvc/spray.x,
./include/rpcsvc/yp.x, ./include/rpcsvc/yp_prot.h,
./include/rpcsvc/ypclnt.h, ./include/rpcsvc/yppasswd.x,
./include/rpcsvc/ypupdate_prot.x, ./include/rpcsvc/ypxfrd.x,
./.cvsignore, ./Makefile.am, ./README_RTEMS,
./configure.ac, ./src/rpc/PSD.doc/.cvsignore,
./src/rpc/PSD.doc/Makefile.am, ./src/rpc/PSD.doc/nfs.rfc.ms,
./src/rpc/PSD.doc/rpc.prog.ms, ./src/rpc/PSD.doc/rpc.rfc.ms,
./src/rpc/PSD.doc/rpcgen.ms, ./src/rpc/PSD.doc/xdr.nts.ms,
./src/rpc/PSD.doc/xdr.rfc.ms, ./src/rpc/.cvsignore,
./src/rpc/DISCLAIMER, ./src/rpc/Makefile.am,
./src/rpc/README, ./src/rpc/auth_des.c,
./src/rpc/auth_none.c, ./src/rpc/auth_time.c,
./src/rpc/auth_unix.c, ./src/rpc/authdes_prot.c,
./src/rpc/authunix_prot.c, ./src/rpc/bindresvport.3,
./src/rpc/bindresvport.c, ./src/rpc/clnt_generic.c,
./src/rpc/clnt_perror.c, ./src/rpc/clnt_raw.c,
./src/rpc/clnt_simple.c, ./src/rpc/clnt_tcp.c,
./src/rpc/clnt_udp.c, ./src/rpc/clnt_unix.c,
./src/rpc/crypt_client.c, ./src/rpc/des_crypt.3,
./src/rpc/des_crypt.c, ./src/rpc/des_soft.c,
./src/rpc/get_myaddress.c, ./src/rpc/getpublickey.c,
./src/rpc/getrpcent.3, ./src/rpc/getrpcent.c,
./src/rpc/getrpcport.3, ./src/rpc/getrpcport.c,
./src/rpc/key_call.c, ./src/rpc/key_prot_xdr.c,
./src/rpc/netname.c, ./src/rpc/netnamer.c,
./src/rpc/pmap_clnt.c, ./src/rpc/pmap_getmaps.c,
./src/rpc/pmap_getport.c, ./src/rpc/pmap_prot.c,
./src/rpc/pmap_prot2.c, ./src/rpc/pmap_rmt.c,
./src/rpc/publickey.3, ./src/rpc/publickey.5,
./src/rpc/rpc.3, ./src/rpc/rpc.5, ./src/rpc/rpc_callmsg.c,
./src/rpc/rpc_commondata.c, ./src/rpc/rpc_dtablesize.c,
./src/rpc/rpc_prot.c, ./src/rpc/rpc_secure.3,
./src/rpc/rpcdname.c, ./src/rpc/rstat.1,
./src/rpc/rstat_svc.8, ./src/rpc/rtems_portmapper.c,
./src/rpc/rtems_rpc.c, ./src/rpc/rtime.3, ./src/rpc/rtime.c,
./src/rpc/svc.c, ./src/rpc/svc_auth.c,
./src/rpc/svc_auth_des.c, ./src/rpc/svc_auth_unix.c,
./src/rpc/svc_raw.c, ./src/rpc/svc_run.c,
./src/rpc/svc_simple.c, ./src/rpc/svc_tcp.c,
./src/rpc/svc_udp.c, ./src/rpc/svc_unix.c,
./src/xdr/.cvsignore, ./src/xdr/Makefile.am, ./src/xdr/xdr.3,
./src/xdr/xdr.c, ./src/xdr/xdr_array.c,
./src/xdr/xdr_float.c, ./src/xdr/xdr_mem.c,
./src/xdr/xdr_rec.c, ./src/xdr/xdr_reference.c,
./src/xdr/xdr_sizeof.c, ./src/xdr/xdr_stdio.c,
./src/.cvsignore, ./src/Makefile.am: Moved to exec.
Diffstat (limited to 'c/src/librpc/src/rpc/pmap_prot2.c')
-rw-r--r-- | c/src/librpc/src/rpc/pmap_prot2.c | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/c/src/librpc/src/rpc/pmap_prot2.c b/c/src/librpc/src/rpc/pmap_prot2.c deleted file mode 100644 index e29efe62c1..0000000000 --- a/c/src/librpc/src/rpc/pmap_prot2.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -#if defined(LIBC_SCCS) && !defined(lint) -/*static char *sccsid = "from: @(#)pmap_prot2.c 1.3 87/08/11 Copyr 1984 Sun Micro";*/ -/*static char *sccsid = "from: @(#)pmap_prot2.c 2.1 88/07/29 4.0 RPCSRC";*/ -static char *rcsid = "$FreeBSD: src/lib/libc/rpc/pmap_prot2.c,v 1.7 1999/08/28 00:00:42 peter Exp $"; -#endif - -/* - * pmap_prot2.c - * Protocol for the local binder service, or pmap. - * - * Copyright (C) 1984, Sun Microsystems, Inc. - */ - -#include <rpc/types.h> -#include <rpc/xdr.h> -#include <rpc/pmap_prot.h> - - -/* - * What is going on with linked lists? (!) - * First recall the link list declaration from pmap_prot.h: - * - * struct pmaplist { - * struct pmap pml_map; - * struct pmaplist *pml_map; - * }; - * - * Compare that declaration with a corresponding xdr declaration that - * is (a) pointer-less, and (b) recursive: - * - * typedef union switch (bool_t) { - * - * case TRUE: struct { - * struct pmap; - * pmaplist_t foo; - * }; - * - * case FALSE: struct {}; - * } pmaplist_t; - * - * Notice that the xdr declaration has no nxt pointer while - * the C declaration has no bool_t variable. The bool_t can be - * interpreted as ``more data follows me''; if FALSE then nothing - * follows this bool_t; if TRUE then the bool_t is followed by - * an actual struct pmap, and then (recursively) by the - * xdr union, pamplist_t. - * - * This could be implemented via the xdr_union primitive, though this - * would cause a one recursive call per element in the list. Rather than do - * that we can ``unwind'' the recursion - * into a while loop and do the union arms in-place. - * - * The head of the list is what the C programmer wishes to past around - * the net, yet is the data that the pointer points to which is interesting; - * this sounds like a job for xdr_reference! - */ -bool_t -xdr_pmaplist(xdrs, rp) - register XDR *xdrs; - register struct pmaplist **rp; -{ - /* - * more_elements is pre-computed in case the direction is - * XDR_ENCODE or XDR_FREE. more_elements is overwritten by - * xdr_bool when the direction is XDR_DECODE. - */ - bool_t more_elements; - register int freeing = (xdrs->x_op == XDR_FREE); - register struct pmaplist **next = NULL; - - while (TRUE) { - more_elements = (bool_t)(*rp != NULL); - if (! xdr_bool(xdrs, &more_elements)) - return (FALSE); - if (! more_elements) - return (TRUE); /* we are done */ - /* - * the unfortunate side effect of non-recursion is that in - * the case of freeing we must remember the next object - * before we free the current object ... - */ - if (freeing) - next = &((*rp)->pml_next); - if (! xdr_reference(xdrs, (caddr_t *)rp, - (u_int)sizeof(struct pmaplist), xdr_pmap)) - return (FALSE); - rp = (freeing) ? next : &((*rp)->pml_next); - } -} |