10Sstevel@tonic-gate %/* 20Sstevel@tonic-gate % * CDDL HEADER START 30Sstevel@tonic-gate % * 40Sstevel@tonic-gate % * The contents of this file are subject to the terms of the 5*1623Stw21770 % * Common Development and Distribution License (the "License"). 6*1623Stw21770 % * You may not use this file except in compliance with the License. 70Sstevel@tonic-gate % * 80Sstevel@tonic-gate % * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 90Sstevel@tonic-gate % * or http://www.opensolaris.org/os/licensing. 100Sstevel@tonic-gate % * See the License for the specific language governing permissions 110Sstevel@tonic-gate % * and limitations under the License. 120Sstevel@tonic-gate % * 130Sstevel@tonic-gate % * When distributing Covered Code, include this CDDL HEADER in each 140Sstevel@tonic-gate % * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 150Sstevel@tonic-gate % * If applicable, add the following below this CDDL HEADER, with the 160Sstevel@tonic-gate % * fields enclosed by brackets "[]" replaced with your own identifying 170Sstevel@tonic-gate % * information: Portions Copyright [yyyy] [name of copyright owner] 180Sstevel@tonic-gate % * 190Sstevel@tonic-gate % * CDDL HEADER END 200Sstevel@tonic-gate % */ 210Sstevel@tonic-gate % 22*1623Stw21770 %/* 23*1623Stw21770 % * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 24*1623Stw21770 % * Use is subject to license terms. 25*1623Stw21770 % */ 26*1623Stw21770 % 270Sstevel@tonic-gate %#pragma ident "%Z%%M% %I% %E% SMI" 280Sstevel@tonic-gate % 290Sstevel@tonic-gate 300Sstevel@tonic-gate %/* get timeval32 definition */ 310Sstevel@tonic-gate %#include <sys/types32.h> 320Sstevel@tonic-gate 330Sstevel@tonic-gate #ifndef _KERNEL 340Sstevel@tonic-gate %#ifdef _KERNEL 350Sstevel@tonic-gate %#error "Compiling kernel file rpcgened without _KERNEL define." 360Sstevel@tonic-gate %#endif /* _KERNEL */ 370Sstevel@tonic-gate #endif /* _KERNEL */ 380Sstevel@tonic-gate %#include <sys/dditypes.h> 390Sstevel@tonic-gate 400Sstevel@tonic-gate #ifdef RPC_XDR 410Sstevel@tonic-gate #ifndef _KERNEL 420Sstevel@tonic-gate %bool_t 430Sstevel@tonic-gate %xdr_uint_t(XDR *xdrs, uint_t *objp) 440Sstevel@tonic-gate %{ 450Sstevel@tonic-gate % if (!xdr_u_int(xdrs, (u_int *)objp)) 460Sstevel@tonic-gate % return (FALSE); 470Sstevel@tonic-gate % return (TRUE); 480Sstevel@tonic-gate %} 490Sstevel@tonic-gate %bool_t 500Sstevel@tonic-gate %xdr_ushort_t(XDR *xdrs, ushort_t *objp) 510Sstevel@tonic-gate %{ 520Sstevel@tonic-gate % if (!xdr_u_short(xdrs, (u_short *)objp)) 530Sstevel@tonic-gate % return (FALSE); 540Sstevel@tonic-gate % return (TRUE); 550Sstevel@tonic-gate %} 560Sstevel@tonic-gate %bool_t 570Sstevel@tonic-gate %xdr_dev_t(XDR *xdrs, dev_t *objp) 580Sstevel@tonic-gate %{ 590Sstevel@tonic-gate % if (!xdr_u_int(xdrs, (u_int *)objp)) 600Sstevel@tonic-gate % return (FALSE); 610Sstevel@tonic-gate % return (TRUE); 620Sstevel@tonic-gate %} 630Sstevel@tonic-gate %bool_t 640Sstevel@tonic-gate %xdr_dev32_t(XDR *xdrs, dev32_t *objp) 650Sstevel@tonic-gate %{ 660Sstevel@tonic-gate % if (!xdr_u_int(xdrs, (u_int *)objp)) 670Sstevel@tonic-gate % return (FALSE); 680Sstevel@tonic-gate % return (TRUE); 690Sstevel@tonic-gate %} 700Sstevel@tonic-gate %bool_t 710Sstevel@tonic-gate %xdr_md_dev64_t(XDR *xdrs, md_dev64_t *objp) 720Sstevel@tonic-gate %{ 730Sstevel@tonic-gate % if (!xdr_u_longlong_t(xdrs, objp)) 740Sstevel@tonic-gate % return (FALSE); 750Sstevel@tonic-gate % return (TRUE); 760Sstevel@tonic-gate %} 770Sstevel@tonic-gate %bool_t 780Sstevel@tonic-gate %xdr_size_t(XDR *xdrs, size_t *objp) 790Sstevel@tonic-gate %{ 800Sstevel@tonic-gate % if (!xdr_u_int(xdrs, (u_int *) objp)) 810Sstevel@tonic-gate % return (FALSE); 820Sstevel@tonic-gate % return (TRUE); 830Sstevel@tonic-gate %} 840Sstevel@tonic-gate %bool_t 850Sstevel@tonic-gate %xdr_daddr_t(XDR *xdrs, daddr_t *objp) 860Sstevel@tonic-gate %{ 870Sstevel@tonic-gate % if (!xdr_int(xdrs, (int *) objp)) 880Sstevel@tonic-gate % return (FALSE); 890Sstevel@tonic-gate % return (TRUE); 900Sstevel@tonic-gate %} 910Sstevel@tonic-gate %bool_t 920Sstevel@tonic-gate %xdr_daddr32_t(XDR *xdrs, daddr32_t *objp) 930Sstevel@tonic-gate %{ 940Sstevel@tonic-gate % if (!xdr_int(xdrs, (int *) objp)) 950Sstevel@tonic-gate % return (FALSE); 960Sstevel@tonic-gate % return (TRUE); 970Sstevel@tonic-gate %} 980Sstevel@tonic-gate %bool_t 990Sstevel@tonic-gate %xdr_diskaddr_t(XDR *xdrs, diskaddr_t *objp) 1000Sstevel@tonic-gate %{ 1010Sstevel@tonic-gate % if (!xdr_u_longlong_t(xdrs, objp)) 1020Sstevel@tonic-gate % return (FALSE); 1030Sstevel@tonic-gate % return (TRUE); 1040Sstevel@tonic-gate %} 1050Sstevel@tonic-gate %bool_t 1060Sstevel@tonic-gate %xdr_ddi_devid_t(XDR *xdrs, ddi_devid_t *objp) 1070Sstevel@tonic-gate %{ 1080Sstevel@tonic-gate % /* device ids not supported for non-local sets */ 1090Sstevel@tonic-gate % return (TRUE); 1100Sstevel@tonic-gate %} 1110Sstevel@tonic-gate %bool_t 1120Sstevel@tonic-gate %xdr_off_t(XDR *xdrs, off_t *objp) 1130Sstevel@tonic-gate %{ 1140Sstevel@tonic-gate % if (!xdr_int(xdrs, (int *) objp)) 1150Sstevel@tonic-gate % return (FALSE); 1160Sstevel@tonic-gate % return (TRUE); 1170Sstevel@tonic-gate %} 1180Sstevel@tonic-gate %bool_t 1190Sstevel@tonic-gate %xdr_timeval(XDR *xdrs, struct timeval *objp) 1200Sstevel@tonic-gate %{ 1210Sstevel@tonic-gate % if (!xdr_int(xdrs, (int *)&objp->tv_sec)) 1220Sstevel@tonic-gate % return (FALSE); 1230Sstevel@tonic-gate % if (!xdr_int(xdrs, (int *)&objp->tv_usec)) 1240Sstevel@tonic-gate % return (FALSE); 1250Sstevel@tonic-gate % return (TRUE); 1260Sstevel@tonic-gate %} 1270Sstevel@tonic-gate % 1280Sstevel@tonic-gate %bool_t 1290Sstevel@tonic-gate %xdr_md_timeval32_t(XDR *xdrs, md_timeval32_t *objp) 1300Sstevel@tonic-gate %{ 1310Sstevel@tonic-gate % if (!xdr_int(xdrs, &objp->tv_sec)) 1320Sstevel@tonic-gate % return (FALSE); 1330Sstevel@tonic-gate % if (!xdr_int(xdrs, &objp->tv_usec)) 1340Sstevel@tonic-gate % return (FALSE); 1350Sstevel@tonic-gate % return (TRUE); 1360Sstevel@tonic-gate %} 1370Sstevel@tonic-gate % 1380Sstevel@tonic-gate #else /* _KERNEL */ 1390Sstevel@tonic-gate %#ifdef _LP64 1400Sstevel@tonic-gate %bool_t 1410Sstevel@tonic-gate %xdr_timeval(XDR *xdrs, struct timeval *objp) 1420Sstevel@tonic-gate %{ 1430Sstevel@tonic-gate % struct timeval32 tv32; 1440Sstevel@tonic-gate % if (xdrs->x_op == XDR_ENCODE) 1450Sstevel@tonic-gate % TIMEVAL_TO_TIMEVAL32(&tv32, objp); 1460Sstevel@tonic-gate % if (!xdr_int(xdrs, &tv32.tv_sec)) 1470Sstevel@tonic-gate % return (FALSE); 1480Sstevel@tonic-gate % if (!xdr_int(xdrs, &tv32.tv_usec)) 1490Sstevel@tonic-gate % return (FALSE); 1500Sstevel@tonic-gate % if (xdrs->x_op == XDR_DECODE) 1510Sstevel@tonic-gate % TIMEVAL32_TO_TIMEVAL(objp, &tv32); 1520Sstevel@tonic-gate % return (TRUE); 1530Sstevel@tonic-gate %} 1540Sstevel@tonic-gate %#else /* !_LP64 */ 1550Sstevel@tonic-gate %bool_t 1560Sstevel@tonic-gate %xdr_timeval(XDR *xdrs, struct timeval *objp) 1570Sstevel@tonic-gate %{ 1580Sstevel@tonic-gate % if (!xdr_int(xdrs, (int *)&objp->tv_sec)) 1590Sstevel@tonic-gate % return (FALSE); 1600Sstevel@tonic-gate % if (!xdr_int(xdrs, (int *)&objp->tv_usec)) 1610Sstevel@tonic-gate % return (FALSE); 1620Sstevel@tonic-gate % return (TRUE); 1630Sstevel@tonic-gate %} 1640Sstevel@tonic-gate %#endif /* _LP64 */ 1650Sstevel@tonic-gate #endif /* !_KERNEL */ 1660Sstevel@tonic-gate % 1670Sstevel@tonic-gate %bool_t 1680Sstevel@tonic-gate %xdr_minor_t(XDR *xdrs, minor_t *objp) 1690Sstevel@tonic-gate %{ 1700Sstevel@tonic-gate % if (!xdr_u_int(xdrs, (u_int *)objp)) 1710Sstevel@tonic-gate % return (FALSE); 1720Sstevel@tonic-gate % return (TRUE); 1730Sstevel@tonic-gate %} 1740Sstevel@tonic-gate % 1750Sstevel@tonic-gate %bool_t 1760Sstevel@tonic-gate %xdr_clnt_stat(XDR *xdrs, enum clnt_stat *objp) 1770Sstevel@tonic-gate %{ 1780Sstevel@tonic-gate % if (!xdr_enum(xdrs, (enum_t *)objp)) 1790Sstevel@tonic-gate % return (FALSE); 1800Sstevel@tonic-gate % return (TRUE); 1810Sstevel@tonic-gate %} 1820Sstevel@tonic-gate % 1830Sstevel@tonic-gate #ifdef _KERNEL 1840Sstevel@tonic-gate % 1850Sstevel@tonic-gate %#define LASTUNSIGNED ((u_int)0-1) 1860Sstevel@tonic-gate % 1870Sstevel@tonic-gate %/* 1880Sstevel@tonic-gate % * xdr_vector(): 1890Sstevel@tonic-gate % * 1900Sstevel@tonic-gate % * XDR a fixed length array. Unlike variable-length arrays, 1910Sstevel@tonic-gate % * the storage of fixed length arrays is static and unfreeable. 1920Sstevel@tonic-gate % * > basep: base of the array 1930Sstevel@tonic-gate % * > size: size of the array 1940Sstevel@tonic-gate % * > elemsize: size of each element 1950Sstevel@tonic-gate % * > xdr_elem: routine to XDR each element 1960Sstevel@tonic-gate % */ 1970Sstevel@tonic-gate %bool_t 1980Sstevel@tonic-gate %xdr_vector(xdrs, basep, nelem, elemsize, xdr_elem) 1990Sstevel@tonic-gate % XDR *xdrs; 2000Sstevel@tonic-gate % char *basep; 2010Sstevel@tonic-gate % u_int nelem; 2020Sstevel@tonic-gate % u_int elemsize; 2030Sstevel@tonic-gate % xdrproc_t xdr_elem; 2040Sstevel@tonic-gate %{ 2050Sstevel@tonic-gate % u_int i; 2060Sstevel@tonic-gate % char *elptr; 2070Sstevel@tonic-gate % 2080Sstevel@tonic-gate % elptr = basep; 2090Sstevel@tonic-gate % for (i = 0; i < nelem; i++) { 2100Sstevel@tonic-gate % if (! (*xdr_elem)(xdrs, elptr, LASTUNSIGNED)) { 2110Sstevel@tonic-gate % return (FALSE); 2120Sstevel@tonic-gate % } 2130Sstevel@tonic-gate % elptr += elemsize; 2140Sstevel@tonic-gate % } 2150Sstevel@tonic-gate % return (TRUE); 2160Sstevel@tonic-gate %} 2170Sstevel@tonic-gate #endif /* _KERNEL */ 2180Sstevel@tonic-gate #endif /* RPC_XDR */ 2190Sstevel@tonic-gate 2200Sstevel@tonic-gate #ifdef RPC_HDR 2210Sstevel@tonic-gate % 2220Sstevel@tonic-gate %/* 2230Sstevel@tonic-gate % * Some constants 2240Sstevel@tonic-gate % */ 2250Sstevel@tonic-gate const MD_MAX_SETNAME = 50; 2260Sstevel@tonic-gate const MD_MAX_NODENAME = 63; 2270Sstevel@tonic-gate const MAX_HOST_ADDRS = 3; 2280Sstevel@tonic-gate const MD_MAX_MNNODENAME = 256; 2290Sstevel@tonic-gate 2300Sstevel@tonic-gate const MED_MAX_HOSTS = 3; 2310Sstevel@tonic-gate const MED_DEF_HOSTS = 2; 2320Sstevel@tonic-gate 2330Sstevel@tonic-gate const MD_MAXSIDES = 8; 2340Sstevel@tonic-gate const MD_LOCAL_SET = 0; 2350Sstevel@tonic-gate 2360Sstevel@tonic-gate const MD_MNMAXSIDES = 128; 2370Sstevel@tonic-gate const MDDB_SN_LEN = 12; 2380Sstevel@tonic-gate const MDDB_MINOR_NAME_MAX = 32; 2390Sstevel@tonic-gate const MD_MAXDRVNM = 16; 2400Sstevel@tonic-gate 2410Sstevel@tonic-gate const MD_MAX_BLKS_FOR_SMALL_DEVS = 2147483647; 2420Sstevel@tonic-gate % 2430Sstevel@tonic-gate %/* Minimum number of metadevice database replicas needed */ 2440Sstevel@tonic-gate const MD_MINREPLICAS = 1; 2450Sstevel@tonic-gate 2460Sstevel@tonic-gate %#define MD_MAX_SETNAME_PLUS_1 (MD_MAX_SETNAME + 1) 2470Sstevel@tonic-gate %#define MD_MAX_NODENAME_PLUS_1 (MD_MAX_NODENAME + 1) 2480Sstevel@tonic-gate %#define MD_MAX_MNNODENAME_PLUS_1 (MD_MAX_MNNODENAME + 1) 2490Sstevel@tonic-gate % 2500Sstevel@tonic-gate %#define MD_SET_BAD ((set_t)~0UL) 2510Sstevel@tonic-gate % 2520Sstevel@tonic-gate %#define MD_LOCAL_NAME "" 2530Sstevel@tonic-gate % 2540Sstevel@tonic-gate %#define MD_SIDEWILD ((side_t)~0UL) 2550Sstevel@tonic-gate % 2560Sstevel@tonic-gate %#define MD_KEYWILD ((mdkey_t)0) 2570Sstevel@tonic-gate %#define MD_KEYBAD ((mdkey_t)~0UL) 258*1623Stw21770 %#define MD_UNITBAD ((unit_t)~0UL) 259*1623Stw21770 %#define MD_HSPID_WILD ((hsp_t)~0UL) 2600Sstevel@tonic-gate 2610Sstevel@tonic-gate %/* Maximum length of a metadevice name */ 2620Sstevel@tonic-gate %#define MD_MAX_SIDENAME_LEN (MD_MAXDRVNM + MD_MAX_SETNAME + 2) 2630Sstevel@tonic-gate % 2640Sstevel@tonic-gate %/* 2650Sstevel@tonic-gate % * dev_t is 64 bit now across userland and kernel. Whereever 32 bit value 2660Sstevel@tonic-gate % * is specifically needed, dev32_t will be used. Internally dev_t is used. 2670Sstevel@tonic-gate % * timeval is always 32 bit across userland and kernel. 2680Sstevel@tonic-gate % */ 2690Sstevel@tonic-gate %typedef u_longlong_t md_dev64_t; 2700Sstevel@tonic-gate %typedef struct timeval32 md_timeval32_t; 2710Sstevel@tonic-gate % 2720Sstevel@tonic-gate %/* 2730Sstevel@tonic-gate % * The following definitions are not available, when operating in 2740Sstevel@tonic-gate % * a 32 bit environment. As we are always dealing with 2750Sstevel@tonic-gate % * 64 bit devices, md_dev64_t, we need those definitions also in 2760Sstevel@tonic-gate % * a 32 bit environment 2770Sstevel@tonic-gate % */ 2780Sstevel@tonic-gate %#ifndef NBITSMAJOR64 2790Sstevel@tonic-gate %#define NBITSMAJOR64 32 /* # of major device bits in 64-bit Solaris */ 2800Sstevel@tonic-gate %#endif /* NBITSMAJOR64 */ 2810Sstevel@tonic-gate % 2820Sstevel@tonic-gate %#ifndef NBITSMINOR64 2830Sstevel@tonic-gate %#define NBITSMINOR64 32 /* # of minor device bits in 64-bit Solaris */ 2840Sstevel@tonic-gate %#endif /* NBITSMINOR64 */ 2850Sstevel@tonic-gate % 2860Sstevel@tonic-gate %#ifndef MAXMAJ64 2870Sstevel@tonic-gate %#define MAXMAJ64 0xfffffffful /* max major value */ 2880Sstevel@tonic-gate %#endif /* MAXMAJ64 */ 2890Sstevel@tonic-gate % 2900Sstevel@tonic-gate %#ifndef MAXMIN64 2910Sstevel@tonic-gate %#define MAXMIN64 0xfffffffful /* max minor value */ 2920Sstevel@tonic-gate %#endif /* MAXMIN64 */ 2930Sstevel@tonic-gate % 2940Sstevel@tonic-gate %#ifndef NODEV64 2950Sstevel@tonic-gate %#define NODEV64 0xffffffffffffffffuLL 2960Sstevel@tonic-gate %#endif /* NODEV64 */ 2970Sstevel@tonic-gate % 2980Sstevel@tonic-gate %#ifndef NODEV32 2990Sstevel@tonic-gate %#define NODEV32 0xffffffffuL 3000Sstevel@tonic-gate %#endif /* NODEV32 */ 3010Sstevel@tonic-gate % 3020Sstevel@tonic-gate %#ifndef MD_DISKADDR_ERROR 3030Sstevel@tonic-gate %#define MD_DISKADDR_ERROR 0xffffffffffffffffuLL 3040Sstevel@tonic-gate %#endif /* MD_DISKADDR_ERROR */ 3050Sstevel@tonic-gate 3060Sstevel@tonic-gate #endif /* RPC_HDR */ 3070Sstevel@tonic-gate 3080Sstevel@tonic-gate #if defined(RPC_HDR) || defined(RPC_XDR) 3090Sstevel@tonic-gate % 3100Sstevel@tonic-gate %/* namespace key */ 3110Sstevel@tonic-gate typedef int mdkey_t; 3120Sstevel@tonic-gate 3130Sstevel@tonic-gate % 3140Sstevel@tonic-gate %/* set ID */ 3150Sstevel@tonic-gate typedef u_int set_t; 3160Sstevel@tonic-gate 3170Sstevel@tonic-gate % 3180Sstevel@tonic-gate %/* record ID type */ 3190Sstevel@tonic-gate typedef int mddb_recid_t; 3200Sstevel@tonic-gate 3210Sstevel@tonic-gate % 3220Sstevel@tonic-gate %/* side ID */ 3230Sstevel@tonic-gate typedef u_int side_t; 3240Sstevel@tonic-gate 3250Sstevel@tonic-gate % 3260Sstevel@tonic-gate %/* Multi-node node ID */ 3270Sstevel@tonic-gate typedef uint32_t md_mn_nodeid_t; 3280Sstevel@tonic-gate 3290Sstevel@tonic-gate % 3300Sstevel@tonic-gate %/* Shared definitions */ 3310Sstevel@tonic-gate #include "meta_arr.x" 3320Sstevel@tonic-gate 3330Sstevel@tonic-gate #endif /* defined(RPC_HDR) || defined(RPC_XDR) */ 3340Sstevel@tonic-gate 3350Sstevel@tonic-gate #ifdef RPC_HDR 3360Sstevel@tonic-gate % 3370Sstevel@tonic-gate %#if defined(__STDC__) || defined(__cplusplus) 3380Sstevel@tonic-gate #ifndef _KERNEL 3390Sstevel@tonic-gate %extern bool_t xdr_uint_t(XDR *xdrs, uint_t *objp); 3400Sstevel@tonic-gate %extern bool_t xdr_ushort_t(XDR *xdrs, ushort_t *objp); 3410Sstevel@tonic-gate %extern bool_t xdr_dev_t(XDR *xdrs, dev_t *objp); 3420Sstevel@tonic-gate %extern bool_t xdr_dev32_t(XDR *xdrs, dev32_t *objp); 3430Sstevel@tonic-gate %extern bool_t xdr_md_dev64_t(XDR *xdrs, md_dev64_t *objp); 3440Sstevel@tonic-gate %extern bool_t xdr_size_t(XDR *xdrs, size_t *objp); 3450Sstevel@tonic-gate %extern bool_t xdr_daddr_t(XDR *xdrs, daddr_t *objp); 3460Sstevel@tonic-gate %extern bool_t xdr_daddr32_t(XDR *xdrs, daddr32_t *objp); 3470Sstevel@tonic-gate %extern bool_t xdr_diskaddr_t(XDR *xdrs, diskaddr_t *objp); 3480Sstevel@tonic-gate %extern bool_t xdr_ddi_devid_t(XDR *xdrs, ddi_devid_t *objp); 3490Sstevel@tonic-gate %extern bool_t xdr_off_t(XDR *xdrs, off_t *objp); 3500Sstevel@tonic-gate %extern bool_t xdr_md_timeval32_t(XDR *xdrs, md_timeval32_t *objp); 3510Sstevel@tonic-gate #endif /* !_KERNEL */ 3520Sstevel@tonic-gate %extern bool_t xdr_minor_t(XDR *xdrs, minor_t *objp); 3530Sstevel@tonic-gate %extern bool_t xdr_timeval(XDR *xdrs, struct timeval *objp); 3540Sstevel@tonic-gate %extern bool_t xdr_clnt_stat(XDR *xdrs, enum clnt_stat *objp); 3550Sstevel@tonic-gate #ifdef _KERNEL 3560Sstevel@tonic-gate %extern bool_t xdr_vector(XDR *xdrs, char *basep, 3570Sstevel@tonic-gate % u_int nelem, u_int elemsize, 3580Sstevel@tonic-gate % xdrproc_t xdr_elem); 3590Sstevel@tonic-gate #endif /* _KERNEL */ 3600Sstevel@tonic-gate %#else /* K&R C */ 3610Sstevel@tonic-gate #ifndef _KERNEL 3620Sstevel@tonic-gate %extern bool_t xdr_uint_t(); 3630Sstevel@tonic-gate %extern bool_t xdr_ushort_t(); 3640Sstevel@tonic-gate %extern bool_t xdr_dev_t(); 3650Sstevel@tonic-gate %extern bool_t xdr_dev32_t(); 3660Sstevel@tonic-gate %extern bool_t xdr_md_dev64_t(); 3670Sstevel@tonic-gate %extern bool_t xdr_size_t(); 3680Sstevel@tonic-gate %extern bool_t xdr_daddr_t(); 3690Sstevel@tonic-gate %extern bool_t xdr_daddr32_t(); 3700Sstevel@tonic-gate %extern bool_t xdr_diskaddr_t(); 3710Sstevel@tonic-gate %extern bool_t xdr_ddi_devid_t(); 3720Sstevel@tonic-gate %extern bool_t xdr_off_t(); 3730Sstevel@tonic-gate %extern bool_t xdr_md_timeval32_t(); 3740Sstevel@tonic-gate #endif /* !_KERNEL */ 3750Sstevel@tonic-gate %extern bool_t xdr_minor_t(); 3760Sstevel@tonic-gate %extern bool_t xdr_timeval(); 3770Sstevel@tonic-gate %extern bool_t xdr_clnt_stat(); 3780Sstevel@tonic-gate % 3790Sstevel@tonic-gate #ifdef _KERNEL 3800Sstevel@tonic-gate %extern bool_t xdr_vector(); 3810Sstevel@tonic-gate #endif /* _KERNEL */ 3820Sstevel@tonic-gate %#endif /* K&R C */ 3830Sstevel@tonic-gate #endif /* RPC_HDR */ 384