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 % */ 25 % 26 %#pragma ident "%Z%%M% %I% %E% SMI" 27 % 28 29 %#include <mdiox.h> 30 %#include <meta_basic.h> 31 %#include <sys/lvm/mdmn_commd.h> 32 33 #ifdef RPC_SVC 34 % 35 %int md_in_daemon = 1; 36 %#include <signal.h> 37 #endif /* RPC_SVC */ 38 39 #ifdef RPC_CLNT 40 %int _md_in_daemon = 0; 41 %#pragma weak md_in_daemon = _md_in_daemon 42 #endif /* RPC_CLNT */ 43 44 #ifdef RPC_HDR 45 % 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 */ 55 56 #ifdef RPC_XDR 57 % 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 */ 63 % 64 #endif /* RPC_XDR */ 65 66 % 67 %/* 68 % * Structure Revisions 69 % */ 70 enum mdrpc_metad_args_rev { 71 MD_METAD_ARGS_REV_1 = 1 /* Revision 1 */ 72 }; 73 74 % 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 */ 81 }; 82 83 % 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; 92 }; 93 94 % 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; 104 }; 105 106 % 107 %/* 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 */ 114 }; 115 116 % 117 %/* 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 */ 124 }; 125 126 % 127 %/* 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; 136 }; 137 138 % 139 %/* 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 */ 146 }; 147 148 % 149 %/* 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 */ 159 }; 160 161 % 162 %/* 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; 169 }; 170 171 % 172 %/* 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 */ 181 }; 182 183 % 184 %/* 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; 193 }; 194 195 struct mdrpc_hostname_res { 196 string hostname<>; 197 md_error_t status; 198 }; 199 200 % 201 %/* 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; 207 }; 208 209 % 210 %/* 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; 219 }; 220 221 % 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; 227 }; 228 229 % 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; 235 }; 236 237 % 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; 243 }; 244 245 #ifdef RPC_HDR 246 %#ifndef STRINGARRAY 247 #endif 248 typedef string stringarray<>; 249 #ifdef RPC_HDR 250 %#define STRINGARRAY 251 %#endif 252 #endif 253 254 % 255 %/* 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; 264 }; 265 266 % 267 %/* 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; 276 }; 277 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; 286 }; 287 288 % 289 %/* 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; 298 }; 299 300 301 struct mdrpc_bool_res { 302 int value; 303 md_error_t status; 304 }; 305 306 % 307 %/* 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; 316 }; 317 318 % 319 %/* 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; 329 }; 330 331 % 332 %/* 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; 341 }; 342 343 % 344 %/* 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<>; 353 }; 354 355 % 356 %/* 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<>; 366 }; 367 368 % 369 %/* 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; 378 }; 379 380 % 381 %/* 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; 388 }; 389 390 % 391 %/* 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; 399 }; 400 401 % 402 %/* 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; 411 }; 412 413 % 414 %/* 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<>; 421 }; 422 423 % 424 %/* 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; 433 }; 434 435 struct mdrpc_gtimeout_res { 436 md_error_t status; 437 mhd_mhiargs_t *mhiargsp; 438 }; 439 440 % 441 %/* 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; 448 }; 449 450 % 451 %/* 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; 460 }; 461 462 % 463 %/* 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; 471 }; 472 473 % 474 %/* 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; 483 }; 484 485 % 486 %/* 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; 495 }; 496 497 % 498 %/* 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; 505 }; 506 507 % 508 %/* 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; 517 }; 518 519 % 520 %/* 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; 529 }; 530 531 % 532 %/* 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; 541 }; 542 543 544 struct mdrpc_setlock_res { 545 md_setkey_t *cl_sk; 546 md_error_t status; 547 }; 548 549 struct mdrpc_generic_res { 550 md_error_t status; 551 }; 552 553 % 554 %/* 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; 560 }; 561 562 % 563 %/* 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; 572 }; 573 574 struct mdrpc_null_args { 575 md_setkey_t *cl_sk; 576 }; 577 578 % 579 %/* 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; 585 }; 586 587 % 588 %/* 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; 597 }; 598 599 % 600 %/* 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; 607 }; 608 609 % 610 %/* 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; 619 }; 620 621 % 622 %/* 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; 629 }; 630 631 % 632 %/* 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; 641 }; 642 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; 648 }; 649 650 % 651 %/* 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; 660 }; 661 662 /* 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 671 672 struct mdrpc_mdcommdctl_args { 673 int flag_action; 674 set_t setno; 675 md_mn_msgclass_t class; 676 int flags; 677 }; 678 679 % 680 % 681 %/* 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; 690 }; 691 692 % 693 %/* 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<>; 700 }; 701 702 % 703 %/* 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; 712 }; 713 714 % 715 %/* 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 721 % 722 %/* 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; 730 }; 731 732 % 733 %/* 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; 742 }; 743 744 #ifdef RPC_HDR 745 % 746 %/* 747 % * authorization info 748 % */ 749 const METAD_GID = 14; /* magic sysadmin group */ 750 #endif /* RPC_HDR */ 751 752 % 753 %/* 754 % * services available 755 % */ 756 program METAD { 757 version METAD_VERSION { 758 md_error_t 759 mdrpc_nullproc(void) = 0; 760 761 mdrpc_hostname_res 762 mdrpc_hostname(mdrpc_null_args) = 1; 763 764 mdrpc_generic_res 765 mdrpc_addhosts(mdrpc_host_args) = 2; 766 767 mdrpc_generic_res 768 mdrpc_delhosts(mdrpc_host_args) = 3; 769 770 mdrpc_generic_res 771 mdrpc_createset(mdrpc_createset_args) = 4; 772 773 mdrpc_generic_res 774 mdrpc_delset(mdrpc_sp_args) = 5; 775 776 mdrpc_getset_res 777 mdrpc_getset(mdrpc_getset_args) = 6; 778 779 mdrpc_bool_res 780 mdrpc_setnumbusy(mdrpc_setno_args) = 7; 781 782 mdrpc_bool_res 783 mdrpc_setnameok(mdrpc_sp_args) = 8; 784 785 mdrpc_bool_res 786 mdrpc_ownset(mdrpc_sp_args) = 9; 787 788 mdrpc_generic_res 789 mdrpc_adddrvs(mdrpc_drives_args) = 10; 790 791 mdrpc_generic_res 792 mdrpc_deldrvs(mdrpc_drives_args) = 11; 793 794 mdrpc_generic_res 795 mdrpc_upd_dr_dbinfo(mdrpc_drives_args) = 12; 796 797 mdrpc_devinfo_res 798 mdrpc_devinfo(mdrpc_devinfo_args) = 13; 799 800 mdrpc_generic_res 801 mdrpc_drvused(mdrpc_drvused_args) = 14; 802 803 mdrpc_generic_res 804 mdrpc_add_drv_sidenms(mdrpc_drv_sidenm_args) = 15; 805 806 mdrpc_generic_res 807 mdrpc_del_drv_sidenms(mdrpc_sp_args) = 16; 808 809 mdrpc_gtimeout_res 810 mdrpc_gtimeout(mdrpc_sp_args) = 17; 811 812 mdrpc_generic_res 813 mdrpc_stimeout(mdrpc_stimeout_args) = 18; 814 815 mdrpc_generic_res 816 mdrpc_upd_dr_flags(mdrpc_upd_dr_flags_args) = 19; 817 818 mdrpc_generic_res 819 mdrpc_upd_sr_flags(mdrpc_upd_sr_flags_args) = 20; 820 821 mdrpc_setlock_res 822 mdrpc_unlock_set(mdrpc_null_args) = 21; 823 824 mdrpc_setlock_res 825 mdrpc_lock_set(mdrpc_null_args) = 22; 826 827 mdrpc_generic_res 828 mdrpc_updmeds(mdrpc_updmeds_args) = 23; 829 830 mdrpc_generic_res 831 mdrpc_flush_internal(mdrpc_null_args) = 24; 832 833 } = 1; 834 835 version METAD_VERSION_DEVID { 836 md_error_t 837 mdrpc_nullproc(void) = 0; 838 839 mdrpc_hostname_res 840 mdrpc_hostname(mdrpc_null_args) = 1; 841 842 mdrpc_generic_res 843 mdrpc_addhosts(mdrpc_host_2_args) = 2; 844 845 mdrpc_generic_res 846 mdrpc_delhosts(mdrpc_host_2_args) = 3; 847 848 mdrpc_generic_res 849 mdrpc_createset(mdrpc_createset_2_args) = 4; 850 851 mdrpc_generic_res 852 mdrpc_delset(mdrpc_sp_2_args) = 5; 853 854 mdrpc_getset_res 855 mdrpc_getset(mdrpc_getset_2_args) = 6; 856 857 mdrpc_bool_res 858 mdrpc_setnumbusy(mdrpc_setno_2_args) = 7; 859 860 mdrpc_bool_res 861 mdrpc_setnameok(mdrpc_sp_2_args) = 8; 862 863 mdrpc_bool_res 864 mdrpc_ownset(mdrpc_sp_2_args) = 9; 865 866 mdrpc_generic_res 867 mdrpc_adddrvs(mdrpc_drives_2_args) = 10; 868 869 mdrpc_generic_res 870 mdrpc_deldrvs(mdrpc_drives_2_args) = 11; 871 872 mdrpc_generic_res 873 mdrpc_upd_dr_dbinfo(mdrpc_drives_2_args) = 12; 874 875 mdrpc_devinfo_2_res 876 mdrpc_devinfo(mdrpc_devinfo_2_args) = 13; 877 878 mdrpc_generic_res 879 mdrpc_drvused(mdrpc_drvused_2_args) = 14; 880 881 mdrpc_generic_res 882 mdrpc_add_drv_sidenms(mdrpc_drv_sidenm_2_args) = 15; 883 884 mdrpc_generic_res 885 mdrpc_del_drv_sidenms(mdrpc_sp_2_args) = 16; 886 887 mdrpc_gtimeout_res 888 mdrpc_gtimeout(mdrpc_sp_2_args) = 17; 889 890 mdrpc_generic_res 891 mdrpc_stimeout(mdrpc_stimeout_2_args) = 18; 892 893 mdrpc_generic_res 894 mdrpc_upd_dr_flags(mdrpc_upd_dr_flags_2_args) = 19; 895 896 mdrpc_generic_res 897 mdrpc_upd_sr_flags(mdrpc_upd_sr_flags_2_args) = 20; 898 899 mdrpc_setlock_res 900 mdrpc_unlock_set(mdrpc_null_args) = 21; 901 902 mdrpc_setlock_res 903 mdrpc_lock_set(mdrpc_null_args) = 22; 904 905 mdrpc_generic_res 906 mdrpc_updmeds(mdrpc_updmeds_2_args) = 23; 907 908 mdrpc_generic_res 909 mdrpc_flush_internal(mdrpc_null_args) = 24; 910 911 mdrpc_devid_res 912 mdrpc_devid(mdrpc_devid_2_args) = 25; 913 914 mdrpc_devinfo_2_res 915 mdrpc_devinfo_by_devid(mdrpc_devidstr_args) = 26; 916 917 mdrpc_generic_res 918 mdrpc_resnarf_set(mdrpc_setno_2_args) = 27; 919 920 mdrpc_generic_res 921 mdrpc_mncreateset(mdrpc_mncreateset_2_args) = 28; 922 923 mdrpc_mngetset_res 924 mdrpc_mngetset(mdrpc_getset_2_args) = 29; 925 926 mdrpc_generic_res 927 mdrpc_mnsetmaster(mdrpc_mnsetmaster_2_args) = 30; 928 929 mdrpc_generic_res 930 mdrpc_joinset(mdrpc_sp_flags_2_args) = 31; 931 932 mdrpc_generic_res 933 mdrpc_withdrawset(mdrpc_sp_2_args) = 32; 934 935 mdrpc_generic_res 936 mdrpc_upd_nr_flags(mdrpc_upd_nr_flags_2_args) = 33; 937 938 mdrpc_bool_res 939 mdrpc_mn_is_stale(mdrpc_setno_2_args) = 34; 940 941 mdrpc_generic_res 942 mdrpc_mdcommdctl(mdrpc_mdcommdctl_2_args) = 35; 943 944 mdrpc_generic_res 945 mdrpc_clr_mnsetlock(mdrpc_null_args) = 36; 946 947 mdrpc_getdrivedesc_res 948 mdrpc_getdrivedesc(mdrpc_sp_2_args) = 37; 949 950 mdrpc_generic_res 951 mdrpc_upd_dr_reconfig(mdrpc_upd_dr_flags_2_args) = 38; 952 953 mdrpc_generic_res 954 mdrpc_reset_mirror_owner(mdrpc_nodeid_2_args) = 39; 955 956 mdrpc_generic_res 957 mdrpc_mn_susp_res_io(mdrpc_mn_susp_res_io_2_args) = 40; 958 959 mdrpc_generic_res 960 mdrpc_mn_mirror_resync_all(mdrpc_setno_2_args) = 41; 961 962 mdrpc_devinfo_2_res 963 mdrpc_devinfo_by_devid_name(mdrpc_devid_name_2_args) = 42; 964 965 mdrpc_generic_res 966 mdrpc_mn_sp_update_abr(mdrpc_setno_2_args) = 43; 967 968 mdrpc_generic_res 969 mdrpc_imp_adddrvs(mdrpc_drives_2_args) = 44; 970 971 } = 2; 972 } = 100229; 973 974 #ifdef RPC_HDR 975 % 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 */ 981