Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/contrib/openzfs/lib/libspl/include/rpc/xdr.h
48547 views
1
// SPDX-License-Identifier: CDDL-1.0
2
/*
3
* CDDL HEADER START
4
*
5
* The contents of this file are subject to the terms of the
6
* Common Development and Distribution License, Version 1.0 only
7
* (the "License"). You may not use this file except in compliance
8
* with the License.
9
*
10
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11
* or https://opensource.org/licenses/CDDL-1.0.
12
* See the License for the specific language governing permissions
13
* and limitations under the License.
14
*
15
* When distributing Covered Code, include this CDDL HEADER in each
16
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17
* If applicable, add the following below this CDDL HEADER, with the
18
* fields enclosed by brackets "[]" replaced with your own identifying
19
* information: Portions Copyright [yyyy] [name of copyright owner]
20
*
21
* CDDL HEADER END
22
*
23
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
24
* Use is subject to license terms.
25
*
26
* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T
27
* All Rights Reserved
28
*
29
* Portions of this source code were derived from Berkeley 4.3 BSD
30
* under license from the Regents of the University of California.
31
*/
32
33
#ifndef LIBSPL_RPC_XDR_H
34
#define LIBSPL_RPC_XDR_H
35
36
#include_next <rpc/xdr.h>
37
38
#ifdef xdr_control /* if e.g. using tirpc */
39
#undef xdr_control
40
#endif
41
42
#define XDR_GET_BYTES_AVAIL 1
43
44
#ifndef HAVE_XDR_BYTESREC
45
struct xdr_bytesrec {
46
bool_t xc_is_last_record;
47
size_t xc_num_avail;
48
};
49
#endif
50
typedef struct xdr_bytesrec xdr_bytesrec_t;
51
52
/*
53
* This functionality is not required and is disabled in user space.
54
*/
55
static inline bool_t
56
xdr_control(XDR *xdrs, int request, void *info)
57
{
58
xdr_bytesrec_t *xptr;
59
60
ASSERT3U(request, ==, XDR_GET_BYTES_AVAIL);
61
62
xptr = (xdr_bytesrec_t *)info;
63
xptr->xc_is_last_record = TRUE;
64
xptr->xc_num_avail = xdrs->x_handy;
65
66
return (TRUE);
67
}
68
69
#endif /* LIBSPL_RPC_XDR_H */
70
71