12654012fSReza Sabdar /* 22654012fSReza Sabdar * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 32654012fSReza Sabdar * Use is subject to license terms. 42654012fSReza Sabdar */ 52654012fSReza Sabdar 62654012fSReza Sabdar /* 72654012fSReza Sabdar * BSD 3 Clause License 82654012fSReza Sabdar * 92654012fSReza Sabdar * Copyright (c) 2007, The Storage Networking Industry Association. 102654012fSReza Sabdar * 112654012fSReza Sabdar * Redistribution and use in source and binary forms, with or without 122654012fSReza Sabdar * modification, are permitted provided that the following conditions 132654012fSReza Sabdar * are met: 142654012fSReza Sabdar * - Redistributions of source code must retain the above copyright 152654012fSReza Sabdar * notice, this list of conditions and the following disclaimer. 162654012fSReza Sabdar * 172654012fSReza Sabdar * - Redistributions in binary form must reproduce the above copyright 182654012fSReza Sabdar * notice, this list of conditions and the following disclaimer in 192654012fSReza Sabdar * the documentation and/or other materials provided with the 202654012fSReza Sabdar * distribution. 212654012fSReza Sabdar * 222654012fSReza Sabdar * - Neither the name of The Storage Networking Industry Association (SNIA) 232654012fSReza Sabdar * nor the names of its contributors may be used to endorse or promote 242654012fSReza Sabdar * products derived from this software without specific prior written 252654012fSReza Sabdar * permission. 262654012fSReza Sabdar * 272654012fSReza Sabdar * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 282654012fSReza Sabdar * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 292654012fSReza Sabdar * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 302654012fSReza Sabdar * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 312654012fSReza Sabdar * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 322654012fSReza Sabdar * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 332654012fSReza Sabdar * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 342654012fSReza Sabdar * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 352654012fSReza Sabdar * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 362654012fSReza Sabdar * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 372654012fSReza Sabdar * POSSIBILITY OF SUCH DAMAGE. 382654012fSReza Sabdar */ 392654012fSReza Sabdar /* Copyright (c) 1996, 1997 PDC, Network Appliance. All Rights Reserved */ 40*9ee94b97SJan Kryl /* 41*9ee94b97SJan Kryl * Copyright 2014 Nexenta Systems, Inc. All rights reserved. 42*9ee94b97SJan Kryl */ 432654012fSReza Sabdar 442654012fSReza Sabdar #include <sys/note.h> 452654012fSReza Sabdar #include "ndmpd.h" 462654012fSReza Sabdar 472654012fSReza Sabdar /* 482654012fSReza Sabdar * The following macros construct the message handler. 492654012fSReza Sabdar * ver is the suffix used to construct the handler name. 502654012fSReza Sabdar * mver is the suffix used to construct the structure name. 512654012fSReza Sabdar * ver and mver are not necessarily the same, specially when 522654012fSReza Sabdar * there are different structures and there is one handler 532654012fSReza Sabdar * for all of them. 542654012fSReza Sabdar */ 552654012fSReza Sabdar 562654012fSReza Sabdar /* 572654012fSReza Sabdar * The handler function 582654012fSReza Sabdar * The request and reply XDR function 592654012fSReza Sabdar * The request and reply sizes 602654012fSReza Sabdar */ 612654012fSReza Sabdar #define HANDL(cmd, ver, mver) \ 622654012fSReza Sabdar { \ 632654012fSReza Sabdar ndmpd_##cmd##_v##ver, \ 642654012fSReza Sabdar XDR_AND_SIZE(ndmp_##cmd##_request_v##mver), \ 652654012fSReza Sabdar XDR_AND_SIZE(ndmp_##cmd##_reply_v##mver), \ 662654012fSReza Sabdar } 672654012fSReza Sabdar 682654012fSReza Sabdar /* 692654012fSReza Sabdar * No handler function 702654012fSReza Sabdar * The request XDR function 712654012fSReza Sabdar * The request size 722654012fSReza Sabdar */ 732654012fSReza Sabdar #define HANDL_RQ(cmd, mver) \ 742654012fSReza Sabdar { \ 752654012fSReza Sabdar 0, \ 762654012fSReza Sabdar XDR_AND_SIZE(ndmp_##cmd##_request_v##mver), \ 772654012fSReza Sabdar 0, 0, \ 782654012fSReza Sabdar } 792654012fSReza Sabdar 802654012fSReza Sabdar /* 812654012fSReza Sabdar * The handler function 822654012fSReza Sabdar * The reply XDR function 832654012fSReza Sabdar * The reply size 842654012fSReza Sabdar */ 852654012fSReza Sabdar #define HANDL_RS(cmd, ver, mver) \ 862654012fSReza Sabdar { \ 872654012fSReza Sabdar ndmpd_##cmd##_v##ver, \ 882654012fSReza Sabdar 0, 0, \ 892654012fSReza Sabdar XDR_AND_SIZE(ndmp_##cmd##_reply_v##mver), \ 902654012fSReza Sabdar } 912654012fSReza Sabdar 922654012fSReza Sabdar /* 932654012fSReza Sabdar * The handler function 942654012fSReza Sabdar * No reply XDR function 952654012fSReza Sabdar * No reply size 962654012fSReza Sabdar */ 972654012fSReza Sabdar #define HANDL_NONE(cmd, ver) \ 982654012fSReza Sabdar { \ 992654012fSReza Sabdar ndmpd_##cmd##_v##ver, \ 1002654012fSReza Sabdar 0, 0, \ 1012654012fSReza Sabdar 0, 0, \ 1022654012fSReza Sabdar } 1032654012fSReza Sabdar 1042654012fSReza Sabdar /* 1052654012fSReza Sabdar * No handler for this entry 1062654012fSReza Sabdar */ 1072654012fSReza Sabdar #define HANDL_NULL \ 1082654012fSReza Sabdar { \ 1092654012fSReza Sabdar 0, \ 1102654012fSReza Sabdar 0, 0, \ 1112654012fSReza Sabdar 0, 0, \ 1122654012fSReza Sabdar } 1132654012fSReza Sabdar 1142654012fSReza Sabdar /* 1152654012fSReza Sabdar * LINT does not like this table as it references 1162654012fSReza Sabdar * XDR functions from ndmp_xdr.c which is not included 1172654012fSReza Sabdar * for LINT. 1182654012fSReza Sabdar */ 1192654012fSReza Sabdar #ifndef lint 1202654012fSReza Sabdar ndmp_handler_t ndmp_msghdl_tab[] = { 1212654012fSReza Sabdar { 1222654012fSReza Sabdar /* NONE - 0x000 */ 1232654012fSReza Sabdar 0, 1242654012fSReza Sabdar { 1252654012fSReza Sabdar { 1262654012fSReza Sabdar 0, 1272654012fSReza Sabdar AUTH_NOT_REQUIRED, 1282654012fSReza Sabdar { 1292654012fSReza Sabdar HANDL_NULL, 1302654012fSReza Sabdar HANDL_NULL, 1312654012fSReza Sabdar HANDL_NULL, 1322654012fSReza Sabdar } 1332654012fSReza Sabdar } 1342654012fSReza Sabdar } 1352654012fSReza Sabdar }, 1362654012fSReza Sabdar { 1372654012fSReza Sabdar /* CONFIG - 0x100 */ 1382654012fSReza Sabdar 11, 1392654012fSReza Sabdar { 1402654012fSReza Sabdar { 1412654012fSReza Sabdar NDMP_CONFIG_GET_HOST_INFO, 1422654012fSReza Sabdar AUTH_REQUIRED, 1432654012fSReza Sabdar { 1442654012fSReza Sabdar HANDL_RS(config_get_host_info, 2, 2), 1452654012fSReza Sabdar HANDL_RS(config_get_host_info, 3, 3), 1462654012fSReza Sabdar HANDL_RS(config_get_host_info, 3, 4), 1472654012fSReza Sabdar } 1482654012fSReza Sabdar }, 1492654012fSReza Sabdar { 1502654012fSReza Sabdar NDMP_CONFIG_GET_BUTYPE_ATTR, 1512654012fSReza Sabdar AUTH_NOT_REQUIRED, 1522654012fSReza Sabdar { 1532654012fSReza Sabdar HANDL(config_get_butype_attr, 2, 2), 1542654012fSReza Sabdar HANDL_NULL, 1552654012fSReza Sabdar HANDL_NULL, 1562654012fSReza Sabdar } 1572654012fSReza Sabdar }, 1582654012fSReza Sabdar { 1592654012fSReza Sabdar NDMP_CONFIG_GET_CONNECTION_TYPE, 1602654012fSReza Sabdar AUTH_REQUIRED, 1612654012fSReza Sabdar { 1622654012fSReza Sabdar HANDL_RS(config_get_mover_type, 2, 2), 1632654012fSReza Sabdar HANDL_RS(config_get_connection_type, 3, 3), 1642654012fSReza Sabdar HANDL_RS(config_get_connection_type, 3, 4), 1652654012fSReza Sabdar } 1662654012fSReza Sabdar }, 1672654012fSReza Sabdar { 1682654012fSReza Sabdar NDMP_CONFIG_GET_AUTH_ATTR, 1692654012fSReza Sabdar AUTH_NOT_REQUIRED, 1702654012fSReza Sabdar { 1712654012fSReza Sabdar HANDL(config_get_auth_attr, 2, 2), 1722654012fSReza Sabdar HANDL(config_get_auth_attr, 3, 3), 1732654012fSReza Sabdar HANDL(config_get_auth_attr, 3, 4), 1742654012fSReza Sabdar } 1752654012fSReza Sabdar }, 1762654012fSReza Sabdar { 1772654012fSReza Sabdar NDMP_CONFIG_GET_BUTYPE_INFO, 1782654012fSReza Sabdar AUTH_REQUIRED, 1792654012fSReza Sabdar { 1802654012fSReza Sabdar HANDL_NULL, 1812654012fSReza Sabdar HANDL_RS(config_get_butype_info, 3, 3), 1822654012fSReza Sabdar HANDL_RS(config_get_butype_info, 4, 4), 1832654012fSReza Sabdar } 1842654012fSReza Sabdar }, 1852654012fSReza Sabdar { 1862654012fSReza Sabdar NDMP_CONFIG_GET_FS_INFO, 1872654012fSReza Sabdar AUTH_REQUIRED, 1882654012fSReza Sabdar { 1892654012fSReza Sabdar HANDL_NULL, 1902654012fSReza Sabdar HANDL_RS(config_get_fs_info, 3, 3), 1912654012fSReza Sabdar HANDL_RS(config_get_fs_info, 3, 4), 1922654012fSReza Sabdar } 1932654012fSReza Sabdar }, 1942654012fSReza Sabdar { 1952654012fSReza Sabdar NDMP_CONFIG_GET_TAPE_INFO, 1962654012fSReza Sabdar AUTH_REQUIRED, 1972654012fSReza Sabdar { 1982654012fSReza Sabdar HANDL_NULL, 1992654012fSReza Sabdar HANDL_RS(config_get_tape_info, 3, 3), 2002654012fSReza Sabdar HANDL_RS(config_get_tape_info, 3, 4), 2012654012fSReza Sabdar } 2022654012fSReza Sabdar }, 2032654012fSReza Sabdar { 2042654012fSReza Sabdar NDMP_CONFIG_GET_SCSI_INFO, 2052654012fSReza Sabdar AUTH_REQUIRED, 2062654012fSReza Sabdar { 2072654012fSReza Sabdar HANDL_NULL, 2082654012fSReza Sabdar HANDL_RS(config_get_scsi_info, 3, 3), 2092654012fSReza Sabdar HANDL_RS(config_get_scsi_info, 3, 4), 2102654012fSReza Sabdar } 2112654012fSReza Sabdar }, 2122654012fSReza Sabdar { 2132654012fSReza Sabdar NDMP_CONFIG_GET_SERVER_INFO, 2142654012fSReza Sabdar AUTH_NOT_REQUIRED, 2152654012fSReza Sabdar { 2162654012fSReza Sabdar HANDL_NULL, 2172654012fSReza Sabdar HANDL_RS(config_get_server_info, 3, 3), 2182654012fSReza Sabdar HANDL_RS(config_get_server_info, 3, 4), 2192654012fSReza Sabdar } 2202654012fSReza Sabdar }, 2212654012fSReza Sabdar { 2222654012fSReza Sabdar NDMP_CONFIG_SET_EXT_LIST, 2232654012fSReza Sabdar AUTH_REQUIRED, 2242654012fSReza Sabdar { 2252654012fSReza Sabdar HANDL_NULL, 2262654012fSReza Sabdar HANDL_NULL, 2272654012fSReza Sabdar HANDL(config_set_ext_list, 4, 4), 2282654012fSReza Sabdar } 2292654012fSReza Sabdar }, 2302654012fSReza Sabdar { 2312654012fSReza Sabdar NDMP_CONFIG_GET_EXT_LIST, 2322654012fSReza Sabdar AUTH_REQUIRED, 2332654012fSReza Sabdar { 2342654012fSReza Sabdar HANDL_NULL, 2352654012fSReza Sabdar HANDL_NULL, 2362654012fSReza Sabdar HANDL_RS(config_get_ext_list, 4, 4), 2372654012fSReza Sabdar } 2382654012fSReza Sabdar } 2392654012fSReza Sabdar } 2402654012fSReza Sabdar }, 2412654012fSReza Sabdar { 2422654012fSReza Sabdar /* SCSI - 0x200 */ 2432654012fSReza Sabdar 7, 2442654012fSReza Sabdar { 2452654012fSReza Sabdar { 2462654012fSReza Sabdar NDMP_SCSI_OPEN, 2472654012fSReza Sabdar AUTH_REQUIRED, 2482654012fSReza Sabdar { 2492654012fSReza Sabdar HANDL(scsi_open, 2, 2), 2502654012fSReza Sabdar HANDL(scsi_open, 3, 3), 2512654012fSReza Sabdar HANDL(scsi_open, 3, 4), 2522654012fSReza Sabdar } 2532654012fSReza Sabdar }, 2542654012fSReza Sabdar { 2552654012fSReza Sabdar NDMP_SCSI_CLOSE, 2562654012fSReza Sabdar AUTH_REQUIRED, 2572654012fSReza Sabdar { 2582654012fSReza Sabdar HANDL_RS(scsi_close, 2, 2), 2592654012fSReza Sabdar HANDL_RS(scsi_close, 2, 3), 2602654012fSReza Sabdar HANDL_RS(scsi_close, 2, 4), 2612654012fSReza Sabdar } 2622654012fSReza Sabdar }, 2632654012fSReza Sabdar { 2642654012fSReza Sabdar NDMP_SCSI_GET_STATE, 2652654012fSReza Sabdar AUTH_REQUIRED, 2662654012fSReza Sabdar { 2672654012fSReza Sabdar HANDL_RS(scsi_get_state, 2, 2), 2682654012fSReza Sabdar HANDL_RS(scsi_get_state, 2, 3), 2692654012fSReza Sabdar HANDL_RS(scsi_get_state, 2, 4), 2702654012fSReza Sabdar } 2712654012fSReza Sabdar }, 2722654012fSReza Sabdar { 2732654012fSReza Sabdar NDMP_SCSI_SET_TARGET, 2742654012fSReza Sabdar AUTH_REQUIRED, 2752654012fSReza Sabdar { 2762654012fSReza Sabdar HANDL(scsi_set_target, 2, 2), 2772654012fSReza Sabdar HANDL(scsi_set_target, 3, 3), 2782654012fSReza Sabdar HANDL_NULL, 2792654012fSReza Sabdar } 2802654012fSReza Sabdar }, 2812654012fSReza Sabdar { 2822654012fSReza Sabdar NDMP_SCSI_RESET_DEVICE, 2832654012fSReza Sabdar AUTH_REQUIRED, 2842654012fSReza Sabdar { 2852654012fSReza Sabdar HANDL_RS(scsi_reset_device, 2, 2), 2862654012fSReza Sabdar HANDL_RS(scsi_reset_device, 2, 3), 2872654012fSReza Sabdar HANDL_RS(scsi_reset_device, 2, 4), 2882654012fSReza Sabdar } 2892654012fSReza Sabdar }, 2902654012fSReza Sabdar { 2912654012fSReza Sabdar NDMP_SCSI_RESET_BUS, 2922654012fSReza Sabdar AUTH_REQUIRED, 2932654012fSReza Sabdar { 2942654012fSReza Sabdar HANDL_RS(scsi_reset_bus, 2, 2), 2952654012fSReza Sabdar HANDL_RS(scsi_reset_bus, 2, 3), 2962654012fSReza Sabdar HANDL_NULL, 2972654012fSReza Sabdar } 2982654012fSReza Sabdar }, 2992654012fSReza Sabdar { 3002654012fSReza Sabdar NDMP_SCSI_EXECUTE_CDB, 3012654012fSReza Sabdar AUTH_REQUIRED, 3022654012fSReza Sabdar { 3032654012fSReza Sabdar HANDL(scsi_execute_cdb, 2, 2), 3042654012fSReza Sabdar HANDL(scsi_execute_cdb, 2, 3), 3052654012fSReza Sabdar HANDL(scsi_execute_cdb, 2, 4), 3062654012fSReza Sabdar } 3072654012fSReza Sabdar } 3082654012fSReza Sabdar } 3092654012fSReza Sabdar }, 3102654012fSReza Sabdar { 3112654012fSReza Sabdar /* TAPE - 0x300 */ 3122654012fSReza Sabdar 8, 3132654012fSReza Sabdar { 3142654012fSReza Sabdar { 3152654012fSReza Sabdar NDMP_TAPE_OPEN, 3162654012fSReza Sabdar AUTH_REQUIRED, 3172654012fSReza Sabdar { 3182654012fSReza Sabdar HANDL(tape_open, 2, 2), 3192654012fSReza Sabdar HANDL(tape_open, 3, 3), 3202654012fSReza Sabdar HANDL(tape_open, 3, 4), 3212654012fSReza Sabdar } 3222654012fSReza Sabdar }, 3232654012fSReza Sabdar { 3242654012fSReza Sabdar NDMP_TAPE_CLOSE, 3252654012fSReza Sabdar AUTH_REQUIRED, 3262654012fSReza Sabdar { 3272654012fSReza Sabdar HANDL_RS(tape_close, 2, 2), 3282654012fSReza Sabdar HANDL_RS(tape_close, 2, 3), 3292654012fSReza Sabdar HANDL_RS(tape_close, 4, 4), 3302654012fSReza Sabdar } 3312654012fSReza Sabdar }, 3322654012fSReza Sabdar { 3332654012fSReza Sabdar NDMP_TAPE_GET_STATE, 3342654012fSReza Sabdar AUTH_REQUIRED, 3352654012fSReza Sabdar { 3362654012fSReza Sabdar HANDL_RS(tape_get_state, 2, 2), 3372654012fSReza Sabdar HANDL_RS(tape_get_state, 3, 3), 3382654012fSReza Sabdar HANDL_RS(tape_get_state, 3, 4), 3392654012fSReza Sabdar } 3402654012fSReza Sabdar }, 3412654012fSReza Sabdar { 3422654012fSReza Sabdar NDMP_TAPE_MTIO, 3432654012fSReza Sabdar AUTH_REQUIRED, 3442654012fSReza Sabdar { 3452654012fSReza Sabdar HANDL(tape_mtio, 2, 2), 3462654012fSReza Sabdar HANDL(tape_mtio, 2, 3), 3472654012fSReza Sabdar HANDL(tape_mtio, 2, 4), 3482654012fSReza Sabdar } 3492654012fSReza Sabdar }, 3502654012fSReza Sabdar { 3512654012fSReza Sabdar NDMP_TAPE_WRITE, 3522654012fSReza Sabdar AUTH_REQUIRED, 3532654012fSReza Sabdar { 354*9ee94b97SJan Kryl HANDL(tape_write, 3, 2), 3552654012fSReza Sabdar HANDL(tape_write, 3, 3), 3562654012fSReza Sabdar HANDL(tape_write, 3, 4), 3572654012fSReza Sabdar } 3582654012fSReza Sabdar }, 3592654012fSReza Sabdar { 3602654012fSReza Sabdar NDMP_TAPE_READ, 3612654012fSReza Sabdar AUTH_REQUIRED, 3622654012fSReza Sabdar { 3632654012fSReza Sabdar HANDL(tape_read, 2, 2), 3642654012fSReza Sabdar HANDL(tape_read, 3, 3), 3652654012fSReza Sabdar HANDL(tape_read, 3, 4), 3662654012fSReza Sabdar } 3672654012fSReza Sabdar }, 3682654012fSReza Sabdar { 3692654012fSReza Sabdar NDMP_TAPE_SET_RECORD_SIZE, 3702654012fSReza Sabdar AUTH_REQUIRED, 3712654012fSReza Sabdar { 3722654012fSReza Sabdar HANDL_NULL, 3732654012fSReza Sabdar HANDL_NULL, 3742654012fSReza Sabdar HANDL_NULL, 3752654012fSReza Sabdar } 3762654012fSReza Sabdar }, 3772654012fSReza Sabdar { 3782654012fSReza Sabdar NDMP_TAPE_EXECUTE_CDB, 3792654012fSReza Sabdar AUTH_REQUIRED, 3802654012fSReza Sabdar { 3812654012fSReza Sabdar HANDL(tape_execute_cdb, 2, 2), 3822654012fSReza Sabdar HANDL(tape_execute_cdb, 2, 3), 3832654012fSReza Sabdar HANDL(tape_execute_cdb, 2, 4), 3842654012fSReza Sabdar } 3852654012fSReza Sabdar } 3862654012fSReza Sabdar } 3872654012fSReza Sabdar }, 3882654012fSReza Sabdar { 3892654012fSReza Sabdar /* DATA - 0x400 */ 3902654012fSReza Sabdar 12, 3912654012fSReza Sabdar { 3922654012fSReza Sabdar { 3932654012fSReza Sabdar NDMP_DATA_GET_STATE, 3942654012fSReza Sabdar AUTH_REQUIRED, 3952654012fSReza Sabdar { 3962654012fSReza Sabdar HANDL_RS(data_get_state, 2, 2), 3972654012fSReza Sabdar HANDL_RS(data_get_state, 3, 3), 3982654012fSReza Sabdar HANDL_RS(data_get_state, 4, 4), 3992654012fSReza Sabdar } 4002654012fSReza Sabdar }, 4012654012fSReza Sabdar { 4022654012fSReza Sabdar NDMP_DATA_START_BACKUP, 4032654012fSReza Sabdar AUTH_REQUIRED, 4042654012fSReza Sabdar { 4052654012fSReza Sabdar HANDL(data_start_backup, 2, 2), 4062654012fSReza Sabdar HANDL(data_start_backup, 3, 3), 4072654012fSReza Sabdar HANDL(data_start_backup, 3, 4), 4082654012fSReza Sabdar } 4092654012fSReza Sabdar }, 4102654012fSReza Sabdar { 4112654012fSReza Sabdar NDMP_DATA_START_RECOVER, 4122654012fSReza Sabdar AUTH_REQUIRED, 4132654012fSReza Sabdar { 4142654012fSReza Sabdar HANDL(data_start_recover, 2, 2), 4152654012fSReza Sabdar HANDL(data_start_recover, 3, 3), 4162654012fSReza Sabdar HANDL(data_start_recover, 3, 4), 4172654012fSReza Sabdar } 4182654012fSReza Sabdar }, 4192654012fSReza Sabdar { 4202654012fSReza Sabdar NDMP_DATA_ABORT, 4212654012fSReza Sabdar AUTH_REQUIRED, 4222654012fSReza Sabdar { 4232654012fSReza Sabdar HANDL_RS(data_abort, 2, 2), 4242654012fSReza Sabdar HANDL_RS(data_abort, 3, 3), 4252654012fSReza Sabdar HANDL_RS(data_abort, 3, 4), 4262654012fSReza Sabdar } 4272654012fSReza Sabdar }, 4282654012fSReza Sabdar { 4292654012fSReza Sabdar NDMP_DATA_GET_ENV, 4302654012fSReza Sabdar AUTH_REQUIRED, 4312654012fSReza Sabdar { 4322654012fSReza Sabdar HANDL_RS(data_get_env, 2, 2), 4332654012fSReza Sabdar HANDL_RS(data_get_env, 2, 3), 4342654012fSReza Sabdar HANDL_RS(data_get_env, 4, 4), 4352654012fSReza Sabdar } 4362654012fSReza Sabdar }, 4372654012fSReza Sabdar { 4382654012fSReza Sabdar NDMP_DATA_RESVD1, 4392654012fSReza Sabdar AUTH_REQUIRED, 4402654012fSReza Sabdar { 4412654012fSReza Sabdar HANDL_NULL, 4422654012fSReza Sabdar HANDL_NULL, 4432654012fSReza Sabdar HANDL_NULL, 4442654012fSReza Sabdar } 4452654012fSReza Sabdar }, 4462654012fSReza Sabdar { 4472654012fSReza Sabdar NDMP_DATA_RESVD2, 4482654012fSReza Sabdar AUTH_REQUIRED, 4492654012fSReza Sabdar { 4502654012fSReza Sabdar HANDL_NULL, 4512654012fSReza Sabdar HANDL_NULL, 4522654012fSReza Sabdar HANDL_NULL, 4532654012fSReza Sabdar } 4542654012fSReza Sabdar }, 4552654012fSReza Sabdar 4562654012fSReza Sabdar { 4572654012fSReza Sabdar NDMP_DATA_STOP, 4582654012fSReza Sabdar AUTH_REQUIRED, 4592654012fSReza Sabdar { 4602654012fSReza Sabdar HANDL_RS(data_stop, 2, 2), 4612654012fSReza Sabdar HANDL_RS(data_stop, 3, 3), 4622654012fSReza Sabdar HANDL_RS(data_stop, 3, 4), 4632654012fSReza Sabdar } 4642654012fSReza Sabdar }, 4652654012fSReza Sabdar { 4662654012fSReza Sabdar NDMP_DATA_CONTINUE, 4672654012fSReza Sabdar AUTH_REQUIRED, 4682654012fSReza Sabdar { 4692654012fSReza Sabdar HANDL_NULL, 4702654012fSReza Sabdar HANDL_NULL, 4712654012fSReza Sabdar HANDL_NULL, 4722654012fSReza Sabdar } 4732654012fSReza Sabdar }, 4742654012fSReza Sabdar { 4752654012fSReza Sabdar NDMP_DATA_LISTEN, 4762654012fSReza Sabdar AUTH_REQUIRED, 4772654012fSReza Sabdar { 4782654012fSReza Sabdar HANDL_NULL, 4792654012fSReza Sabdar HANDL(data_listen, 3, 3), 4802654012fSReza Sabdar HANDL(data_listen, 4, 4), 4812654012fSReza Sabdar } 4822654012fSReza Sabdar }, 4832654012fSReza Sabdar { 4842654012fSReza Sabdar NDMP_DATA_CONNECT, 4852654012fSReza Sabdar AUTH_REQUIRED, 4862654012fSReza Sabdar { 4872654012fSReza Sabdar HANDL_NULL, 4882654012fSReza Sabdar HANDL(data_connect, 3, 3), 4892654012fSReza Sabdar HANDL(data_connect, 4, 4), 4902654012fSReza Sabdar } 4912654012fSReza Sabdar }, 4922654012fSReza Sabdar { 4932654012fSReza Sabdar NDMP_DATA_START_RECOVER_FILEHIST, 4942654012fSReza Sabdar AUTH_REQUIRED, 4952654012fSReza Sabdar { 4962654012fSReza Sabdar HANDL_NULL, 4972654012fSReza Sabdar HANDL_NULL, 4982654012fSReza Sabdar HANDL_RS(data_start_recover_filehist, 4, 4), 4992654012fSReza Sabdar } 5002654012fSReza Sabdar } 5012654012fSReza Sabdar } 5022654012fSReza Sabdar }, 5032654012fSReza Sabdar { 5042654012fSReza Sabdar /* NOTIFY - 0x500 */ 5052654012fSReza Sabdar 6, 5062654012fSReza Sabdar { 5072654012fSReza Sabdar { 5082654012fSReza Sabdar NDMP_NOTIFY_RESERVED, 5092654012fSReza Sabdar AUTH_REQUIRED, 5102654012fSReza Sabdar { 5112654012fSReza Sabdar HANDL_NULL, 5122654012fSReza Sabdar HANDL_NULL, 5132654012fSReza Sabdar HANDL_NULL, 5142654012fSReza Sabdar } 5152654012fSReza Sabdar }, 5162654012fSReza Sabdar 5172654012fSReza Sabdar { 5182654012fSReza Sabdar NDMP_NOTIFY_DATA_HALTED, 5192654012fSReza Sabdar AUTH_REQUIRED, 5202654012fSReza Sabdar { 5212654012fSReza Sabdar HANDL_RQ(notify_data_halted, 2), 5222654012fSReza Sabdar HANDL_RQ(notify_data_halted, 3), 5232654012fSReza Sabdar HANDL_RQ(notify_data_halted, 4), 5242654012fSReza Sabdar } 5252654012fSReza Sabdar }, 5262654012fSReza Sabdar { 5272654012fSReza Sabdar NDMP_NOTIFY_CONNECTION_STATUS, 5282654012fSReza Sabdar AUTH_NOT_REQUIRED, 5292654012fSReza Sabdar { 5302654012fSReza Sabdar HANDL_RQ(notify_connection_status, 2), 5312654012fSReza Sabdar HANDL_RQ(notify_connection_status, 3), 5322654012fSReza Sabdar HANDL_RQ(notify_connection_status, 4), 5332654012fSReza Sabdar } 5342654012fSReza Sabdar }, 5352654012fSReza Sabdar { 5362654012fSReza Sabdar NDMP_NOTIFY_MOVER_HALTED, 5372654012fSReza Sabdar AUTH_REQUIRED, 5382654012fSReza Sabdar { 5392654012fSReza Sabdar HANDL_RQ(notify_mover_halted, 2), 5402654012fSReza Sabdar HANDL_RQ(notify_mover_halted, 3), 5412654012fSReza Sabdar HANDL_RQ(notify_mover_halted, 4), 5422654012fSReza Sabdar } 5432654012fSReza Sabdar }, 5442654012fSReza Sabdar { 5452654012fSReza Sabdar NDMP_NOTIFY_MOVER_PAUSED, 5462654012fSReza Sabdar AUTH_REQUIRED, 5472654012fSReza Sabdar { 5482654012fSReza Sabdar HANDL_RQ(notify_mover_paused, 2), 5492654012fSReza Sabdar HANDL_RQ(notify_mover_paused, 3), 5502654012fSReza Sabdar HANDL_RQ(notify_mover_paused, 4), 5512654012fSReza Sabdar } 5522654012fSReza Sabdar }, 5532654012fSReza Sabdar { 5542654012fSReza Sabdar NDMP_NOTIFY_DATA_READ, 5552654012fSReza Sabdar AUTH_REQUIRED, 5562654012fSReza Sabdar { 5572654012fSReza Sabdar HANDL_RQ(notify_data_read, 2), 5582654012fSReza Sabdar HANDL_RQ(notify_data_read, 3), 5592654012fSReza Sabdar HANDL_RQ(notify_data_read, 4), 5602654012fSReza Sabdar } 5612654012fSReza Sabdar } 5622654012fSReza Sabdar } 5632654012fSReza Sabdar }, 5642654012fSReza Sabdar { 5652654012fSReza Sabdar /* LOG - 0x600 */ 5662654012fSReza Sabdar 4, 5672654012fSReza Sabdar { 5682654012fSReza Sabdar { 5692654012fSReza Sabdar _NDMP_LOG_LOG, 5702654012fSReza Sabdar AUTH_REQUIRED, 5712654012fSReza Sabdar { 5722654012fSReza Sabdar HANDL_RQ(log_log, 2), 5732654012fSReza Sabdar HANDL_NULL, 5742654012fSReza Sabdar HANDL_NULL, 5752654012fSReza Sabdar } 5762654012fSReza Sabdar }, 5772654012fSReza Sabdar { 5782654012fSReza Sabdar _NDMP_LOG_DEBUG, 5792654012fSReza Sabdar AUTH_REQUIRED, 5802654012fSReza Sabdar { 5812654012fSReza Sabdar HANDL_RQ(log_debug, 2), 5822654012fSReza Sabdar HANDL_NULL, 5832654012fSReza Sabdar HANDL_NULL, 5842654012fSReza Sabdar } 5852654012fSReza Sabdar }, 5862654012fSReza Sabdar { 5872654012fSReza Sabdar NDMP_LOG_FILE, 5882654012fSReza Sabdar AUTH_REQUIRED, 5892654012fSReza Sabdar { 5902654012fSReza Sabdar HANDL_NULL, 5912654012fSReza Sabdar HANDL_RQ(log_file, 3), 5922654012fSReza Sabdar HANDL_RQ(log_file, 4), 5932654012fSReza Sabdar } 5942654012fSReza Sabdar }, 5952654012fSReza Sabdar { 5962654012fSReza Sabdar NDMP_LOG_MESSAGE, 5972654012fSReza Sabdar AUTH_REQUIRED, 5982654012fSReza Sabdar { 5992654012fSReza Sabdar HANDL_NULL, 6002654012fSReza Sabdar HANDL_RQ(log_message, 3), 6012654012fSReza Sabdar HANDL_RQ(log_message, 4), 6022654012fSReza Sabdar } 6032654012fSReza Sabdar } 6042654012fSReza Sabdar } 6052654012fSReza Sabdar }, 6062654012fSReza Sabdar { 6072654012fSReza Sabdar /* FH - 0x700 */ 6082654012fSReza Sabdar 6, 6092654012fSReza Sabdar { 6102654012fSReza Sabdar { 6112654012fSReza Sabdar NDMP_FH_ADD_UNIX_PATH, 6122654012fSReza Sabdar AUTH_REQUIRED, 6132654012fSReza Sabdar { 6142654012fSReza Sabdar HANDL_RQ(fh_add_unix_path, 2), 6152654012fSReza Sabdar HANDL_RQ(fh_add_unix_path, 3), 6162654012fSReza Sabdar HANDL_NULL, 6172654012fSReza Sabdar } 6182654012fSReza Sabdar }, 6192654012fSReza Sabdar { 6202654012fSReza Sabdar NDMP_FH_ADD_UNIX_DIR, 6212654012fSReza Sabdar AUTH_REQUIRED, 6222654012fSReza Sabdar { 6232654012fSReza Sabdar HANDL_RQ(fh_add_unix_dir, 2), 6242654012fSReza Sabdar HANDL_RQ(fh_add_unix_dir, 3), 6252654012fSReza Sabdar HANDL_NULL, 6262654012fSReza Sabdar } 6272654012fSReza Sabdar }, 6282654012fSReza Sabdar { 6292654012fSReza Sabdar NDMP_FH_ADD_UNIX_NODE, 6302654012fSReza Sabdar AUTH_REQUIRED, 6312654012fSReza Sabdar { 6322654012fSReza Sabdar HANDL_RQ(fh_add_unix_node, 2), 6332654012fSReza Sabdar HANDL_RQ(fh_add_unix_node, 3), 6342654012fSReza Sabdar HANDL_NULL, 6352654012fSReza Sabdar } 6362654012fSReza Sabdar }, 6372654012fSReza Sabdar { 6382654012fSReza Sabdar NDMP_FH_ADD_FILE, 6392654012fSReza Sabdar AUTH_REQUIRED, 6402654012fSReza Sabdar { 6412654012fSReza Sabdar HANDL_NULL, 6422654012fSReza Sabdar HANDL_RQ(fh_add_file, 3), 6432654012fSReza Sabdar HANDL_RQ(fh_add_file, 4), 6442654012fSReza Sabdar } 6452654012fSReza Sabdar }, 6462654012fSReza Sabdar { 6472654012fSReza Sabdar NDMP_FH_ADD_DIR, 6482654012fSReza Sabdar AUTH_REQUIRED, 6492654012fSReza Sabdar { 6502654012fSReza Sabdar HANDL_NULL, 6512654012fSReza Sabdar HANDL_RQ(fh_add_dir, 3), 6522654012fSReza Sabdar HANDL_RQ(fh_add_dir, 4), 6532654012fSReza Sabdar } 6542654012fSReza Sabdar }, 6552654012fSReza Sabdar { 6562654012fSReza Sabdar NDMP_FH_ADD_NODE, 6572654012fSReza Sabdar AUTH_REQUIRED, 6582654012fSReza Sabdar { 6592654012fSReza Sabdar HANDL_NULL, 6602654012fSReza Sabdar HANDL_RQ(fh_add_node, 3), 6612654012fSReza Sabdar HANDL_RQ(fh_add_node, 4), 6622654012fSReza Sabdar } 6632654012fSReza Sabdar } 6642654012fSReza Sabdar } 6652654012fSReza Sabdar }, 6662654012fSReza Sabdar { 6672654012fSReza Sabdar /* NONE - 0x800 */ 6682654012fSReza Sabdar 0, 6692654012fSReza Sabdar }, 6702654012fSReza Sabdar { 6712654012fSReza Sabdar /* CONNECT - 0x900 */ 6722654012fSReza Sabdar 4, 6732654012fSReza Sabdar { 6742654012fSReza Sabdar { 6752654012fSReza Sabdar NDMP_CONNECT_OPEN, 6762654012fSReza Sabdar AUTH_NOT_REQUIRED, 6772654012fSReza Sabdar { 6782654012fSReza Sabdar HANDL(connect_open, 2, 2), 6792654012fSReza Sabdar HANDL(connect_open, 2, 3), 6802654012fSReza Sabdar HANDL(connect_open, 2, 4), 6812654012fSReza Sabdar } 6822654012fSReza Sabdar }, 6832654012fSReza Sabdar { 6842654012fSReza Sabdar NDMP_CONNECT_AUTH, 6852654012fSReza Sabdar AUTH_NOT_REQUIRED, 6862654012fSReza Sabdar { 6872654012fSReza Sabdar HANDL(connect_client_auth, 2, 2), 6882654012fSReza Sabdar HANDL(connect_client_auth, 3, 3), 6892654012fSReza Sabdar HANDL(connect_client_auth, 3, 4), 6902654012fSReza Sabdar } 6912654012fSReza Sabdar }, 6922654012fSReza Sabdar { 6932654012fSReza Sabdar NDMP_CONNECT_CLOSE, 6942654012fSReza Sabdar AUTH_NOT_REQUIRED, 6952654012fSReza Sabdar { 6962654012fSReza Sabdar HANDL_NONE(connect_close, 2), 6972654012fSReza Sabdar HANDL_NONE(connect_close, 3), 6982654012fSReza Sabdar HANDL_NONE(connect_close, 3), 6992654012fSReza Sabdar } 7002654012fSReza Sabdar }, 7012654012fSReza Sabdar { 7022654012fSReza Sabdar NDMP_CONNECT_SERVER_AUTH, 7032654012fSReza Sabdar AUTH_REQUIRED, 7042654012fSReza Sabdar { 7052654012fSReza Sabdar HANDL(connect_server_auth, 2, 2), 7062654012fSReza Sabdar HANDL(connect_server_auth, 2, 3), 7072654012fSReza Sabdar HANDL(connect_server_auth, 2, 4), 7082654012fSReza Sabdar } 7092654012fSReza Sabdar } 7102654012fSReza Sabdar } 7112654012fSReza Sabdar }, 7122654012fSReza Sabdar { 7132654012fSReza Sabdar /* MOVER - 0xa00 */ 7142654012fSReza Sabdar 10, 7152654012fSReza Sabdar { 7162654012fSReza Sabdar { 7172654012fSReza Sabdar NDMP_MOVER_GET_STATE, 7182654012fSReza Sabdar AUTH_REQUIRED, 7192654012fSReza Sabdar { 7202654012fSReza Sabdar HANDL_RS(mover_get_state, 2, 2), 7212654012fSReza Sabdar HANDL_RS(mover_get_state, 3, 3), 7222654012fSReza Sabdar HANDL_RS(mover_get_state, 4, 4), 7232654012fSReza Sabdar } 7242654012fSReza Sabdar }, 7252654012fSReza Sabdar { 7262654012fSReza Sabdar NDMP_MOVER_LISTEN, 7272654012fSReza Sabdar AUTH_REQUIRED, 7282654012fSReza Sabdar { 7292654012fSReza Sabdar HANDL(mover_listen, 2, 2), 7302654012fSReza Sabdar HANDL(mover_listen, 3, 3), 7312654012fSReza Sabdar HANDL(mover_listen, 4, 4), 7322654012fSReza Sabdar } 7332654012fSReza Sabdar }, 7342654012fSReza Sabdar { 7352654012fSReza Sabdar NDMP_MOVER_CONTINUE, 7362654012fSReza Sabdar AUTH_REQUIRED, 7372654012fSReza Sabdar { 7382654012fSReza Sabdar HANDL_RS(mover_continue, 2, 2), 7392654012fSReza Sabdar HANDL_RS(mover_continue, 3, 3), 7402654012fSReza Sabdar HANDL_RS(mover_continue, 3, 4), 7412654012fSReza Sabdar } 7422654012fSReza Sabdar }, 7432654012fSReza Sabdar { 7442654012fSReza Sabdar NDMP_MOVER_ABORT, 7452654012fSReza Sabdar AUTH_REQUIRED, 7462654012fSReza Sabdar { 7472654012fSReza Sabdar HANDL_RS(mover_abort, 2, 2), 7482654012fSReza Sabdar HANDL_RS(mover_abort, 3, 3), 7492654012fSReza Sabdar HANDL_RS(mover_abort, 3, 4), 7502654012fSReza Sabdar } 7512654012fSReza Sabdar }, 7522654012fSReza Sabdar { 7532654012fSReza Sabdar NDMP_MOVER_STOP, 7542654012fSReza Sabdar AUTH_REQUIRED, 7552654012fSReza Sabdar { 7562654012fSReza Sabdar HANDL_RS(mover_stop, 2, 2), 7572654012fSReza Sabdar HANDL_RS(mover_stop, 2, 3), 7582654012fSReza Sabdar HANDL_RS(mover_stop, 2, 4), 7592654012fSReza Sabdar } 7602654012fSReza Sabdar }, 7612654012fSReza Sabdar { 7622654012fSReza Sabdar NDMP_MOVER_SET_WINDOW, 7632654012fSReza Sabdar AUTH_REQUIRED, 7642654012fSReza Sabdar { 7652654012fSReza Sabdar HANDL(mover_set_window, 2, 2), 7662654012fSReza Sabdar HANDL(mover_set_window, 3, 3), 7672654012fSReza Sabdar HANDL(mover_set_window, 3, 4), 7682654012fSReza Sabdar } 7692654012fSReza Sabdar }, 7702654012fSReza Sabdar { 7712654012fSReza Sabdar NDMP_MOVER_READ, 7722654012fSReza Sabdar AUTH_REQUIRED, 7732654012fSReza Sabdar { 7742654012fSReza Sabdar HANDL(mover_read, 2, 2), 7752654012fSReza Sabdar HANDL(mover_read, 3, 3), 7762654012fSReza Sabdar HANDL(mover_read, 3, 4), 7772654012fSReza Sabdar } 7782654012fSReza Sabdar }, 7792654012fSReza Sabdar { 7802654012fSReza Sabdar NDMP_MOVER_CLOSE, 7812654012fSReza Sabdar AUTH_REQUIRED, 7822654012fSReza Sabdar { 7832654012fSReza Sabdar HANDL_RS(mover_close, 2, 2), 7842654012fSReza Sabdar HANDL_RS(mover_close, 2, 3), 7852654012fSReza Sabdar HANDL_RS(mover_close, 2, 4), 7862654012fSReza Sabdar } 7872654012fSReza Sabdar }, 7882654012fSReza Sabdar { 7892654012fSReza Sabdar NDMP_MOVER_SET_RECORD_SIZE, 7902654012fSReza Sabdar AUTH_REQUIRED, 7912654012fSReza Sabdar { 7922654012fSReza Sabdar HANDL(mover_set_record_size, 2, 2), 7932654012fSReza Sabdar HANDL(mover_set_record_size, 3, 3), 7942654012fSReza Sabdar HANDL(mover_set_record_size, 3, 4), 7952654012fSReza Sabdar } 7962654012fSReza Sabdar }, 7972654012fSReza Sabdar { 7982654012fSReza Sabdar NDMP_MOVER_CONNECT, 7992654012fSReza Sabdar AUTH_REQUIRED, 8002654012fSReza Sabdar { 8012654012fSReza Sabdar HANDL_NULL, 8022654012fSReza Sabdar HANDL(mover_connect, 3, 3), 8032654012fSReza Sabdar HANDL(mover_connect, 4, 4), 8042654012fSReza Sabdar } 8052654012fSReza Sabdar } 8062654012fSReza Sabdar } 8072654012fSReza Sabdar } 8082654012fSReza Sabdar }; 8092654012fSReza Sabdar #else /* !lint */ 8102654012fSReza Sabdar ndmp_handler_t ndmp_msghdl_tab[] = { 8112654012fSReza Sabdar 0 8122654012fSReza Sabdar }; 8132654012fSReza Sabdar #endif /* !lint */ 814