loader: use snprintf() with variable length error messages
[unleashed.git] / usr / src / head / metad.x
blob6aa42b637b78f87c684ecb52cecce877dd24d65d
1 %/*
2 % * Copyright 2006 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 % */
26 %#pragma ident  "%Z%%M% %I%     %E% SMI"
29 %#include <mdiox.h>
30 %#include <meta_basic.h>
31 %#include <sys/lvm/mdmn_commd.h>
33 #ifdef RPC_SVC
35 %int md_in_daemon = 1;
36 %#include <signal.h>
37 #endif /* RPC_SVC */
39 #ifdef RPC_CLNT
40 %int _md_in_daemon = 0;
41 %#pragma weak md_in_daemon = _md_in_daemon
42 #endif /* RPC_CLNT */
44 #ifdef RPC_HDR
46 %extern int     md_in_daemon;
47 %/*
48 % * There are too many external factors that affect the timing of the
49 % * operations, so we set the timeout to a very large value, in this
50 % * case 1 day, which should handle HW timeouts, large configurations,
51 % * and other potential delays.
52 % */
53 %#define        CL_LONG_TMO     86400L
54 #endif /* RPC_HDR */
56 #ifdef  RPC_XDR
58 %/* Start - Avoid duplicate definitions, but get the xdr calls right */
59 %#if 0
60 #include "../uts/common/sys/lvm/meta_arr.x"
61 %#endif /* 0 */
62 %/* End   - Avoid duplicate definitions, but get the xdr calls right */
64 #endif  /* RPC_XDR */
67 %/*
68 % * Structure Revisions
69 % */
70 enum mdrpc_metad_args_rev {
71         MD_METAD_ARGS_REV_1 = 1                 /* Revision 1 */
75 %/*
76 % *     device id
77 % */
78 struct mdrpc_devid_res {
79         string          enc_devid<>;            /* encoded device id */
80         md_error_t      status;                 /* status of RPC call */
84 %/*
85 % * svm rpc version 2 device id arguments
86 % * (member union in mdrpc_devid_2_args)
87 % */
88 struct mdrpc_devid_args {
89         md_setkey_t     *cl_sk;
90         mdsetname_t     *sp;
91         mddrivename_t   *drivenamep;
95 %/*
96 % * svm rpc version 2 device id arguments
97 % * (union of all version 2 revisions)
98 % */
99 union mdrpc_devid_2_args switch (mdrpc_metad_args_rev rev) {
100         case MD_METAD_ARGS_REV_1:
101             mdrpc_devid_args    rev1;
102         default:
103             void;
108 % * For getting the devinfo based upon devid
109 % */
110 struct mdrpc_devidstr_args {
111         mdsetname_t     *sp;
112         string          enc_devid<>;            /* encoded device id */
113         md_error_t      status;                 /* status of RPC call */
118 % * For getting the devinfo based upon devid/devname
119 % */
120 struct mdrpc_devid_name_args {
121         mdsetname_t     *sp;
122         string          orig_devname<>;         /* devname on orig node */
123         string          enc_devid<>;            /* encoded device id */
128 % * svm rpc version 2 devinfo based upon devid/devname
129 % * (union of all version 2 revisions)
130 % */
131 union mdrpc_devid_name_2_args switch (mdrpc_metad_args_rev rev) {
132         case MD_METAD_ARGS_REV_1:
133             mdrpc_devid_name_args       rev1;
134         default:
135             void;
140 % * version 1 device info
141 % */
142 struct mdrpc_devinfo_res {
143         dev_t           dev;                    /* major.minor */
144         int             vtime;                  /* vtoc timestamp */
145         md_error_t      status;                 /* status of RPC call */
150 % * version 2 device info. dev_t is always 64-bit
151 % */
152 struct mdrpc_devinfo_2_res {
153         md_dev64_t      dev;                    /* major.minor */
154         int             vtime;                  /* vtoc timestamp */
155         string          enc_devid<>;            /* encoded device id */
156         string          devname<>;              /* name of the device */
157         string          drivername<>;           /* name of the driver */
158         md_error_t      status;                 /* status of RPC call */
163 % * svm rpc version 1 device info arguments
164 % */
165 struct mdrpc_devinfo_args {
166         md_setkey_t     *cl_sk;
167         mdsetname_t     *sp;
168         o_mddrivename_t *drivenamep;
173 % * svm rpc version 2 (revision 1) device info arguments
174 % * (member of union in mdrpc_devinfo_2_args)
175 % */
176 struct mdrpc_devinfo_2_args_r1 {
177         md_setkey_t     *cl_sk;
178         mdsetname_t     *sp;
179         mddrivename_t   *drivenamep;
180         string          enc_devid<>;    /* encoded device id */
185 % * svm rpc version 2 device info arguments
186 % * (union of all version 2 revisions)
187 % */
188 union mdrpc_devinfo_2_args switch (mdrpc_metad_args_rev rev) {
189     case MD_METAD_ARGS_REV_1:
190         mdrpc_devinfo_2_args_r1 rev1;
191     default:
192         void;
195 struct mdrpc_hostname_res {
196         string          hostname<>;
197         md_error_t      status;
202 % * svm rpc version 1 and version 2 (revision 1) getset arguments
203 % */
204 struct mdrpc_getset_args {
205         string          setname<>;
206         set_t           setno;
211 % * svm rpc version 2 getset arguments
212 % * (union of all version 2 revisions)
213 % */
214 union mdrpc_getset_2_args switch (mdrpc_metad_args_rev rev) {
215     case MD_METAD_ARGS_REV_1:
216         mdrpc_getset_args       rev1;
217     default:
218         void;
222 %/* NOTE: if you add to this struct, then fix the clnt_getset() */
223 %/*       to prevent memory leaks */
224 struct mdrpc_getset_res {
225         md_set_record   *sr;
226         md_error_t      status;
230 %/* NOTE: if you add to this struct, then fix the clnt_mngetset() */
231 %/*       to prevent memory leaks */
232 struct mdrpc_mngetset_res {
233         md_mnset_record *mnsr;
234         md_error_t      status;
238 %/* NOTE: if you add to this struct, then fix the clnt_getdrivedesc() */
239 %/*       to prevent memory leaks */
240 struct mdrpc_getdrivedesc_res {
241         md_drive_desc   *dd;
242         md_error_t      status;
245 #ifdef RPC_HDR
246 %#ifndef STRINGARRAY
247 #endif
248 typedef string stringarray<>;
249 #ifdef RPC_HDR
250 %#define STRINGARRAY
251 %#endif
252 #endif
256 % * svm rpc version 1 and version 2 (revision 1) createset arguments
257 % */
258 struct mdrpc_createset_args {
259         md_setkey_t             *cl_sk;
260         mdsetname_t             *sp;
261         md_node_nm_arr_t        nodes;
262         md_timeval32_t          timestamp;
263         u_long                  genid;
268 % * svm rpc version 2 createset arguments
269 % * (union of all version 2 revisions)
270 % */
271 union mdrpc_createset_2_args switch (mdrpc_metad_args_rev rev) {
272     case MD_METAD_ARGS_REV_1:
273         mdrpc_createset_args    rev1;
274     default:
275         void;
278 struct mdrpc_mncreateset_args {
279         md_setkey_t             *cl_sk;
280         mdsetname_t             *sp;
281         md_mnnode_desc          *nodelist;
282         md_timeval32_t          timestamp;
283         u_long                  genid;
284         md_node_nm_t            master_nodenm;
285         int                     master_nodeid;
290 % * svm rpc version 2 mncreateset arguments
291 % * (union of all version 2 revisions)
292 % */
293 union mdrpc_mncreateset_2_args switch (mdrpc_metad_args_rev rev) {
294     case MD_METAD_ARGS_REV_1:
295         mdrpc_mncreateset_args  rev1;
296     default:
297         void;
301 struct mdrpc_bool_res {
302         int             value;
303         md_error_t      status;
308 % * svm rpc version 1 drive arguments
309 % */
310 struct mdrpc_drives_args {
311         md_setkey_t     *cl_sk;
312         mdsetname_t     *sp;
313         o_md_drive_desc *drivedescs;
314         md_timeval32_t  timestamp;
315         u_long          genid;
320 % * svm rpc version 2 (revision 1) drive arguments
321 % * (member of union in mrpc_drives_2_args)
322 % */
323 struct mdrpc_drives_2_args_r1 {
324         md_setkey_t     *cl_sk;
325         mdsetname_t     *sp;
326         md_drive_desc   *drivedescs;
327         md_timeval32_t  timestamp;
328         u_long          genid;
333 % * svm rpc version 2 drive arguments
334 % * (union of all version 2 revisions)
335 % */
336 union mdrpc_drives_2_args switch (mdrpc_metad_args_rev rev) {
337     case MD_METAD_ARGS_REV_1:
338         mdrpc_drives_2_args_r1  rev1;
339     default:
340         void;
345 % * svm rpc version 1 sidename arguments
346 % */
347 struct mdrpc_drv_sidenm_args {
348         md_setkey_t     *cl_sk;
349         string          hostname<>;
350         mdsetname_t     *sp;
351         o_md_set_desc   *sd;
352         stringarray     node_v<>;
357 % * svm rpc version 2 (revision 1) sidename arguments
358 % * (member of union in mdrpc_drv_sidenm_2_args)
359 % */
360 struct mdrpc_drv_sidenm_2_args_r1 {
361         md_setkey_t     *cl_sk;
362         string          hostname<>;
363         mdsetname_t     *sp;
364         md_set_desc     *sd;
365         stringarray     node_v<>;
370 % * svm rpc version 2 sidename arguments
371 % * (union of all version 2 revisions)
372 % */
373 union mdrpc_drv_sidenm_2_args switch (mdrpc_metad_args_rev rev) {
374     case MD_METAD_ARGS_REV_1:
375         mdrpc_drv_sidenm_2_args_r1      rev1;
376     default:
377         void;
382 % * svm rpc version 1 drvused arguments
383 % */
384 struct mdrpc_drvused_args {
385         md_setkey_t     *cl_sk;
386         mdsetname_t     *sp;
387         o_mddrivename_t *drivenamep;
392 % * svm rpc version 2 (revision 1) drvused arguments
393 % * (member of union in mdrpc_drvused_2_args)
394 % */
395 struct mdrpc_drvused_2_args_r1 {
396         md_setkey_t     *cl_sk;
397         mdsetname_t     *sp;
398         mddrivename_t   *drivenamep;
403 % * svm rpc version 2 drvused arguments
404 % * (union of all version 2 revisions)
405 % */
406 union mdrpc_drvused_2_args switch (mdrpc_metad_args_rev rev) {
407     case MD_METAD_ARGS_REV_1:
408         mdrpc_drvused_2_args_r1 rev1;
409     default:
410         void;
415 % * svm rpc version 1 and version 2 (revision 1) host arguments
416 % */
417 struct mdrpc_host_args {
418         md_setkey_t     *cl_sk;
419         mdsetname_t     *sp;
420         stringarray     hosts<>;
425 % * svm rpc version 2 host arguments
426 % * (union of all version 2 revisions)
427 % */
428 union mdrpc_host_2_args switch (mdrpc_metad_args_rev rev) {
429     case MD_METAD_ARGS_REV_1:
430         mdrpc_host_args rev1;
431     default:
432         void;
435 struct mdrpc_gtimeout_res {
436         md_error_t      status;
437         mhd_mhiargs_t   *mhiargsp;
442 % * svm rpc version 1 and version 2 (revision 1) set timeout arguments
443 % */
444 struct mdrpc_stimeout_args {
445         md_setkey_t     *cl_sk;
446         mdsetname_t     *sp;
447         mhd_mhiargs_t   *mhiargsp;
452 % * svm rpc version 2 set timeout arguments
453 % * (union of all version 2 revisions)
454 % */
455 union mdrpc_stimeout_2_args switch (mdrpc_metad_args_rev rev) {
456     case MD_METAD_ARGS_REV_1:
457         mdrpc_stimeout_args     rev1;
458     default:
459         void;
464 % * svm rpc version 1 arguments
465 % */
466 struct mdrpc_upd_dr_flags_args {
467         md_setkey_t     *cl_sk;
468         mdsetname_t     *sp;
469         o_md_drive_desc *drivedescs;
470         u_int           new_flags;
475 % * svm rpc version 2 (revision 1) arguments
476 % * (member of union in mdrpc_upd_dr_flags_2_args)
477 % */
478 struct mdrpc_upd_dr_flags_2_args_r1 {
479         md_setkey_t     *cl_sk;
480         mdsetname_t     *sp;
481         md_drive_desc   *drivedescs;
482         u_int           new_flags;
487 % * svm rpc version 2 arguments
488 % * (union of all version 2 revisions)
489 % */
490 union mdrpc_upd_dr_flags_2_args switch (mdrpc_metad_args_rev rev) {
491     case MD_METAD_ARGS_REV_1:
492         mdrpc_upd_dr_flags_2_args_r1    rev1;
493     default:
494         void;
499 % * svm rpc version 1 and version 2 (revision 1) arguments
500 % */
501 struct mdrpc_upd_sr_flags_args {
502         md_setkey_t     *cl_sk;
503         mdsetname_t     *sp;
504         u_int           new_flags;
509 % * svm rpc version 2 arguments
510 % * (union of all version 2 revisions)
511 % */
512 union mdrpc_upd_sr_flags_2_args switch (mdrpc_metad_args_rev rev) {
513     case MD_METAD_ARGS_REV_1:
514         mdrpc_upd_sr_flags_args rev1;
515     default:
516         void;
521 % * svm rpc version 2 (revision 1) arguments
522 % */
523 struct mdrpc_upd_nr_flags_args {
524         md_setkey_t     *cl_sk;
525         mdsetname_t     *sp;
526         md_mnnode_desc  *nodedescs;
527         u_int           flag_action;
528         u_int           flags;
533 % * svm rpc version 2 arguments
534 % * (union of all version 2 revisions)
535 % */
536 union mdrpc_upd_nr_flags_2_args switch (mdrpc_metad_args_rev rev) {
537     case MD_METAD_ARGS_REV_1:
538         mdrpc_upd_nr_flags_args rev1;
539     default:
540         void;
544 struct mdrpc_setlock_res {
545         md_setkey_t     *cl_sk;
546         md_error_t      status;
549 struct mdrpc_generic_res {
550         md_error_t      status;
555 % * svm rpc version 1 and version 2 (revision 1) set arguments
556 % */
557 struct mdrpc_setno_args {
558         md_setkey_t     *cl_sk;
559         set_t           setno;
564 % * svm rpc version 2 set arguments
565 % * (union of all version 2 revisions)
566 % */
567 union mdrpc_setno_2_args switch (mdrpc_metad_args_rev rev) {
568     case MD_METAD_ARGS_REV_1:
569         mdrpc_setno_args        rev1;
570     default:
571         void;
574 struct mdrpc_null_args {
575         md_setkey_t     *cl_sk;
580 % * svm rpc version 1 and version 2 (revision 1) arguments
581 % */
582 struct mdrpc_sp_args {
583         md_setkey_t     *cl_sk;
584         mdsetname_t     *sp;
589 % * svm rpc version 2 arguments
590 % * (union of all version 2 revisions)
591 % */
592 union mdrpc_sp_2_args switch (mdrpc_metad_args_rev rev) {
593     case MD_METAD_ARGS_REV_1:
594         mdrpc_sp_args   rev1;
595     default:
596         void;
601 % * svm rpc version 2 (revision 1) arguments
602 % */
603 struct mdrpc_sp_flags_args {
604         md_setkey_t     *cl_sk;
605         mdsetname_t     *sp;
606         int             flags;
611 % * svm rpc version 2 arguments
612 % * (union of all version 2 revisions)
613 % */
614 union mdrpc_sp_flags_2_args switch (mdrpc_metad_args_rev rev) {
615     case MD_METAD_ARGS_REV_1:
616         mdrpc_sp_flags_args     rev1;
617     default:
618         void;
623 % * svm rpc version 1 and version 2 (revision 1) arguments
624 % */
625 struct mdrpc_updmeds_args {
626         md_setkey_t             *cl_sk;
627         mdsetname_t             *sp;
628         md_h_arr_t              meds;
633 % * svm rpc version 2 arguments
634 % * (union of all version 2 revisions)
635 % */
636 union mdrpc_updmeds_2_args switch (mdrpc_metad_args_rev rev) {
637     case MD_METAD_ARGS_REV_1:
638         mdrpc_updmeds_args      rev1;
639     default:
640         void;
643 struct mdrpc_mnsetmaster_args {
644         md_setkey_t     *cl_sk;
645         mdsetname_t     *sp;
646         md_node_nm_t    master_nodenm;
647         int             master_nodeid;
652 % * svm rpc version 2 arguments
653 % * (union of all version 2 revisions)
654 % */
655 union mdrpc_mnsetmaster_2_args switch (mdrpc_metad_args_rev rev) {
656     case MD_METAD_ARGS_REV_1:
657         mdrpc_mnsetmaster_args  rev1;
658     default:
659         void;
663  * Defines and structures to support rpc.mdcommd.
664  * RPC routines in rpc.metad will be used to suspend, resume
665  * and reinitialize the rpc.mdcommd running on that node.
666  * These actions are needed when the nodelist is changing.
667  */
668 %#define        COMMDCTL_SUSPEND        1
669 %#define        COMMDCTL_RESUME         2
670 %#define        COMMDCTL_REINIT         3
672 struct mdrpc_mdcommdctl_args {
673         int                     flag_action;
674         set_t                   setno;
675         md_mn_msgclass_t        class;
676         int                     flags;
682 % * svm rpc version 2 arguments
683 % * (union of all version 2 revisions)
684 % */
685 union mdrpc_mdcommdctl_2_args switch (mdrpc_metad_args_rev rev) {
686     case MD_METAD_ARGS_REV_1:
687         mdrpc_mdcommdctl_args  rev1;
688     default:
689         void;
694 % * svm rpc version 2 (revision 1) nodeid arguments
695 % */
696 struct mdrpc_nodeid_args {
697         md_setkey_t     *cl_sk;
698         mdsetname_t     *sp;
699         int             nodeid<>;
704 % * svm rpc version 2 nodeid arguments
705 % * (union of all version 2 revisions)
706 % */
707 union mdrpc_nodeid_2_args switch (mdrpc_metad_args_rev rev) {
708     case MD_METAD_ARGS_REV_1:
709         mdrpc_nodeid_args       rev1;
710     default:
711         void;
716 % * Defines and structures to support suspend and resume I/O
717 % * driven by a remote node.
718 % */
719 %#define        MN_SUSP_IO      1
720 %#define        MN_RES_IO       2
723 % * svm rpc version 2 (revision 1) mn_susp_res_io arguments
724 % * setno of 0 represents all disksets.
725 % */
726 struct mdrpc_mn_susp_res_io_args {
727         md_setkey_t     *susp_res_l_sk;
728         set_t           susp_res_setno;
729         int             susp_res_cmd;
734 % * svm rpc version 2 nodeid arguments
735 % * (union of all version 2 revisions)
736 % */
737 union mdrpc_mn_susp_res_io_2_args switch (mdrpc_metad_args_rev rev) {
738     case MD_METAD_ARGS_REV_1:
739         mdrpc_mn_susp_res_io_args       rev1;
740     default:
741         void;
744 #ifdef  RPC_HDR
747 % *     authorization info
748 % */
749 const   METAD_GID = 14;                         /* magic sysadmin group */
750 #endif  /* RPC_HDR */
754 % *     services available
755 % */
756 program METAD {
757         version METAD_VERSION {
758                 md_error_t
759                 mdrpc_nullproc(void)                            = 0;
761                 mdrpc_hostname_res
762                 mdrpc_hostname(mdrpc_null_args)                 = 1;
764                 mdrpc_generic_res
765                 mdrpc_addhosts(mdrpc_host_args)                 = 2;
767                 mdrpc_generic_res
768                 mdrpc_delhosts(mdrpc_host_args)                 = 3;
770                 mdrpc_generic_res
771                 mdrpc_createset(mdrpc_createset_args)           = 4;
773                 mdrpc_generic_res
774                 mdrpc_delset(mdrpc_sp_args)                     = 5;
776                 mdrpc_getset_res
777                 mdrpc_getset(mdrpc_getset_args)                 = 6;
779                 mdrpc_bool_res
780                 mdrpc_setnumbusy(mdrpc_setno_args)              = 7;
782                 mdrpc_bool_res
783                 mdrpc_setnameok(mdrpc_sp_args)                  = 8;
785                 mdrpc_bool_res
786                 mdrpc_ownset(mdrpc_sp_args)                     = 9;
788                 mdrpc_generic_res
789                 mdrpc_adddrvs(mdrpc_drives_args)                = 10;
791                 mdrpc_generic_res
792                 mdrpc_deldrvs(mdrpc_drives_args)                = 11;
794                 mdrpc_generic_res
795                 mdrpc_upd_dr_dbinfo(mdrpc_drives_args)          = 12;
797                 mdrpc_devinfo_res
798                 mdrpc_devinfo(mdrpc_devinfo_args)               = 13;
800                 mdrpc_generic_res
801                 mdrpc_drvused(mdrpc_drvused_args)               = 14;
803                 mdrpc_generic_res
804                 mdrpc_add_drv_sidenms(mdrpc_drv_sidenm_args)    = 15;
806                 mdrpc_generic_res
807                 mdrpc_del_drv_sidenms(mdrpc_sp_args)            = 16;
809                 mdrpc_gtimeout_res
810                 mdrpc_gtimeout(mdrpc_sp_args)                   = 17;
812                 mdrpc_generic_res
813                 mdrpc_stimeout(mdrpc_stimeout_args)             = 18;
815                 mdrpc_generic_res
816                 mdrpc_upd_dr_flags(mdrpc_upd_dr_flags_args)     = 19;
818                 mdrpc_generic_res
819                 mdrpc_upd_sr_flags(mdrpc_upd_sr_flags_args)     = 20;
821                 mdrpc_setlock_res
822                 mdrpc_unlock_set(mdrpc_null_args)               = 21;
824                 mdrpc_setlock_res
825                 mdrpc_lock_set(mdrpc_null_args)                 = 22;
827                 mdrpc_generic_res
828                 mdrpc_updmeds(mdrpc_updmeds_args)               = 23;
830                 mdrpc_generic_res
831                 mdrpc_flush_internal(mdrpc_null_args)           = 24;
833         } = 1;
835         version METAD_VERSION_DEVID {
836                 md_error_t
837                 mdrpc_nullproc(void)                            = 0;
839                 mdrpc_hostname_res
840                 mdrpc_hostname(mdrpc_null_args)                 = 1;
842                 mdrpc_generic_res
843                 mdrpc_addhosts(mdrpc_host_2_args)               = 2;
845                 mdrpc_generic_res
846                 mdrpc_delhosts(mdrpc_host_2_args)               = 3;
848                 mdrpc_generic_res
849                 mdrpc_createset(mdrpc_createset_2_args)         = 4;
851                 mdrpc_generic_res
852                 mdrpc_delset(mdrpc_sp_2_args)                   = 5;
854                 mdrpc_getset_res
855                 mdrpc_getset(mdrpc_getset_2_args)               = 6;
857                 mdrpc_bool_res
858                 mdrpc_setnumbusy(mdrpc_setno_2_args)            = 7;
860                 mdrpc_bool_res
861                 mdrpc_setnameok(mdrpc_sp_2_args)                = 8;
863                 mdrpc_bool_res
864                 mdrpc_ownset(mdrpc_sp_2_args)                   = 9;
866                 mdrpc_generic_res
867                 mdrpc_adddrvs(mdrpc_drives_2_args)              = 10;
869                 mdrpc_generic_res
870                 mdrpc_deldrvs(mdrpc_drives_2_args)              = 11;
872                 mdrpc_generic_res
873                 mdrpc_upd_dr_dbinfo(mdrpc_drives_2_args)        = 12;
875                 mdrpc_devinfo_2_res
876                 mdrpc_devinfo(mdrpc_devinfo_2_args)             = 13;
878                 mdrpc_generic_res
879                 mdrpc_drvused(mdrpc_drvused_2_args)             = 14;
881                 mdrpc_generic_res
882                 mdrpc_add_drv_sidenms(mdrpc_drv_sidenm_2_args)  = 15;
884                 mdrpc_generic_res
885                 mdrpc_del_drv_sidenms(mdrpc_sp_2_args)          = 16;
887                 mdrpc_gtimeout_res
888                 mdrpc_gtimeout(mdrpc_sp_2_args)                 = 17;
890                 mdrpc_generic_res
891                 mdrpc_stimeout(mdrpc_stimeout_2_args)           = 18;
893                 mdrpc_generic_res
894                 mdrpc_upd_dr_flags(mdrpc_upd_dr_flags_2_args)   = 19;
896                 mdrpc_generic_res
897                 mdrpc_upd_sr_flags(mdrpc_upd_sr_flags_2_args)   = 20;
899                 mdrpc_setlock_res
900                 mdrpc_unlock_set(mdrpc_null_args)               = 21;
902                 mdrpc_setlock_res
903                 mdrpc_lock_set(mdrpc_null_args)                 = 22;
905                 mdrpc_generic_res
906                 mdrpc_updmeds(mdrpc_updmeds_2_args)             = 23;
908                 mdrpc_generic_res
909                 mdrpc_flush_internal(mdrpc_null_args)           = 24;
911                 mdrpc_devid_res
912                 mdrpc_devid(mdrpc_devid_2_args)                 = 25;
914                 mdrpc_devinfo_2_res
915                 mdrpc_devinfo_by_devid(mdrpc_devidstr_args)     = 26;
917                 mdrpc_generic_res
918                 mdrpc_resnarf_set(mdrpc_setno_2_args)           = 27;
920                 mdrpc_generic_res
921                 mdrpc_mncreateset(mdrpc_mncreateset_2_args)     = 28;
923                 mdrpc_mngetset_res
924                 mdrpc_mngetset(mdrpc_getset_2_args)             = 29;
926                 mdrpc_generic_res
927                 mdrpc_mnsetmaster(mdrpc_mnsetmaster_2_args)     = 30;
929                 mdrpc_generic_res
930                 mdrpc_joinset(mdrpc_sp_flags_2_args)            = 31;
932                 mdrpc_generic_res
933                 mdrpc_withdrawset(mdrpc_sp_2_args)              = 32;
935                 mdrpc_generic_res
936                 mdrpc_upd_nr_flags(mdrpc_upd_nr_flags_2_args)   = 33;
938                 mdrpc_bool_res
939                 mdrpc_mn_is_stale(mdrpc_setno_2_args)           = 34;
941                 mdrpc_generic_res
942                 mdrpc_mdcommdctl(mdrpc_mdcommdctl_2_args)       = 35;
944                 mdrpc_generic_res
945                 mdrpc_clr_mnsetlock(mdrpc_null_args)            = 36;
947                 mdrpc_getdrivedesc_res
948                 mdrpc_getdrivedesc(mdrpc_sp_2_args)             = 37;
950                 mdrpc_generic_res
951                 mdrpc_upd_dr_reconfig(mdrpc_upd_dr_flags_2_args) = 38;
953                 mdrpc_generic_res
954                 mdrpc_reset_mirror_owner(mdrpc_nodeid_2_args)    = 39;
956                 mdrpc_generic_res
957                 mdrpc_mn_susp_res_io(mdrpc_mn_susp_res_io_2_args) = 40;
959                 mdrpc_generic_res
960                 mdrpc_mn_mirror_resync_all(mdrpc_setno_2_args) = 41;
962                 mdrpc_devinfo_2_res
963                 mdrpc_devinfo_by_devid_name(mdrpc_devid_name_2_args) = 42;
965                 mdrpc_generic_res
966                 mdrpc_mn_sp_update_abr(mdrpc_setno_2_args) = 43;
968                 mdrpc_generic_res
969                 mdrpc_imp_adddrvs(mdrpc_drives_2_args) = 44;
971         } = 2;
972 } = 100229;
974 #ifdef RPC_HDR
976 %extern void    short_circuit_getset(mdrpc_getset_args *args,
977 %                   mdrpc_getset_res *res);
978 %extern void    short_circuit_mngetset(mdrpc_getset_args *args,
979 %                   mdrpc_mngetset_res *res);
980 #endif  /* RPC_HDR */