2N/A * The contents of this file are subject to the terms of the 2N/A * Common Development and Distribution License (the "License"). 2N/A * You may not use this file except in compliance with the License. 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 (c) 2012, Oracle and/or its affiliates. All rights reserved. 2N/A * XDR-like routines for reading and writing ADR data and types. 2N/A * There are two major differences between these and "normal" XDR 2N/A * a) Some take more than two arguments. This is because the 2N/A * routines aren't dealing with fixed data structures and 2N/A * require additional inputs to perform their processing. 2N/A * This is a contributing factor to... 2N/A * b) They aren't symmetric. i.e. there are separate routines 2N/A * for reading (or sizing) and writing. The only substantial 2N/A * effect of merging reading and writing into a single function 2N/A * would be to create functions which are large and difficult 2N/A * Marshal type definitions. 2N/A * Normally the absence of a type is represented by void. Attribute/ 2N/A * method error payload types require additional information: it is 2N/A * desirable to distinguish between an operation that doesn't return 2N/A * error payload data, and an operation that doesn't return errors. 2N/A * We effectively treat an error payload type as "optional data". 2N/A * Note that we don't use this when serializing standard error types 2N/A * at protocol negotiation time. 2N/A * nparents indicates how many parent Interfaces should be processed when 2N/A * decoding. It isn't used when encoding. 2N/A /* Depth first; primary interface should be last listed */ 2N/A * Marshal an interface definition. 2N/A * Compatible interfaces and their versions 2N/A * Unmarshal an interface definition. 2N/A * Marshal (typed) data. 2N/A /* Communicated as an index */ 2N/A /* Write arm index, discriminant value */ 2N/A /* Write data, if any */ 2N/A * Unmarshal data of the specified type 2N/A /* Check size; only works for xdrmem */ 2N/A /* Check size; only works for xdrmem */ 2N/A /* Read arm index */ 2N/A /* Read data, if any */ 2N/A "Invalid deserialized data type (%d)",
2N/A * Marshal a piece of optional data. 2N/A * Unmarshal a piece of typed optional data.