| %/* |
| % * Copyright 2006 Sun Microsystems, Inc. All rights reserved. |
| % * Use is subject to license terms. |
| % * |
| % * CDDL HEADER START |
| % * |
| % * The contents of this file are subject to the terms of the |
| % * Common Development and Distribution License, Version 1.0 only |
| % * (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 |
| % * or http://www.opensolaris.org/os/licensing. |
| % * 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 |
| % */ |
| % |
| %#pragma ident "%Z%%M% %I% %E% SMI" |
| % |
| |
| %#include <mdiox.h> |
| %#include <meta_basic.h> |
| %#include <sys/lvm/mdmn_commd.h> |
| |
| #ifdef RPC_SVC |
| % |
| %int md_in_daemon = 1; |
| %#include <signal.h> |
| #endif /* RPC_SVC */ |
| |
| #ifdef RPC_CLNT |
| %int _md_in_daemon = 0; |
| %#pragma weak md_in_daemon = _md_in_daemon |
| #endif /* RPC_CLNT */ |
| |
| #ifdef RPC_HDR |
| % |
| %extern int md_in_daemon; |
| %/* |
| % * There are too many external factors that affect the timing of the |
| % * operations, so we set the timeout to a very large value, in this |
| % * case 1 day, which should handle HW timeouts, large configurations, |
| % * and other potential delays. |
| % */ |
| %#define CL_LONG_TMO 86400L |
| #endif /* RPC_HDR */ |
| |
| #ifdef RPC_XDR |
| % |
| %/* Start - Avoid duplicate definitions, but get the xdr calls right */ |
| %#if 0 |
| #include "../uts/common/sys/lvm/meta_arr.x" |
| %#endif /* 0 */ |
| %/* End - Avoid duplicate definitions, but get the xdr calls right */ |
| % |
| #endif /* RPC_XDR */ |
| |
| % |
| %/* |
| % * Structure Revisions |
| % */ |
| enum mdrpc_metad_args_rev { |
| MD_METAD_ARGS_REV_1 = 1 /* Revision 1 */ |
| }; |
| |
| % |
| %/* |
| % * device id |
| % */ |
| struct mdrpc_devid_res { |
| string enc_devid<>; /* encoded device id */ |
| md_error_t status; /* status of RPC call */ |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 device id arguments |
| % * (member union in mdrpc_devid_2_args) |
| % */ |
| struct mdrpc_devid_args { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| mddrivename_t *drivenamep; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 device id arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_devid_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_devid_args rev1; |
| default: |
| void; |
| }; |
| |
| % |
| %/* |
| % * For getting the devinfo based upon devid |
| % */ |
| struct mdrpc_devidstr_args { |
| mdsetname_t *sp; |
| string enc_devid<>; /* encoded device id */ |
| md_error_t status; /* status of RPC call */ |
| }; |
| |
| % |
| %/* |
| % * For getting the devinfo based upon devid/devname |
| % */ |
| struct mdrpc_devid_name_args { |
| mdsetname_t *sp; |
| string orig_devname<>; /* devname on orig node */ |
| string enc_devid<>; /* encoded device id */ |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 devinfo based upon devid/devname |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_devid_name_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_devid_name_args rev1; |
| default: |
| void; |
| }; |
| |
| % |
| %/* |
| % * version 1 device info |
| % */ |
| struct mdrpc_devinfo_res { |
| dev_t dev; /* major.minor */ |
| int vtime; /* vtoc timestamp */ |
| md_error_t status; /* status of RPC call */ |
| }; |
| |
| % |
| %/* |
| % * version 2 device info. dev_t is always 64-bit |
| % */ |
| struct mdrpc_devinfo_2_res { |
| md_dev64_t dev; /* major.minor */ |
| int vtime; /* vtoc timestamp */ |
| string enc_devid<>; /* encoded device id */ |
| string devname<>; /* name of the device */ |
| string drivername<>; /* name of the driver */ |
| md_error_t status; /* status of RPC call */ |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 1 device info arguments |
| % */ |
| struct mdrpc_devinfo_args { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| o_mddrivename_t *drivenamep; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 (revision 1) device info arguments |
| % * (member of union in mdrpc_devinfo_2_args) |
| % */ |
| struct mdrpc_devinfo_2_args_r1 { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| mddrivename_t *drivenamep; |
| string enc_devid<>; /* encoded device id */ |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 device info arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_devinfo_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_devinfo_2_args_r1 rev1; |
| default: |
| void; |
| }; |
| |
| struct mdrpc_hostname_res { |
| string hostname<>; |
| md_error_t status; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 1 and version 2 (revision 1) getset arguments |
| % */ |
| struct mdrpc_getset_args { |
| string setname<>; |
| set_t setno; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 getset arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_getset_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_getset_args rev1; |
| default: |
| void; |
| }; |
| |
| % |
| %/* NOTE: if you add to this struct, then fix the clnt_getset() */ |
| %/* to prevent memory leaks */ |
| struct mdrpc_getset_res { |
| md_set_record *sr; |
| md_error_t status; |
| }; |
| |
| % |
| %/* NOTE: if you add to this struct, then fix the clnt_mngetset() */ |
| %/* to prevent memory leaks */ |
| struct mdrpc_mngetset_res { |
| md_mnset_record *mnsr; |
| md_error_t status; |
| }; |
| |
| % |
| %/* NOTE: if you add to this struct, then fix the clnt_getdrivedesc() */ |
| %/* to prevent memory leaks */ |
| struct mdrpc_getdrivedesc_res { |
| md_drive_desc *dd; |
| md_error_t status; |
| }; |
| |
| #ifdef RPC_HDR |
| %#ifndef STRINGARRAY |
| #endif |
| typedef string stringarray<>; |
| #ifdef RPC_HDR |
| %#define STRINGARRAY |
| %#endif |
| #endif |
| |
| % |
| %/* |
| % * svm rpc version 1 and version 2 (revision 1) createset arguments |
| % */ |
| struct mdrpc_createset_args { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| md_node_nm_arr_t nodes; |
| md_timeval32_t timestamp; |
| u_long genid; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 createset arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_createset_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_createset_args rev1; |
| default: |
| void; |
| }; |
| |
| struct mdrpc_mncreateset_args { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| md_mnnode_desc *nodelist; |
| md_timeval32_t timestamp; |
| u_long genid; |
| md_node_nm_t master_nodenm; |
| int master_nodeid; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 mncreateset arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_mncreateset_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_mncreateset_args rev1; |
| default: |
| void; |
| }; |
| |
| |
| struct mdrpc_bool_res { |
| int value; |
| md_error_t status; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 1 drive arguments |
| % */ |
| struct mdrpc_drives_args { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| o_md_drive_desc *drivedescs; |
| md_timeval32_t timestamp; |
| u_long genid; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 (revision 1) drive arguments |
| % * (member of union in mrpc_drives_2_args) |
| % */ |
| struct mdrpc_drives_2_args_r1 { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| md_drive_desc *drivedescs; |
| md_timeval32_t timestamp; |
| u_long genid; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 drive arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_drives_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_drives_2_args_r1 rev1; |
| default: |
| void; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 1 sidename arguments |
| % */ |
| struct mdrpc_drv_sidenm_args { |
| md_setkey_t *cl_sk; |
| string hostname<>; |
| mdsetname_t *sp; |
| o_md_set_desc *sd; |
| stringarray node_v<>; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 (revision 1) sidename arguments |
| % * (member of union in mdrpc_drv_sidenm_2_args) |
| % */ |
| struct mdrpc_drv_sidenm_2_args_r1 { |
| md_setkey_t *cl_sk; |
| string hostname<>; |
| mdsetname_t *sp; |
| md_set_desc *sd; |
| stringarray node_v<>; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 sidename arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_drv_sidenm_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_drv_sidenm_2_args_r1 rev1; |
| default: |
| void; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 1 drvused arguments |
| % */ |
| struct mdrpc_drvused_args { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| o_mddrivename_t *drivenamep; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 (revision 1) drvused arguments |
| % * (member of union in mdrpc_drvused_2_args) |
| % */ |
| struct mdrpc_drvused_2_args_r1 { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| mddrivename_t *drivenamep; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 drvused arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_drvused_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_drvused_2_args_r1 rev1; |
| default: |
| void; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 1 and version 2 (revision 1) host arguments |
| % */ |
| struct mdrpc_host_args { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| stringarray hosts<>; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 host arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_host_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_host_args rev1; |
| default: |
| void; |
| }; |
| |
| struct mdrpc_gtimeout_res { |
| md_error_t status; |
| mhd_mhiargs_t *mhiargsp; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 1 and version 2 (revision 1) set timeout arguments |
| % */ |
| struct mdrpc_stimeout_args { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| mhd_mhiargs_t *mhiargsp; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 set timeout arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_stimeout_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_stimeout_args rev1; |
| default: |
| void; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 1 arguments |
| % */ |
| struct mdrpc_upd_dr_flags_args { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| o_md_drive_desc *drivedescs; |
| u_int new_flags; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 (revision 1) arguments |
| % * (member of union in mdrpc_upd_dr_flags_2_args) |
| % */ |
| struct mdrpc_upd_dr_flags_2_args_r1 { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| md_drive_desc *drivedescs; |
| u_int new_flags; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_upd_dr_flags_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_upd_dr_flags_2_args_r1 rev1; |
| default: |
| void; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 1 and version 2 (revision 1) arguments |
| % */ |
| struct mdrpc_upd_sr_flags_args { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| u_int new_flags; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_upd_sr_flags_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_upd_sr_flags_args rev1; |
| default: |
| void; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 (revision 1) arguments |
| % */ |
| struct mdrpc_upd_nr_flags_args { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| md_mnnode_desc *nodedescs; |
| u_int flag_action; |
| u_int flags; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_upd_nr_flags_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_upd_nr_flags_args rev1; |
| default: |
| void; |
| }; |
| |
| |
| struct mdrpc_setlock_res { |
| md_setkey_t *cl_sk; |
| md_error_t status; |
| }; |
| |
| struct mdrpc_generic_res { |
| md_error_t status; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 1 and version 2 (revision 1) set arguments |
| % */ |
| struct mdrpc_setno_args { |
| md_setkey_t *cl_sk; |
| set_t setno; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 set arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_setno_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_setno_args rev1; |
| default: |
| void; |
| }; |
| |
| struct mdrpc_null_args { |
| md_setkey_t *cl_sk; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 1 and version 2 (revision 1) arguments |
| % */ |
| struct mdrpc_sp_args { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_sp_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_sp_args rev1; |
| default: |
| void; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 (revision 1) arguments |
| % */ |
| struct mdrpc_sp_flags_args { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| int flags; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_sp_flags_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_sp_flags_args rev1; |
| default: |
| void; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 1 and version 2 (revision 1) arguments |
| % */ |
| struct mdrpc_updmeds_args { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| md_h_arr_t meds; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_updmeds_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_updmeds_args rev1; |
| default: |
| void; |
| }; |
| |
| struct mdrpc_mnsetmaster_args { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| md_node_nm_t master_nodenm; |
| int master_nodeid; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_mnsetmaster_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_mnsetmaster_args rev1; |
| default: |
| void; |
| }; |
| |
| /* |
| * Defines and structures to support rpc.mdcommd. |
| * RPC routines in rpc.metad will be used to suspend, resume |
| * and reinitialize the rpc.mdcommd running on that node. |
| * These actions are needed when the nodelist is changing. |
| */ |
| %#define COMMDCTL_SUSPEND 1 |
| %#define COMMDCTL_RESUME 2 |
| %#define COMMDCTL_REINIT 3 |
| |
| struct mdrpc_mdcommdctl_args { |
| int flag_action; |
| set_t setno; |
| md_mn_msgclass_t class; |
| int flags; |
| }; |
| |
| % |
| % |
| %/* |
| % * svm rpc version 2 arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_mdcommdctl_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_mdcommdctl_args rev1; |
| default: |
| void; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 (revision 1) nodeid arguments |
| % */ |
| struct mdrpc_nodeid_args { |
| md_setkey_t *cl_sk; |
| mdsetname_t *sp; |
| int nodeid<>; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 nodeid arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_nodeid_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_nodeid_args rev1; |
| default: |
| void; |
| }; |
| |
| % |
| %/* |
| % * Defines and structures to support suspend and resume I/O |
| % * driven by a remote node. |
| % */ |
| %#define MN_SUSP_IO 1 |
| %#define MN_RES_IO 2 |
| % |
| %/* |
| % * svm rpc version 2 (revision 1) mn_susp_res_io arguments |
| % * setno of 0 represents all disksets. |
| % */ |
| struct mdrpc_mn_susp_res_io_args { |
| md_setkey_t *susp_res_l_sk; |
| set_t susp_res_setno; |
| int susp_res_cmd; |
| }; |
| |
| % |
| %/* |
| % * svm rpc version 2 nodeid arguments |
| % * (union of all version 2 revisions) |
| % */ |
| union mdrpc_mn_susp_res_io_2_args switch (mdrpc_metad_args_rev rev) { |
| case MD_METAD_ARGS_REV_1: |
| mdrpc_mn_susp_res_io_args rev1; |
| default: |
| void; |
| }; |
| |
| #ifdef RPC_HDR |
| % |
| %/* |
| % * authorization info |
| % */ |
| const METAD_GID = 14; /* magic sysadmin group */ |
| #endif /* RPC_HDR */ |
| |
| % |
| %/* |
| % * services available |
| % */ |
| program METAD { |
| version METAD_VERSION { |
| md_error_t |
| mdrpc_nullproc(void) = 0; |
| |
| mdrpc_hostname_res |
| mdrpc_hostname(mdrpc_null_args) = 1; |
| |
| mdrpc_generic_res |
| mdrpc_addhosts(mdrpc_host_args) = 2; |
| |
| mdrpc_generic_res |
| mdrpc_delhosts(mdrpc_host_args) = 3; |
| |
| mdrpc_generic_res |
| mdrpc_createset(mdrpc_createset_args) = 4; |
| |
| mdrpc_generic_res |
| mdrpc_delset(mdrpc_sp_args) = 5; |
| |
| mdrpc_getset_res |
| mdrpc_getset(mdrpc_getset_args) = 6; |
| |
| mdrpc_bool_res |
| mdrpc_setnumbusy(mdrpc_setno_args) = 7; |
| |
| mdrpc_bool_res |
| mdrpc_setnameok(mdrpc_sp_args) = 8; |
| |
| mdrpc_bool_res |
| mdrpc_ownset(mdrpc_sp_args) = 9; |
| |
| mdrpc_generic_res |
| mdrpc_adddrvs(mdrpc_drives_args) = 10; |
| |
| mdrpc_generic_res |
| mdrpc_deldrvs(mdrpc_drives_args) = 11; |
| |
| mdrpc_generic_res |
| mdrpc_upd_dr_dbinfo(mdrpc_drives_args) = 12; |
| |
| mdrpc_devinfo_res |
| mdrpc_devinfo(mdrpc_devinfo_args) = 13; |
| |
| mdrpc_generic_res |
| mdrpc_drvused(mdrpc_drvused_args) = 14; |
| |
| mdrpc_generic_res |
| mdrpc_add_drv_sidenms(mdrpc_drv_sidenm_args) = 15; |
| |
| mdrpc_generic_res |
| mdrpc_del_drv_sidenms(mdrpc_sp_args) = 16; |
| |
| mdrpc_gtimeout_res |
| mdrpc_gtimeout(mdrpc_sp_args) = 17; |
| |
| mdrpc_generic_res |
| mdrpc_stimeout(mdrpc_stimeout_args) = 18; |
| |
| mdrpc_generic_res |
| mdrpc_upd_dr_flags(mdrpc_upd_dr_flags_args) = 19; |
| |
| mdrpc_generic_res |
| mdrpc_upd_sr_flags(mdrpc_upd_sr_flags_args) = 20; |
| |
| mdrpc_setlock_res |
| mdrpc_unlock_set(mdrpc_null_args) = 21; |
| |
| mdrpc_setlock_res |
| mdrpc_lock_set(mdrpc_null_args) = 22; |
| |
| mdrpc_generic_res |
| mdrpc_updmeds(mdrpc_updmeds_args) = 23; |
| |
| mdrpc_generic_res |
| mdrpc_flush_internal(mdrpc_null_args) = 24; |
| |
| } = 1; |
| |
| version METAD_VERSION_DEVID { |
| md_error_t |
| mdrpc_nullproc(void) = 0; |
| |
| mdrpc_hostname_res |
| mdrpc_hostname(mdrpc_null_args) = 1; |
| |
| mdrpc_generic_res |
| mdrpc_addhosts(mdrpc_host_2_args) = 2; |
| |
| mdrpc_generic_res |
| mdrpc_delhosts(mdrpc_host_2_args) = 3; |
| |
| mdrpc_generic_res |
| mdrpc_createset(mdrpc_createset_2_args) = 4; |
| |
| mdrpc_generic_res |
| mdrpc_delset(mdrpc_sp_2_args) = 5; |
| |
| mdrpc_getset_res |
| mdrpc_getset(mdrpc_getset_2_args) = 6; |
| |
| mdrpc_bool_res |
| mdrpc_setnumbusy(mdrpc_setno_2_args) = 7; |
| |
| mdrpc_bool_res |
| mdrpc_setnameok(mdrpc_sp_2_args) = 8; |
| |
| mdrpc_bool_res |
| mdrpc_ownset(mdrpc_sp_2_args) = 9; |
| |
| mdrpc_generic_res |
| mdrpc_adddrvs(mdrpc_drives_2_args) = 10; |
| |
| mdrpc_generic_res |
| mdrpc_deldrvs(mdrpc_drives_2_args) = 11; |
| |
| mdrpc_generic_res |
| mdrpc_upd_dr_dbinfo(mdrpc_drives_2_args) = 12; |
| |
| mdrpc_devinfo_2_res |
| mdrpc_devinfo(mdrpc_devinfo_2_args) = 13; |
| |
| mdrpc_generic_res |
| mdrpc_drvused(mdrpc_drvused_2_args) = 14; |
| |
| mdrpc_generic_res |
| mdrpc_add_drv_sidenms(mdrpc_drv_sidenm_2_args) = 15; |
| |
| mdrpc_generic_res |
| mdrpc_del_drv_sidenms(mdrpc_sp_2_args) = 16; |
| |
| mdrpc_gtimeout_res |
| mdrpc_gtimeout(mdrpc_sp_2_args) = 17; |
| |
| mdrpc_generic_res |
| mdrpc_stimeout(mdrpc_stimeout_2_args) = 18; |
| |
| mdrpc_generic_res |
| mdrpc_upd_dr_flags(mdrpc_upd_dr_flags_2_args) = 19; |
| |
| mdrpc_generic_res |
| mdrpc_upd_sr_flags(mdrpc_upd_sr_flags_2_args) = 20; |
| |
| mdrpc_setlock_res |
| mdrpc_unlock_set(mdrpc_null_args) = 21; |
| |
| mdrpc_setlock_res |
| mdrpc_lock_set(mdrpc_null_args) = 22; |
| |
| mdrpc_generic_res |
| mdrpc_updmeds(mdrpc_updmeds_2_args) = 23; |
| |
| mdrpc_generic_res |
| mdrpc_flush_internal(mdrpc_null_args) = 24; |
| |
| mdrpc_devid_res |
| mdrpc_devid(mdrpc_devid_2_args) = 25; |
| |
| mdrpc_devinfo_2_res |
| mdrpc_devinfo_by_devid(mdrpc_devidstr_args) = 26; |
| |
| mdrpc_generic_res |
| mdrpc_resnarf_set(mdrpc_setno_2_args) = 27; |
| |
| mdrpc_generic_res |
| mdrpc_mncreateset(mdrpc_mncreateset_2_args) = 28; |
| |
| mdrpc_mngetset_res |
| mdrpc_mngetset(mdrpc_getset_2_args) = 29; |
| |
| mdrpc_generic_res |
| mdrpc_mnsetmaster(mdrpc_mnsetmaster_2_args) = 30; |
| |
| mdrpc_generic_res |
| mdrpc_joinset(mdrpc_sp_flags_2_args) = 31; |
| |
| mdrpc_generic_res |
| mdrpc_withdrawset(mdrpc_sp_2_args) = 32; |
| |
| mdrpc_generic_res |
| mdrpc_upd_nr_flags(mdrpc_upd_nr_flags_2_args) = 33; |
| |
| mdrpc_bool_res |
| mdrpc_mn_is_stale(mdrpc_setno_2_args) = 34; |
| |
| mdrpc_generic_res |
| mdrpc_mdcommdctl(mdrpc_mdcommdctl_2_args) = 35; |
| |
| mdrpc_generic_res |
| mdrpc_clr_mnsetlock(mdrpc_null_args) = 36; |
| |
| mdrpc_getdrivedesc_res |
| mdrpc_getdrivedesc(mdrpc_sp_2_args) = 37; |
| |
| mdrpc_generic_res |
| mdrpc_upd_dr_reconfig(mdrpc_upd_dr_flags_2_args) = 38; |
| |
| mdrpc_generic_res |
| mdrpc_reset_mirror_owner(mdrpc_nodeid_2_args) = 39; |
| |
| mdrpc_generic_res |
| mdrpc_mn_susp_res_io(mdrpc_mn_susp_res_io_2_args) = 40; |
| |
| mdrpc_generic_res |
| mdrpc_mn_mirror_resync_all(mdrpc_setno_2_args) = 41; |
| |
| mdrpc_devinfo_2_res |
| mdrpc_devinfo_by_devid_name(mdrpc_devid_name_2_args) = 42; |
| |
| mdrpc_generic_res |
| mdrpc_mn_sp_update_abr(mdrpc_setno_2_args) = 43; |
| |
| mdrpc_generic_res |
| mdrpc_imp_adddrvs(mdrpc_drives_2_args) = 44; |
| |
| } = 2; |
| } = 100229; |
| |
| #ifdef RPC_HDR |
| % |
| %extern void short_circuit_getset(mdrpc_getset_args *args, |
| % mdrpc_getset_res *res); |
| %extern void short_circuit_mngetset(mdrpc_getset_args *args, |
| % mdrpc_mngetset_res *res); |
| #endif /* RPC_HDR */ |