Path: blob/main/sys/contrib/openzfs/lib/libspl/include/rpc/xdr.h
48547 views
// SPDX-License-Identifier: CDDL-1.01/*2* CDDL HEADER START3*4* The contents of this file are subject to the terms of the5* Common Development and Distribution License, Version 1.0 only6* (the "License"). You may not use this file except in compliance7* with the License.8*9* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE10* or https://opensource.org/licenses/CDDL-1.0.11* See the License for the specific language governing permissions12* and limitations under the License.13*14* When distributing Covered Code, include this CDDL HEADER in each15* file and include the License file at usr/src/OPENSOLARIS.LICENSE.16* If applicable, add the following below this CDDL HEADER, with the17* fields enclosed by brackets "[]" replaced with your own identifying18* information: Portions Copyright [yyyy] [name of copyright owner]19*20* CDDL HEADER END21*22* Copyright 2005 Sun Microsystems, Inc. All rights reserved.23* Use is subject to license terms.24*25* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T26* All Rights Reserved27*28* Portions of this source code were derived from Berkeley 4.3 BSD29* under license from the Regents of the University of California.30*/3132#ifndef LIBSPL_RPC_XDR_H33#define LIBSPL_RPC_XDR_H3435#include_next <rpc/xdr.h>3637#ifdef xdr_control /* if e.g. using tirpc */38#undef xdr_control39#endif4041#define XDR_GET_BYTES_AVAIL 14243#ifndef HAVE_XDR_BYTESREC44struct xdr_bytesrec {45bool_t xc_is_last_record;46size_t xc_num_avail;47};48#endif49typedef struct xdr_bytesrec xdr_bytesrec_t;5051/*52* This functionality is not required and is disabled in user space.53*/54static inline bool_t55xdr_control(XDR *xdrs, int request, void *info)56{57xdr_bytesrec_t *xptr;5859ASSERT3U(request, ==, XDR_GET_BYTES_AVAIL);6061xptr = (xdr_bytesrec_t *)info;62xptr->xc_is_last_record = TRUE;63xptr->xc_num_avail = xdrs->x_handy;6465return (TRUE);66}6768#endif /* LIBSPL_RPC_XDR_H */697071