2N/A * The contents of this file are subject to the terms of the 2N/A * Common Development and Distribution License, Version 1.0 only 2N/A * (the "License"). You may not use this file except in compliance 2N/A * See the License for the specific language governing permissions 2N/A * and limitations under the License. 2N/A * When distributing Covered Code, include this CDDL HEADER in each 2N/A * If applicable, add the following below this CDDL HEADER, with the 2N/A * fields enclosed by brackets "[]" replaced with your own identifying 2N/A * information: Portions Copyright [yyyy] [name of copyright owner] 2N/A * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2N/A * Use is subject to license terms. 2N/A/* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 2N/A/* All Rights Reserved */ 2N/A * Portions of this source code were derived from Berkeley 2N/A * 4.3 BSD under license from the Regents of the University of 2N/A#
pragma ident "%Z%%M% %I% %E% SMI" 2N/A * Generic XDR routines impelmentation. 2N/A * These are the "non-trivial" xdr primitives used to serialize and de-serialize 2N/A * "pointers". See xdr.h for more info on the interface to xdr. 2N/A * XDR an indirect pointer 2N/A * xdr_reference is for recursively translating a structure that is 2N/A * referenced by a pointer inside the structure that is currently being 2N/A * translated. pp references a pointer to storage. If *pp is null 2N/A * the necessary storage is allocated. 2N/A * size is the sizeof the referneced structure. 2N/A * proc is the routine to handle the referenced structure. 2N/A * XDR a pointer to a possibly recursive data structure. This 2N/A * What's sent is actually a union: 2N/A * union object_pointer switch (boolean b) { 2N/A * case TRUE: object_data data; 2N/A * case FALSE: void nothing; 2N/A * > objpp: Pointer to the pointer to the object. 2N/A * > obj_size: size of the object. 2N/A * > xdr_obj: routine to XDR an object.