17c478bd9Sstevel@tonic-gate /*
27c478bd9Sstevel@tonic-gate  * CDDL HEADER START
37c478bd9Sstevel@tonic-gate  *
47c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5749f21d3Swesolows  * Common Development and Distribution License (the "License").
6749f21d3Swesolows  * You may not use this file except in compliance with the License.
77c478bd9Sstevel@tonic-gate  *
87c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
97c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
107c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
117c478bd9Sstevel@tonic-gate  * and limitations under the License.
127c478bd9Sstevel@tonic-gate  *
137c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
147c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
157c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
167c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
177c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
187c478bd9Sstevel@tonic-gate  *
197c478bd9Sstevel@tonic-gate  * CDDL HEADER END
207c478bd9Sstevel@tonic-gate  */
21d9638e54Smws 
227c478bd9Sstevel@tonic-gate /*
236e1fa242SStephen Hanson  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
247c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
257c478bd9Sstevel@tonic-gate  */
267c478bd9Sstevel@tonic-gate 
277c478bd9Sstevel@tonic-gate %#include <fm/fmd_api.h>
287c478bd9Sstevel@tonic-gate 
297c478bd9Sstevel@tonic-gate enum fmd_adm_error {
307c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_NOMEM = 1,
317c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_PERM,
327c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_MODSRCH,
337c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_MODBUSY,
347c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_MODFAIL,
357c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_MODNOENT,
367c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_MODEXIST,
377c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_MODINIT,
387c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_MODLOAD,
397c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_RSRCSRCH,
407c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_RSRCNOTF,
417c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_SERDSRCH,
427c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_SERDFIRED,
437c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_ROTSRCH,
447c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_ROTFAIL,
457c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_ROTBUSY,
467c478bd9Sstevel@tonic-gate 	FMD_ADM_ERR_CASESRCH,
47d9638e54Smws 	FMD_ADM_ERR_CASEOPEN,
48d9638e54Smws 	FMD_ADM_ERR_XPRTSRCH,
496e1fa242SStephen Hanson 	FMD_ADM_ERR_CASEXPRT,
506e1fa242SStephen Hanson 	FMD_ADM_ERR_RSRCNOTR
517c478bd9Sstevel@tonic-gate };
527c478bd9Sstevel@tonic-gate 
537c478bd9Sstevel@tonic-gate struct fmd_rpc_modstat {
547c478bd9Sstevel@tonic-gate 	struct fmd_stat rms_buf<>;
557c478bd9Sstevel@tonic-gate 	enum fmd_adm_error rms_err;
567c478bd9Sstevel@tonic-gate };
577c478bd9Sstevel@tonic-gate 
587c478bd9Sstevel@tonic-gate struct fmd_rpc_modinfo {
597c478bd9Sstevel@tonic-gate 	string rmi_name<>;
607c478bd9Sstevel@tonic-gate 	string rmi_desc<>;
617c478bd9Sstevel@tonic-gate 	string rmi_vers<>;
627c478bd9Sstevel@tonic-gate 	bool rmi_faulty;
637c478bd9Sstevel@tonic-gate 	struct fmd_rpc_modinfo *rmi_next;
647c478bd9Sstevel@tonic-gate };
657c478bd9Sstevel@tonic-gate 
667c478bd9Sstevel@tonic-gate struct fmd_rpc_modlist {
677c478bd9Sstevel@tonic-gate 	enum fmd_adm_error rml_err;
687c478bd9Sstevel@tonic-gate 	struct fmd_rpc_modinfo *rml_list;
697c478bd9Sstevel@tonic-gate 	uint32_t rml_len;
707c478bd9Sstevel@tonic-gate };
717c478bd9Sstevel@tonic-gate 
727c478bd9Sstevel@tonic-gate struct fmd_rpc_rsrcinfo {
737c478bd9Sstevel@tonic-gate 	string rri_fmri<>;
747c478bd9Sstevel@tonic-gate 	string rri_uuid<>;
757c478bd9Sstevel@tonic-gate 	string rri_case<>;
767c478bd9Sstevel@tonic-gate 	bool rri_faulty;
777c478bd9Sstevel@tonic-gate 	bool rri_unusable;
787c478bd9Sstevel@tonic-gate 	bool rri_invisible;
797c478bd9Sstevel@tonic-gate 	enum fmd_adm_error rri_err;
807c478bd9Sstevel@tonic-gate };
817c478bd9Sstevel@tonic-gate 
827c478bd9Sstevel@tonic-gate struct fmd_rpc_rsrclist {
837c478bd9Sstevel@tonic-gate 	opaque rrl_buf<>;
847c478bd9Sstevel@tonic-gate 	uint32_t rrl_len;
857c478bd9Sstevel@tonic-gate 	uint32_t rrl_cnt;
867c478bd9Sstevel@tonic-gate 	enum fmd_adm_error rrl_err;
877c478bd9Sstevel@tonic-gate 	bool rrl_all;
887c478bd9Sstevel@tonic-gate };
897c478bd9Sstevel@tonic-gate 
907c478bd9Sstevel@tonic-gate struct fmd_rpc_serdinfo {
917c478bd9Sstevel@tonic-gate 	string rsi_name<>;
927c478bd9Sstevel@tonic-gate 	uint64_t rsi_delta;
937c478bd9Sstevel@tonic-gate 	uint32_t rsi_count;
947c478bd9Sstevel@tonic-gate 	bool rsi_fired;
957c478bd9Sstevel@tonic-gate 	uint64_t rsi_n;
967c478bd9Sstevel@tonic-gate 	uint64_t rsi_t;
97*1e6f4912SJakub Jermar 	enum fmd_adm_error rsi_err;
987c478bd9Sstevel@tonic-gate };
997c478bd9Sstevel@tonic-gate 
1007c478bd9Sstevel@tonic-gate struct fmd_rpc_serdlist {
101*1e6f4912SJakub Jermar 	opaque rsl_buf<>;
1027c478bd9Sstevel@tonic-gate 	uint32_t rsl_len;
103*1e6f4912SJakub Jermar 	uint32_t rsl_cnt;
104*1e6f4912SJakub Jermar 	enum fmd_adm_error rsl_err;
1057c478bd9Sstevel@tonic-gate };
1067c478bd9Sstevel@tonic-gate 
107d9638e54Smws struct fmd_rpc_xprtlist {
108d9638e54Smws 	int32_t rxl_buf<>;
109d9638e54Smws 	uint32_t rxl_len;
110d9638e54Smws 	enum fmd_adm_error rxl_err;
111d9638e54Smws };
112d9638e54Smws 
113749f21d3Swesolows struct fmd_rpc_caseinfo {
114749f21d3Swesolows 	opaque rci_evbuf<>;
115749f21d3Swesolows 	enum fmd_adm_error rci_err;
116749f21d3Swesolows };
117749f21d3Swesolows 
118749f21d3Swesolows struct fmd_rpc_caselist {
119749f21d3Swesolows 	opaque rcl_buf<>;
120749f21d3Swesolows 	uint32_t rcl_len;
121749f21d3Swesolows 	uint32_t rcl_cnt;
122749f21d3Swesolows 	enum fmd_adm_error rcl_err;
123749f21d3Swesolows };
124749f21d3Swesolows 
1257c478bd9Sstevel@tonic-gate program FMD_ADM {
1267c478bd9Sstevel@tonic-gate 	version FMD_ADM_VERSION_1 {
1277c478bd9Sstevel@tonic-gate 		struct fmd_rpc_modlist FMD_ADM_MODINFO(void) = 1;
1287c478bd9Sstevel@tonic-gate 		struct fmd_rpc_modstat FMD_ADM_MODCSTAT(string) = 2;
1297c478bd9Sstevel@tonic-gate 		struct fmd_rpc_modstat FMD_ADM_MODDSTAT(string) = 3;
1307c478bd9Sstevel@tonic-gate 		struct fmd_rpc_modstat FMD_ADM_MODGSTAT(void) = 4;
1317c478bd9Sstevel@tonic-gate 		int FMD_ADM_MODLOAD(string) = 5;
1327c478bd9Sstevel@tonic-gate 		int FMD_ADM_MODUNLOAD(string) = 6;
1337c478bd9Sstevel@tonic-gate 		int FMD_ADM_MODRESET(string) = 7;
1347c478bd9Sstevel@tonic-gate 		int FMD_ADM_MODGC(string) = 8;
1357c478bd9Sstevel@tonic-gate 		struct fmd_rpc_rsrclist FMD_ADM_RSRCLIST(bool) = 9;
1367c478bd9Sstevel@tonic-gate 		struct fmd_rpc_rsrcinfo FMD_ADM_RSRCINFO(string) = 10;
1377c478bd9Sstevel@tonic-gate 		int FMD_ADM_RSRCFLUSH(string) = 11;
13825c6ff4bSstephh 		int FMD_ADM_RSRCREPAIRED(string) = 12;
139*1e6f4912SJakub Jermar 		struct fmd_rpc_serdlist FMD_ADM_SERDINFO_OLD(string) = 13;
1407c478bd9Sstevel@tonic-gate 		int FMD_ADM_SERDRESET(string, string) = 14;
1417c478bd9Sstevel@tonic-gate 		int FMD_ADM_LOGROTATE(string) = 15;
1427c478bd9Sstevel@tonic-gate 		int FMD_ADM_CASEREPAIR(string) = 16;
143d9638e54Smws 		struct fmd_rpc_xprtlist FMD_ADM_XPRTLIST(void) = 17;
144d9638e54Smws 		struct fmd_rpc_modstat FMD_ADM_XPRTSTAT(int32_t) = 18;
145749f21d3Swesolows 		struct fmd_rpc_caselist FMD_ADM_CASELIST(void) = 19;
146749f21d3Swesolows 		struct fmd_rpc_caseinfo FMD_ADM_CASEINFO(string) = 20;
14725c6ff4bSstephh 		int FMD_ADM_RSRCREPLACED(string) = 21;
14825c6ff4bSstephh 		int FMD_ADM_RSRCACQUIT(string, string) = 22;
14925c6ff4bSstephh 		int FMD_ADM_CASEACQUIT(string) = 23;
150*1e6f4912SJakub Jermar 		struct fmd_rpc_serdlist FMD_ADM_SERDLIST(string) = 24;
151*1e6f4912SJakub Jermar 		struct fmd_rpc_serdinfo FMD_ADM_SERDINFO(string, string) = 25;
1527c478bd9Sstevel@tonic-gate 	} = 1;
1537c478bd9Sstevel@tonic-gate } = 100169;
1547c478bd9Sstevel@tonic-gate 
1557c478bd9Sstevel@tonic-gate %extern void fmd_adm_1(struct svc_req *, SVCXPRT *);
1567c478bd9Sstevel@tonic-gate %extern bool_t xdr_fmd_stat(XDR *, struct fmd_stat *);
1577c478bd9Sstevel@tonic-gate 
1587c478bd9Sstevel@tonic-gate %#undef	RW_READ_HELD
1597c478bd9Sstevel@tonic-gate %#undef	RW_WRITE_HELD
1607c478bd9Sstevel@tonic-gate %#undef	RW_LOCK_HELD
1617c478bd9Sstevel@tonic-gate %#undef	MUTEX_HELD
162