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