%/*
% * 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
% * 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 2009 Sun Microsystems, Inc. All rights reserved.
% * Use is subject to license terms.
% */
%
%/* get timeval32 definition */
#ifndef _KERNEL
%#ifdef _KERNEL
%#error "Compiling kernel file rpcgened without _KERNEL define."
%#endif /* _KERNEL */
#endif /* _KERNEL */
%#include <sys/dditypes.h>
#ifdef RPC_XDR
#ifndef _KERNEL
%{
% return (FALSE);
% return (TRUE);
%}
%{
% return (FALSE);
% return (TRUE);
%}
%{
% return (FALSE);
% return (TRUE);
%}
%{
% return (FALSE);
% return (TRUE);
%}
%{
% return (FALSE);
% return (TRUE);
%}
%{
% return (FALSE);
% return (TRUE);
%}
%{
% return (FALSE);
% return (TRUE);
%}
%{
% return (FALSE);
% return (TRUE);
%}
%{
% return (FALSE);
% return (TRUE);
%}
%{
% /* device ids not supported for non-local sets */
% return (TRUE);
%}
%{
% return (FALSE);
% return (TRUE);
%}
%{
% return (FALSE);
% return (FALSE);
% return (TRUE);
%}
%
%{
% return (FALSE);
% return (FALSE);
% return (TRUE);
%}
%
#else /* _KERNEL */
%#ifdef _LP64
%{
% return (FALSE);
% return (FALSE);
% return (TRUE);
%}
%#else /* !_LP64 */
%{
% return (FALSE);
% return (FALSE);
% return (TRUE);
%}
%#endif /* _LP64 */
#endif /* !_KERNEL */
%
%{
% return (FALSE);
% return (TRUE);
%}
%
%{
% return (FALSE);
% return (TRUE);
%}
#endif /* RPC_XDR */
#ifdef RPC_HDR
%
%/*
% * Some constants
% */
const MD_MAX_SETNAME = 50;
const MD_MAX_NODENAME = 63;
const MAX_HOST_ADDRS = 3;
const MD_MAX_MNNODENAME = 256;
const MED_MAX_HOSTS = 3;
const MED_DEF_HOSTS = 3;
const MD_MAXSIDES = 8;
const MD_LOCAL_SET = 0;
const MD_MNMAXSIDES = 128;
const MDDB_SN_LEN = 12;
const MDDB_MINOR_NAME_MAX = 32;
const MD_MAXDRVNM = 16;
const MD_MAX_BLKS_FOR_SMALL_DEVS = 2147483647;
%#define MD_MAX_BLKS_FOR_EXTVTOC 4294967295ULL
%
%/* Minimum number of metadevice database replicas needed */
const MD_MINREPLICAS = 1;
%
%
%#define MD_LOCAL_NAME ""
%
%
%#define MD_KEYWILD ((mdkey_t)0)
%/* Maximum length of a metadevice name */
%
%/*
% * dev_t is 64 bit now across userland and kernel. Whereever 32 bit value
% * is specifically needed, dev32_t will be used. Internally dev_t is used.
% * timeval is always 32 bit across userland and kernel.
% */
%typedef u_longlong_t md_dev64_t;
%typedef struct timeval32 md_timeval32_t;
%
%/*
% * The following definitions are not available, when operating in
% * a 32 bit environment. As we are always dealing with
% * 64 bit devices, md_dev64_t, we need those definitions also in
% * a 32 bit environment
% */
%#ifndef NBITSMAJOR64
%#endif /* NBITSMAJOR64 */
%
%#ifndef NBITSMINOR64
%#endif /* NBITSMINOR64 */
%
%#ifndef MAXMAJ64
%#endif /* MAXMAJ64 */
%
%#ifndef MAXMIN64
%#endif /* MAXMIN64 */
%
%#ifndef NODEV64
%#define NODEV64 0xffffffffffffffffuLL
%#endif /* NODEV64 */
%
%#ifndef NODEV32
%#define NODEV32 0xffffffffuL
%#endif /* NODEV32 */
%
%#ifndef MD_DISKADDR_ERROR
%#define MD_DISKADDR_ERROR 0xffffffffffffffffuLL
%#endif /* MD_DISKADDR_ERROR */
#endif /* RPC_HDR */
%
%/* namespace key */
typedef int mdkey_t;
%
%/* set ID */
%
%/* record ID type */
typedef int mddb_recid_t;
%
%/* side ID */
%
%/* Multi-node node ID */
typedef uint32_t md_mn_nodeid_t;
%
%/* Shared definitions */
#include "meta_arr.x"
#endif /* defined(RPC_HDR) || defined(RPC_XDR) */
#ifdef RPC_HDR
%
%#if defined(__STDC__) || defined(__cplusplus)
#ifndef _KERNEL
#endif /* !_KERNEL */
%#else /* K&R C */
#ifndef _KERNEL
%extern bool_t xdr_uint_t();
%extern bool_t xdr_ushort_t();
%extern bool_t xdr_dev32_t();
%extern bool_t xdr_md_dev64_t();
%extern bool_t xdr_size_t();
%extern bool_t xdr_daddr_t();
%extern bool_t xdr_daddr32_t();
%extern bool_t xdr_diskaddr_t();
%extern bool_t xdr_ddi_devid_t();
%extern bool_t xdr_md_timeval32_t();
#endif /* !_KERNEL */
%extern bool_t xdr_minor_t();
%extern bool_t xdr_timeval();
%extern bool_t xdr_clnt_stat();
%#endif /* K&R C */
#endif /* RPC_HDR */