xref: /illumos-gate/usr/src/cmd/ndmpd/ndmp/ndmpd_handler.c (revision 9ee94b97c8654689d6a034daec08757fda75d21a)
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