fmd_rpc_adm.x revision d9638e547d8811f2c689977f8dd2a353938b61fd
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk/*
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * CDDL HEADER START
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk *
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * The contents of this file are subject to the terms of the
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * Common Development and Distribution License, Version 1.0 only
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * (the "License"). You may not use this file except in compliance
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * with the License.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk *
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * or http://www.opensolaris.org/os/licensing.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * See the License for the specific language governing permissions
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * and limitations under the License.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk *
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * When distributing Covered Code, include this CDDL HEADER in each
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenk * If applicable, add the following below this CDDL HEADER, with the
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * fields enclosed by brackets "[]" replaced with your own identifying
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * information: Portions Copyright [yyyy] [name of copyright owner]
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenk *
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * CDDL HEADER END
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk */
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenk/*
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * Use is subject to license terms.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk */
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk%#pragma ident "%Z%%M% %I% %E% SMI"
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk%#include <fm/fmd_api.h>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkenum fmd_adm_error {
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_NOMEM = 1,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_PERM,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_MODSRCH,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_MODBUSY,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_MODFAIL,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_MODNOENT,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_MODEXIST,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_MODINIT,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_MODLOAD,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_RSRCSRCH,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_RSRCNOTF,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_SERDSRCH,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_SERDFIRED,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_ROTSRCH,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_ROTFAIL,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_ROTBUSY,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_CASESRCH,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_CASEOPEN,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_XPRTSRCH,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk FMD_ADM_ERR_CASEXPRT
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk};
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkstruct fmd_rpc_modstat {
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk struct fmd_stat rms_buf<>;
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenk enum fmd_adm_error rms_err;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk};
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkstruct fmd_rpc_modinfo {
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk string rmi_name<>;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk string rmi_desc<>;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk string rmi_vers<>;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk bool rmi_faulty;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk struct fmd_rpc_modinfo *rmi_next;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk};
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkstruct fmd_rpc_modlist {
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk enum fmd_adm_error rml_err;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk struct fmd_rpc_modinfo *rml_list;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk uint32_t rml_len;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk};
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkstruct fmd_rpc_rsrcinfo {
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk string rri_fmri<>;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk string rri_uuid<>;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk string rri_case<>;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk bool rri_faulty;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk bool rri_unusable;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk bool rri_invisible;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk enum fmd_adm_error rri_err;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk};
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkstruct fmd_rpc_rsrclist {
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk opaque rrl_buf<>;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk uint32_t rrl_len;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk uint32_t rrl_cnt;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk enum fmd_adm_error rrl_err;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk bool rrl_all;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk};
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkstruct fmd_rpc_serdinfo {
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk string rsi_name<>;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk uint64_t rsi_delta;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk uint32_t rsi_count;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk bool rsi_fired;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk uint64_t rsi_n;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk uint64_t rsi_t;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk struct fmd_rpc_serdinfo *rsi_next;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk};
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkstruct fmd_rpc_serdlist {
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk enum fmd_adm_error rsl_err;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk struct fmd_rpc_serdinfo *rsl_list;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk uint32_t rsl_len;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk};
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkstruct fmd_rpc_xprtlist {
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk int32_t rxl_buf<>;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk uint32_t rxl_len;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk enum fmd_adm_error rxl_err;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk};
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkprogram FMD_ADM {
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk version FMD_ADM_VERSION_1 {
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk struct fmd_rpc_modlist FMD_ADM_MODINFO(void) = 1;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk struct fmd_rpc_modstat FMD_ADM_MODCSTAT(string) = 2;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk struct fmd_rpc_modstat FMD_ADM_MODDSTAT(string) = 3;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk struct fmd_rpc_modstat FMD_ADM_MODGSTAT(void) = 4;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk int FMD_ADM_MODLOAD(string) = 5;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk int FMD_ADM_MODUNLOAD(string) = 6;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk int FMD_ADM_MODRESET(string) = 7;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk int FMD_ADM_MODGC(string) = 8;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk struct fmd_rpc_rsrclist FMD_ADM_RSRCLIST(bool) = 9;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk struct fmd_rpc_rsrcinfo FMD_ADM_RSRCINFO(string) = 10;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk int FMD_ADM_RSRCFLUSH(string) = 11;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk int FMD_ADM_RSRCREPAIR(string) = 12;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk struct fmd_rpc_serdlist FMD_ADM_SERDINFO(string) = 13;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk int FMD_ADM_SERDRESET(string, string) = 14;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk int FMD_ADM_LOGROTATE(string) = 15;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk int FMD_ADM_CASEREPAIR(string) = 16;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk struct fmd_rpc_xprtlist FMD_ADM_XPRTLIST(void) = 17;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk struct fmd_rpc_modstat FMD_ADM_XPRTSTAT(int32_t) = 18;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk } = 1;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk} = 100169;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk%extern void fmd_adm_1(struct svc_req *, SVCXPRT *);
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk%extern bool_t xdr_fmd_stat(XDR *, struct fmd_stat *);
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk%#undef RW_READ_HELD
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk%#undef RW_WRITE_HELD
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk%#undef RW_LOCK_HELD
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk%#undef MUTEX_HELD
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk