diff options
Diffstat (limited to 'lib/libspl/include')
-rw-r--r-- | lib/libspl/include/rpc/Makefile.am | 1 | ||||
-rw-r--r-- | lib/libspl/include/rpc/types.h | 32 | ||||
-rw-r--r-- | lib/libspl/include/rpc/xdr.h | 43 |
3 files changed, 26 insertions, 50 deletions
diff --git a/lib/libspl/include/rpc/Makefile.am b/lib/libspl/include/rpc/Makefile.am index 7a29aba73..78ee5a29e 100644 --- a/lib/libspl/include/rpc/Makefile.am +++ b/lib/libspl/include/rpc/Makefile.am @@ -1,4 +1,3 @@ libspldir = $(includedir)/libspl/rpc libspl_HEADERS = \ - $(top_srcdir)/lib/libspl/include/rpc/types.h \ $(top_srcdir)/lib/libspl/include/rpc/xdr.h diff --git a/lib/libspl/include/rpc/types.h b/lib/libspl/include/rpc/types.h deleted file mode 100644 index aa9901fd1..000000000 --- a/lib/libspl/include/rpc/types.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2010 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef LIBSPL_RPC_TYPES_H -#define LIBSPL_RPC_TYPES_H - -#include_next <rpc/types.h> -#include <sys/kmem.h> - -#endif /* LIBSPL_RPC_TYPES_H */ diff --git a/lib/libspl/include/rpc/xdr.h b/lib/libspl/include/rpc/xdr.h index 99500d657..3c7c53fcc 100644 --- a/lib/libspl/include/rpc/xdr.h +++ b/lib/libspl/include/rpc/xdr.h @@ -32,11 +32,20 @@ #ifndef LIBSPL_RPC_XDR_H #define LIBSPL_RPC_XDR_H -#include_next <rpc/xdr.h> - /* - * These are XDR control operators + * When available prefer libtirpc for xdr functionality. This library is + * mandatory when compiling with musl libc because it does not provide xdr. */ +#if defined(HAVE_LIBTIRPC) + +#include <tirpc/rpc/xdr.h> +#ifdef xdr_control +#undef xdr_control +#endif + +#else +#include_next <rpc/xdr.h> +#endif /* HAVE_LIBTIRPC */ #define XDR_GET_BYTES_AVAIL 1 @@ -46,20 +55,20 @@ typedef struct xdr_bytesrec { } xdr_bytesrec_t; /* - * These are the request arguments to XDR_CONTROL. - * - * XDR_PEEK - returns the contents of the next XDR unit on the XDR stream. - * XDR_SKIPBYTES - skips the next N bytes in the XDR stream. - * XDR_RDMAGET - for xdr implementation over RDMA, gets private flags from - * the XDR stream being moved over RDMA - * XDR_RDMANOCHUNK - for xdr implementaion over RDMA, sets private flags in - * the XDR stream moving over RDMA. + * This functionality is not required and is disabled in user space. */ -#define XDR_PEEK 2 -#define XDR_SKIPBYTES 3 -#define XDR_RDMAGET 4 -#define XDR_RDMASET 5 +static inline bool_t +xdr_control(XDR *xdrs, int request, void *info) +{ + xdr_bytesrec_t *xptr; -extern bool_t xdr_control(XDR *xdrs, int request, void *info); + ASSERT3U(request, ==, XDR_GET_BYTES_AVAIL); -#endif + xptr = (xdr_bytesrec_t *)info; + xptr->xc_is_last_record = TRUE; + xptr->xc_num_avail = xdrs->x_handy; + + return (TRUE); +} + +#endif /* LIBSPL_RPC_XDR_H */ |