1%/* 2% * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 3% * Use is subject to license terms. 4% * 5% * CDDL HEADER START 6% * 7% * The contents of this file are subject to the terms of the 8% * Common Development and Distribution License, Version 1.0 only 9% * (the "License"). You may not use this file except in compliance 10% * with the License. 11% * 12% * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 13% * or http://www.opensolaris.org/os/licensing. 14% * See the License for the specific language governing permissions 15% * and limitations under the License. 16% * 17% * When distributing Covered Code, include this CDDL HEADER in each 18% * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 19% * If applicable, add the following below this CDDL HEADER, with the 20% * fields enclosed by brackets "[]" replaced with your own identifying 21% * information: Portions Copyright [yyyy] [name of copyright owner] 22% * 23% * CDDL HEADER END 24% */ 25% 26%#pragma ident "%Z%%M% %I% %E% SMI" 27% 28 29#ifdef RPC_SVC 30% 31%int mdc_in_daemon = 1; 32%#include <signal.h> 33#endif /* RPC_SVC */ 34 35#ifdef RPC_HDR 36%#ifndef STRINGARRAY 37#endif 38typedef string stringarray<>; 39#ifdef RPC_HDR 40%#define STRINGARRAY 41%#endif 42#endif 43 44struct mdc_err_t { 45 int mdc_errno; /* errno or negative error code */ 46 int mdc_exitcode; /* child exit code. */ 47 string mdc_node<>; /* associated node */ 48 string mdc_misc<>; /* misc text */ 49}; 50 51% 52%/* 53% * rpc argument and response structures 54% */ 55struct mdc_bind_res_t { 56 mdc_err_t mdc_status; /* status of RPC call */ 57}; 58 59struct mdcrpc_proxy_args_t { 60 stringarray argvlist<>; 61 stringarray environment<>; 62}; 63 64#ifdef RPC_CLNT 65%int _mdc_in_daemon = 0; 66%#pragma weak mdc_in_daemon = _mdc_in_daemon 67%void mdc_clrerror(mdc_err_t *mdcep); 68 69#endif /* RPC_CLNT */ 70 71#ifdef RPC_HDR 72% 73%extern int mdc_in_daemon; 74% 75%/* 76% * Null error structure initializer. 77% */ 78%#define MDC_NULL_ERR { 0, NULL, NULL } 79%#define MD_MDC_DEF_TO {5, 0} /* 5 seconds */ 80%#define MD_MDC_PMAP_TO {35, 0} /* 35 seconds */ 81%#define MD_MDC_PROXY_TO {60 * 60, 0 } /* 1hr */ 82% 83%/* 84% * various cluster errors, definition of MDC_NOTINCLUSTER must be changed 85% * when new errors are added, since MDC_NOERROR has to come out to 86% * be zero! 87% */ 88enum mdc_errno_t { 89 MDC_PROXYKILLED = -13, /* remote was killed by signal */ 90 MDC_PROXYNOFORK, /* could not fork remote */ 91 MDC_PROXYFAILED, /* remote exited non-zero */ 92 MDC_NOTINCLUSTER, /* host is not a node */ 93 MDC_NOACCESS, 94 MDC_NOACCESS_CCR, 95 MDC_RPCFAILED, 96 BIND_LINKISDIR, 97 BIND_NOACCESS_SHARED, 98 BIND_LOCALSET, 99 BIND_NODISKSETCLASS, 100 BIND_NOACCESS_DEVICE, 101 BIND_BADDEVICE, 102 MDC_NOERROR 103}; 104 105% 106%/* 107% * Set MDC_THISVERS to the newest version of the protocol 108% * This allows the preprocessor to force an error if the 109% * protocol changes, since the kernel xdr routines may need to be 110% * recoded. Note that we can't explicitly set the version to a 111% * symbol as rpcgen will then create erroneous routine names. 112% */ 113%#define MDC_V1 1 114%#define MDC_ORIGVERS MDC_V1 115%#define MDC_THISVERS 1 116% 117%/* All powerful group 14 */ 118%#define MDC_GID 14 119% 120%/* 121% * External reference to constant null error struct. (declared in med_xdr.c) 122% */ 123%extern const mdc_err_t mdc_null_err; 124%extern const struct timeval md_mdc_def_timeout; 125%extern const struct timeval md_mdc_pmap_timeout; 126%extern const struct timeval md_mdc_proxy_timeout; 127% 128%/* 129% * Some useful defines 130% */ 131%#define MDC_SERVNAME "rpc.metacld" 132%#define MDC_SVC "metacl" 133% 134#endif /* RPC_HDR */ 135 136#ifdef RPC_XDR 137% 138%/* 139% * Constant null error struct. 140% */ 141%const mdc_err_t mdc_null_err = MDC_NULL_ERR; 142%const struct timeval md_mdc_def_timeout = MD_MDC_DEF_TO; 143%const struct timeval md_mdc_pmap_timeout = MD_MDC_PMAP_TO; 144%const struct timeval md_mdc_proxy_timeout = MD_MDC_PROXY_TO; 145 146#endif /* RPC_XDR */ 147 148 149% 150%/* 151% * services available 152% */ 153program MDC_PROG { 154 version MDC_VERS { 155 mdc_bind_res_t mdc_null(void) = 0; 156 mdc_bind_res_t mdc_bind_devs(void) = 1; 157 mdc_bind_res_t mdc_proxy(mdcrpc_proxy_args_t) = 2; 158 } = 1; 159} = 100281; 160