xref: /onnv-gate/usr/src/cmd/ndmpd/ndmp/ndmp.x (revision 7917:5c4442486198)
1*7917SReza.Sabdar@Sun.COM /*
2*7917SReza.Sabdar@Sun.COM  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
3*7917SReza.Sabdar@Sun.COM  * Use is subject to license terms.
4*7917SReza.Sabdar@Sun.COM  */
5*7917SReza.Sabdar@Sun.COM 
6*7917SReza.Sabdar@Sun.COM /*
7*7917SReza.Sabdar@Sun.COM  * BSD 3 Clause License
8*7917SReza.Sabdar@Sun.COM  *
9*7917SReza.Sabdar@Sun.COM  * Copyright (c) 2007, The Storage Networking Industry Association.
10*7917SReza.Sabdar@Sun.COM  *
11*7917SReza.Sabdar@Sun.COM  * Redistribution and use in source and binary forms, with or without
12*7917SReza.Sabdar@Sun.COM  * modification, are permitted provided that the following conditions
13*7917SReza.Sabdar@Sun.COM  * are met:
14*7917SReza.Sabdar@Sun.COM  * 	- Redistributions of source code must retain the above copyright
15*7917SReza.Sabdar@Sun.COM  *	  notice, this list of conditions and the following disclaimer.
16*7917SReza.Sabdar@Sun.COM  *
17*7917SReza.Sabdar@Sun.COM  * 	- Redistributions in binary form must reproduce the above copyright
18*7917SReza.Sabdar@Sun.COM  *	  notice, this list of conditions and the following disclaimer in
19*7917SReza.Sabdar@Sun.COM  *	  the documentation and/or other materials provided with the
20*7917SReza.Sabdar@Sun.COM  *	  distribution.
21*7917SReza.Sabdar@Sun.COM  *
22*7917SReza.Sabdar@Sun.COM  *	- Neither the name of The Storage Networking Industry Association (SNIA)
23*7917SReza.Sabdar@Sun.COM  *	  nor the names of its contributors may be used to endorse or promote
24*7917SReza.Sabdar@Sun.COM  *	  products derived from this software without specific prior written
25*7917SReza.Sabdar@Sun.COM  *	  permission.
26*7917SReza.Sabdar@Sun.COM  *
27*7917SReza.Sabdar@Sun.COM  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
28*7917SReza.Sabdar@Sun.COM  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29*7917SReza.Sabdar@Sun.COM  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
30*7917SReza.Sabdar@Sun.COM  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
31*7917SReza.Sabdar@Sun.COM  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
32*7917SReza.Sabdar@Sun.COM  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
33*7917SReza.Sabdar@Sun.COM  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34*7917SReza.Sabdar@Sun.COM  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
35*7917SReza.Sabdar@Sun.COM  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
36*7917SReza.Sabdar@Sun.COM  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
37*7917SReza.Sabdar@Sun.COM  * POSSIBILITY OF SUCH DAMAGE.
38*7917SReza.Sabdar@Sun.COM  */
39*7917SReza.Sabdar@Sun.COM /* Copyright (c) 1996, 1997 PDC, Network Appliance. All Rights Reserved */
40*7917SReza.Sabdar@Sun.COM 
41*7917SReza.Sabdar@Sun.COM #define VER 3
42*7917SReza.Sabdar@Sun.COM 
43*7917SReza.Sabdar@Sun.COM const NDMPV2 = 2;
44*7917SReza.Sabdar@Sun.COM const NDMPV3 = 3;
45*7917SReza.Sabdar@Sun.COM const NDMPV4 = 4;
46*7917SReza.Sabdar@Sun.COM const NDMPVER = NDMPV4;
47*7917SReza.Sabdar@Sun.COM const NDMPPORT = 10000;
48*7917SReza.Sabdar@Sun.COM 
49*7917SReza.Sabdar@Sun.COM struct ndmp_u_quad
50*7917SReza.Sabdar@Sun.COM {
51*7917SReza.Sabdar@Sun.COM 	u_long	high;
52*7917SReza.Sabdar@Sun.COM 	u_long	low;
53*7917SReza.Sabdar@Sun.COM };
54*7917SReza.Sabdar@Sun.COM 
55*7917SReza.Sabdar@Sun.COM struct ndmp_pval
56*7917SReza.Sabdar@Sun.COM {
57*7917SReza.Sabdar@Sun.COM 	string	name<>;
58*7917SReza.Sabdar@Sun.COM 	string	value<>;
59*7917SReza.Sabdar@Sun.COM };
60*7917SReza.Sabdar@Sun.COM 
61*7917SReza.Sabdar@Sun.COM struct ndmp_scsi_device
62*7917SReza.Sabdar@Sun.COM {
63*7917SReza.Sabdar@Sun.COM 	string	name<>;
64*7917SReza.Sabdar@Sun.COM };
65*7917SReza.Sabdar@Sun.COM 
66*7917SReza.Sabdar@Sun.COM struct ndmp_tape_device
67*7917SReza.Sabdar@Sun.COM {
68*7917SReza.Sabdar@Sun.COM 	string	name<>;
69*7917SReza.Sabdar@Sun.COM };
70*7917SReza.Sabdar@Sun.COM 
71*7917SReza.Sabdar@Sun.COM enum ndmp_error
72*7917SReza.Sabdar@Sun.COM {
73*7917SReza.Sabdar@Sun.COM 	NDMP_NO_ERR                     =  0, /* No error */
74*7917SReza.Sabdar@Sun.COM 	NDMP_NOT_SUPPORTED_ERR          =  1, /* Call is not supported */
75*7917SReza.Sabdar@Sun.COM 	NDMP_DEVICE_BUSY_ERR            =  2, /* The device is in use */
76*7917SReza.Sabdar@Sun.COM 	NDMP_DEVICE_OPENED_ERR          =  3, /* Another tape or scsi device is already open */
77*7917SReza.Sabdar@Sun.COM 	NDMP_NOT_AUTHORIZED_ERR         =  4, /* Connection has not been authorized */
78*7917SReza.Sabdar@Sun.COM 	NDMP_PERMISSION_ERR             =  5, /* Some sort of permission problem */
79*7917SReza.Sabdar@Sun.COM 	NDMP_DEV_NOT_OPEN_ERR           =  6, /* SCSI device is not open */
80*7917SReza.Sabdar@Sun.COM 	NDMP_IO_ERR                     =  7, /* I/O error */
81*7917SReza.Sabdar@Sun.COM 	NDMP_TIMEOUT_ERR                =  8, /* command timed out */
82*7917SReza.Sabdar@Sun.COM 	NDMP_ILLEGAL_ARGS_ERR           =  9, /* illegal arguments in request */
83*7917SReza.Sabdar@Sun.COM 	NDMP_NO_TAPE_LOADED_ERR         = 10, /* Cannot open because there is no tape loaded */
84*7917SReza.Sabdar@Sun.COM 	NDMP_WRITE_PROTECT_ERR          = 11, /* tape cannot be open for write */
85*7917SReza.Sabdar@Sun.COM 	NDMP_EOF_ERR                    = 12, /* Command encountered EOF */
86*7917SReza.Sabdar@Sun.COM 	NDMP_EOM_ERR                    = 13, /* Command encountered EOM */
87*7917SReza.Sabdar@Sun.COM 	NDMP_FILE_NOT_FOUND_ERR         = 14, /* File not found during restore */
88*7917SReza.Sabdar@Sun.COM 	NDMP_BAD_FILE_ERR               = 15, /* The file descriptor is invalid */
89*7917SReza.Sabdar@Sun.COM 	NDMP_NO_DEVICE_ERR              = 16, /* The device is not at that target */
90*7917SReza.Sabdar@Sun.COM 	NDMP_NO_BUS_ERR                 = 17, /* Invalid controller */
91*7917SReza.Sabdar@Sun.COM 	NDMP_XDR_DECODE_ERR             = 18, /* Can't decode the request argument */
92*7917SReza.Sabdar@Sun.COM 	NDMP_ILLEGAL_STATE_ERR          = 19, /* Call can't be performed at this state */
93*7917SReza.Sabdar@Sun.COM 	NDMP_UNDEFINED_ERR              = 20, /* Undefined Error */
94*7917SReza.Sabdar@Sun.COM 	NDMP_XDR_ENCODE_ERR             = 21, /* Can't encode the reply argument */
95*7917SReza.Sabdar@Sun.COM 	NDMP_NO_MEM_ERR                 = 22, /* No memory */
96*7917SReza.Sabdar@Sun.COM 
97*7917SReza.Sabdar@Sun.COM 	/*
98*7917SReza.Sabdar@Sun.COM 	 * NDMP V3
99*7917SReza.Sabdar@Sun.COM 	 */
100*7917SReza.Sabdar@Sun.COM 	NDMP_CONNECT_ERR                = 23,
101*7917SReza.Sabdar@Sun.COM 
102*7917SReza.Sabdar@Sun.COM 	/*
103*7917SReza.Sabdar@Sun.COM 	 * NDMP V4
104*7917SReza.Sabdar@Sun.COM 	 */
105*7917SReza.Sabdar@Sun.COM 	NDMP_SEQUENCE_NUM_ERR           = 24,
106*7917SReza.Sabdar@Sun.COM 	NDMP_READ_IN_PROGRESS_ERR       = 25,
107*7917SReza.Sabdar@Sun.COM 	NDMP_PRECONDITION_ERR           = 26,
108*7917SReza.Sabdar@Sun.COM 	NDMP_CLASS_NOT_SUPPORTED_ERR    = 27,
109*7917SReza.Sabdar@Sun.COM 	NDMP_VERSION_NOT_SUPPORTED_ERR  = 28,
110*7917SReza.Sabdar@Sun.COM 	NDMP_EXT_DUPL_CLASSES_ERR       = 29,
111*7917SReza.Sabdar@Sun.COM 	NDMP_EXT_DANDN_ILLEGAL_ERR      = 30
112*7917SReza.Sabdar@Sun.COM };
113*7917SReza.Sabdar@Sun.COM 
114*7917SReza.Sabdar@Sun.COM enum ndmp_header_message_type
115*7917SReza.Sabdar@Sun.COM {
116*7917SReza.Sabdar@Sun.COM 	NDMP_MESSAGE_REQUEST,
117*7917SReza.Sabdar@Sun.COM 	NDMP_MESSAGE_REPLY
118*7917SReza.Sabdar@Sun.COM };
119*7917SReza.Sabdar@Sun.COM 
120*7917SReza.Sabdar@Sun.COM enum ndmp_message
121*7917SReza.Sabdar@Sun.COM {
122*7917SReza.Sabdar@Sun.COM 	NDMP_CONNECT_OPEN               = 0x900,
123*7917SReza.Sabdar@Sun.COM 	NDMP_CONNECT_CLIENT_AUTH        = 0x901,
124*7917SReza.Sabdar@Sun.COM 	NDMP_CONNECT_CLOSE              = 0x902,
125*7917SReza.Sabdar@Sun.COM 	NDMP_CONNECT_SERVER_AUTH        = 0x903,
126*7917SReza.Sabdar@Sun.COM 
127*7917SReza.Sabdar@Sun.COM 	NDMP_CONFIG_GET_HOST_INFO       = 0x100,
128*7917SReza.Sabdar@Sun.COM 	NDMP_CONFIG_GET_BUTYPE_ATTR     = 0x101, 	/* NDMP V2 */
129*7917SReza.Sabdar@Sun.COM 	NDMP_CONFIG_GET_CONNECTION_TYPE = 0x102,
130*7917SReza.Sabdar@Sun.COM 	NDMP_CONFIG_GET_AUTH_ATTR       = 0x103,
131*7917SReza.Sabdar@Sun.COM 	NDMP_CONFIG_GET_BUTYPE_INFO     = 0x104, 	/* NDMP V3,4 */
132*7917SReza.Sabdar@Sun.COM 	NDMP_CONFIG_GET_FS_INFO         = 0x105,  	/* NDMP V3,4 */
133*7917SReza.Sabdar@Sun.COM 	NDMP_CONFIG_GET_TAPE_INFO       = 0x106,  	/* NDMP V3,4 */
134*7917SReza.Sabdar@Sun.COM 	NDMP_CONFIG_GET_SCSI_INFO       = 0x107,  	/* NDMP V3,4 */
135*7917SReza.Sabdar@Sun.COM 	NDMP_CONFIG_GET_SERVER_INFO     = 0x108,  	/* NDMP V3,4 */
136*7917SReza.Sabdar@Sun.COM 	NDMP_CONFIG_SET_EXT_LIST        = 0x109, 	/* NDMP V4 */
137*7917SReza.Sabdar@Sun.COM 	NDMP_CONFIG_GET_EXT_LIST        = 0x10A, 	/* NDMP V4 */
138*7917SReza.Sabdar@Sun.COM 
139*7917SReza.Sabdar@Sun.COM 	NDMP_SCSI_OPEN                  = 0x200,
140*7917SReza.Sabdar@Sun.COM 	NDMP_SCSI_CLOSE                 = 0x201,
141*7917SReza.Sabdar@Sun.COM 	NDMP_SCSI_GET_STATE             = 0x202,
142*7917SReza.Sabdar@Sun.COM 	NDMP_SCSI_SET_TARGET            = 0x203,	/* NDMP V2,3 */
143*7917SReza.Sabdar@Sun.COM 	NDMP_SCSI_RESET_DEVICE          = 0x204,
144*7917SReza.Sabdar@Sun.COM 	NDMP_SCSI_RESET_BUS             = 0x205,	/* NDMP V2,3 */
145*7917SReza.Sabdar@Sun.COM 	NDMP_SCSI_EXECUTE_CDB           = 0x206,
146*7917SReza.Sabdar@Sun.COM 
147*7917SReza.Sabdar@Sun.COM 	NDMP_TAPE_OPEN                  = 0x300,
148*7917SReza.Sabdar@Sun.COM 	NDMP_TAPE_CLOSE                 = 0x301,
149*7917SReza.Sabdar@Sun.COM 	NDMP_TAPE_GET_STATE             = 0x302,
150*7917SReza.Sabdar@Sun.COM 	NDMP_TAPE_MTIO                  = 0x303,
151*7917SReza.Sabdar@Sun.COM 	NDMP_TAPE_WRITE                 = 0x304,
152*7917SReza.Sabdar@Sun.COM 	NDMP_TAPE_READ                  = 0x305,
153*7917SReza.Sabdar@Sun.COM 	NDMP_TAPE_SET_RECORD_SIZE	= 0x306,	/* NDMP V1 */
154*7917SReza.Sabdar@Sun.COM 	NDMP_TAPE_EXECUTE_CDB           = 0x307,
155*7917SReza.Sabdar@Sun.COM 
156*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_GET_STATE             = 0x400,
157*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_START_BACKUP          = 0x401,
158*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_START_RECOVER         = 0x402,
159*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_ABORT                 = 0x403,
160*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_GET_ENV               = 0x404,
161*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_RESVD1                = 0x405,
162*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_RESVD2                = 0x406,
163*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_STOP                  = 0x407,
164*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_CONTINUE		= 0x408,	/* NDMP V1 */
165*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_LISTEN                = 0x409,
166*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_CONNECT               = 0x40A,
167*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_START_RECOVER_FILEHIST = 0x40B, 	/* NDMP V4 */
168*7917SReza.Sabdar@Sun.COM 
169*7917SReza.Sabdar@Sun.COM 	NDMP_NOTIFY_RESERVED            = 0x500,
170*7917SReza.Sabdar@Sun.COM 	NDMP_NOTIFY_DATA_HALTED         = 0x501,
171*7917SReza.Sabdar@Sun.COM 	NDMP_NOTIFY_CONNECTION_STATUS   = 0x502,
172*7917SReza.Sabdar@Sun.COM 	NDMP_NOTIFY_MOVER_HALTED        = 0x503,
173*7917SReza.Sabdar@Sun.COM 	NDMP_NOTIFY_MOVER_PAUSED        = 0x504,
174*7917SReza.Sabdar@Sun.COM 	NDMP_NOTIFY_DATA_READ           = 0x505,
175*7917SReza.Sabdar@Sun.COM 
176*7917SReza.Sabdar@Sun.COM 	_NDMP_LOG_LOG                   = 0x600, 	/* NDMP V2 */
177*7917SReza.Sabdar@Sun.COM 	_NDMP_LOG_DEBUG                 = 0x601, 	/* NDMP V2 */
178*7917SReza.Sabdar@Sun.COM 	NDMP_LOG_FILE                   = 0x602, 	/* NDMP V3,4 */
179*7917SReza.Sabdar@Sun.COM 	NDMP_LOG_MESSAGE                = 0x603, 	/* NDMP V3,4 */
180*7917SReza.Sabdar@Sun.COM 
181*7917SReza.Sabdar@Sun.COM 	NDMP_FH_ADD_UNIX_PATH           = 0x700, 	/* NDMP V2,3 */
182*7917SReza.Sabdar@Sun.COM 	NDMP_FH_ADD_UNIX_DIR            = 0x701, 	/* NDMP V2,3 */
183*7917SReza.Sabdar@Sun.COM 	NDMP_FH_ADD_UNIX_NODE           = 0x702, 	/* NDMP V2,3 */
184*7917SReza.Sabdar@Sun.COM 	NDMP_FH_ADD_FILE                = 0x703, 	/* NDMP V3,4 */
185*7917SReza.Sabdar@Sun.COM 	NDMP_FH_ADD_DIR                 = 0x704, 	/* NDMP V3,4 */
186*7917SReza.Sabdar@Sun.COM 	NDMP_FH_ADD_NODE                = 0x705, 	/* NDMP V3,4 */
187*7917SReza.Sabdar@Sun.COM 
188*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_GET_STATE            = 0xA00,
189*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_LISTEN               = 0xA01,
190*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_CONTINUE             = 0xA02,
191*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_ABORT                = 0xA03,
192*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_STOP                 = 0xA04,
193*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_SET_WINDOW           = 0xA05,
194*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_READ                 = 0xA06,
195*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_CLOSE                = 0xA07,
196*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_SET_RECORD_SIZE      = 0xA08,
197*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_CONNECT              = 0xA09, 	/* NDMP V3,4 */
198*7917SReza.Sabdar@Sun.COM 
199*7917SReza.Sabdar@Sun.COM 	NDMP_EXT_STANDARD_BASE          = 0x10000,
200*7917SReza.Sabdar@Sun.COM 
201*7917SReza.Sabdar@Sun.COM 	NDMP_EXT_PROPRIETARY_BASE       = 0x20000000
202*7917SReza.Sabdar@Sun.COM 
203*7917SReza.Sabdar@Sun.COM };
204*7917SReza.Sabdar@Sun.COM 
205*7917SReza.Sabdar@Sun.COM const NDMP_CONNECT_AUTH = NDMP_CONNECT_CLIENT_AUTH;
206*7917SReza.Sabdar@Sun.COM const NDMP_MESSAGE_POST = NDMP_MESSAGE_REQUEST;
207*7917SReza.Sabdar@Sun.COM 
208*7917SReza.Sabdar@Sun.COM struct ndmp_header
209*7917SReza.Sabdar@Sun.COM {
210*7917SReza.Sabdar@Sun.COM 	u_long sequence;			/* Monotonically increasing number */
211*7917SReza.Sabdar@Sun.COM 	u_long time_stamp;			/* Time stamp of message */
212*7917SReza.Sabdar@Sun.COM 	ndmp_header_message_type message_type;	/* What type of message */
213*7917SReza.Sabdar@Sun.COM 	enum ndmp_message message;		/* Message number */
214*7917SReza.Sabdar@Sun.COM 	u_long reply_sequence;			/* Reply is in response to */
215*7917SReza.Sabdar@Sun.COM 	ndmp_error error;			/* Communications errors */
216*7917SReza.Sabdar@Sun.COM };
217*7917SReza.Sabdar@Sun.COM 
218*7917SReza.Sabdar@Sun.COM 
219*7917SReza.Sabdar@Sun.COM /***************************/
220*7917SReza.Sabdar@Sun.COM /*  CONNECT INTERFACE (V2) */
221*7917SReza.Sabdar@Sun.COM /***************************/
222*7917SReza.Sabdar@Sun.COM 
223*7917SReza.Sabdar@Sun.COM /* NDMP_CONNECT_OPEN */
224*7917SReza.Sabdar@Sun.COM struct ndmp_connect_open_request
225*7917SReza.Sabdar@Sun.COM {
226*7917SReza.Sabdar@Sun.COM 	u_short	protocol_version;	/* the version of protocol supported */
227*7917SReza.Sabdar@Sun.COM };
228*7917SReza.Sabdar@Sun.COM 
229*7917SReza.Sabdar@Sun.COM struct ndmp_connect_open_reply
230*7917SReza.Sabdar@Sun.COM {
231*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
232*7917SReza.Sabdar@Sun.COM };
233*7917SReza.Sabdar@Sun.COM 
234*7917SReza.Sabdar@Sun.COM /* NDMP_CONNECT_CLIENT_AUTH = NDMP_CONNECT_AUTH */
235*7917SReza.Sabdar@Sun.COM enum ndmp_auth_type
236*7917SReza.Sabdar@Sun.COM {
237*7917SReza.Sabdar@Sun.COM 	NDMP_AUTH_NONE,		/* no password is required */
238*7917SReza.Sabdar@Sun.COM 	NDMP_AUTH_TEXT,		/* the clear text password */
239*7917SReza.Sabdar@Sun.COM 	NDMP_AUTH_MD5		/* md5 */
240*7917SReza.Sabdar@Sun.COM };
241*7917SReza.Sabdar@Sun.COM 
242*7917SReza.Sabdar@Sun.COM struct ndmp_auth_text
243*7917SReza.Sabdar@Sun.COM {
244*7917SReza.Sabdar@Sun.COM 	string	user<>;
245*7917SReza.Sabdar@Sun.COM 	string	password<>;
246*7917SReza.Sabdar@Sun.COM };
247*7917SReza.Sabdar@Sun.COM 
248*7917SReza.Sabdar@Sun.COM struct ndmp_auth_md5
249*7917SReza.Sabdar@Sun.COM {
250*7917SReza.Sabdar@Sun.COM 	string	user<>;
251*7917SReza.Sabdar@Sun.COM 	opaque	auth_digest[16];
252*7917SReza.Sabdar@Sun.COM };
253*7917SReza.Sabdar@Sun.COM 
254*7917SReza.Sabdar@Sun.COM union ndmp_auth_data switch (enum ndmp_auth_type auth_type)
255*7917SReza.Sabdar@Sun.COM {
256*7917SReza.Sabdar@Sun.COM 	case NDMP_AUTH_NONE:
257*7917SReza.Sabdar@Sun.COM 		void;
258*7917SReza.Sabdar@Sun.COM 	case NDMP_AUTH_TEXT:
259*7917SReza.Sabdar@Sun.COM 		struct ndmp_auth_text	auth_text;
260*7917SReza.Sabdar@Sun.COM 	case NDMP_AUTH_MD5:
261*7917SReza.Sabdar@Sun.COM 		struct ndmp_auth_md5	auth_md5;
262*7917SReza.Sabdar@Sun.COM };
263*7917SReza.Sabdar@Sun.COM 
264*7917SReza.Sabdar@Sun.COM struct ndmp_connect_client_auth_request
265*7917SReza.Sabdar@Sun.COM {
266*7917SReza.Sabdar@Sun.COM 	ndmp_auth_data	auth_data;
267*7917SReza.Sabdar@Sun.COM };
268*7917SReza.Sabdar@Sun.COM 
269*7917SReza.Sabdar@Sun.COM struct ndmp_connect_client_auth_reply
270*7917SReza.Sabdar@Sun.COM {
271*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
272*7917SReza.Sabdar@Sun.COM };
273*7917SReza.Sabdar@Sun.COM 
274*7917SReza.Sabdar@Sun.COM 
275*7917SReza.Sabdar@Sun.COM /* NDMP_CONNECT_CLOSE */
276*7917SReza.Sabdar@Sun.COM /* no request arguments */
277*7917SReza.Sabdar@Sun.COM /* no reply arguments */
278*7917SReza.Sabdar@Sun.COM 
279*7917SReza.Sabdar@Sun.COM /* NDMP_CONNECT_SERVER_AUTH */
280*7917SReza.Sabdar@Sun.COM union ndmp_auth_attr switch (enum ndmp_auth_type auth_type)
281*7917SReza.Sabdar@Sun.COM {
282*7917SReza.Sabdar@Sun.COM 	case NDMP_AUTH_NONE:
283*7917SReza.Sabdar@Sun.COM 		void;
284*7917SReza.Sabdar@Sun.COM 	case NDMP_AUTH_TEXT:
285*7917SReza.Sabdar@Sun.COM 		void;
286*7917SReza.Sabdar@Sun.COM 	case NDMP_AUTH_MD5:
287*7917SReza.Sabdar@Sun.COM 		opaque	challenge[64];
288*7917SReza.Sabdar@Sun.COM };
289*7917SReza.Sabdar@Sun.COM 
290*7917SReza.Sabdar@Sun.COM struct ndmp_connect_server_auth_request
291*7917SReza.Sabdar@Sun.COM {
292*7917SReza.Sabdar@Sun.COM 	ndmp_auth_attr	client_attr;
293*7917SReza.Sabdar@Sun.COM };
294*7917SReza.Sabdar@Sun.COM 
295*7917SReza.Sabdar@Sun.COM struct ndmp_connect_server_auth_reply
296*7917SReza.Sabdar@Sun.COM {
297*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
298*7917SReza.Sabdar@Sun.COM 	ndmp_auth_data	auth_result;
299*7917SReza.Sabdar@Sun.COM };
300*7917SReza.Sabdar@Sun.COM 
301*7917SReza.Sabdar@Sun.COM 
302*7917SReza.Sabdar@Sun.COM /***************************/
303*7917SReza.Sabdar@Sun.COM /*  CONNECT INTERFACE (V3) */
304*7917SReza.Sabdar@Sun.COM /***************************/
305*7917SReza.Sabdar@Sun.COM 
306*7917SReza.Sabdar@Sun.COM /* NDMP_CONNECT_OPEN - same as V2 */
307*7917SReza.Sabdar@Sun.COM 
308*7917SReza.Sabdar@Sun.COM struct ndmp_auth_text_v3
309*7917SReza.Sabdar@Sun.COM {
310*7917SReza.Sabdar@Sun.COM 	string	auth_id<>;
311*7917SReza.Sabdar@Sun.COM 	string	auth_password<>;
312*7917SReza.Sabdar@Sun.COM 
313*7917SReza.Sabdar@Sun.COM };
314*7917SReza.Sabdar@Sun.COM 
315*7917SReza.Sabdar@Sun.COM struct ndmp_auth_md5_v3
316*7917SReza.Sabdar@Sun.COM {
317*7917SReza.Sabdar@Sun.COM 	string	auth_id<>;
318*7917SReza.Sabdar@Sun.COM 	opaque	auth_digest[16];
319*7917SReza.Sabdar@Sun.COM };
320*7917SReza.Sabdar@Sun.COM 
321*7917SReza.Sabdar@Sun.COM union ndmp_auth_data_v3 switch (enum ndmp_auth_type auth_type)
322*7917SReza.Sabdar@Sun.COM {
323*7917SReza.Sabdar@Sun.COM 	case NDMP_AUTH_NONE:
324*7917SReza.Sabdar@Sun.COM 		void;
325*7917SReza.Sabdar@Sun.COM 	case NDMP_AUTH_TEXT:
326*7917SReza.Sabdar@Sun.COM 		struct ndmp_auth_text_v3	auth_text;
327*7917SReza.Sabdar@Sun.COM 	case NDMP_AUTH_MD5:
328*7917SReza.Sabdar@Sun.COM 		struct ndmp_auth_md5_v3	auth_md5;
329*7917SReza.Sabdar@Sun.COM };
330*7917SReza.Sabdar@Sun.COM 
331*7917SReza.Sabdar@Sun.COM struct ndmp_connect_client_auth_request_v3
332*7917SReza.Sabdar@Sun.COM {
333*7917SReza.Sabdar@Sun.COM 	ndmp_auth_data_v3	auth_data;
334*7917SReza.Sabdar@Sun.COM };
335*7917SReza.Sabdar@Sun.COM 
336*7917SReza.Sabdar@Sun.COM struct ndmp_connect_client_auth_reply_v3
337*7917SReza.Sabdar@Sun.COM {
338*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
339*7917SReza.Sabdar@Sun.COM };
340*7917SReza.Sabdar@Sun.COM 
341*7917SReza.Sabdar@Sun.COM /* NDMP_CONNECT_CLOSE - same as V2 */
342*7917SReza.Sabdar@Sun.COM 
343*7917SReza.Sabdar@Sun.COM /* NDMP_CONNECT_SERVER_AUTH - same as V2 */
344*7917SReza.Sabdar@Sun.COM 
345*7917SReza.Sabdar@Sun.COM 
346*7917SReza.Sabdar@Sun.COM /***************************/
347*7917SReza.Sabdar@Sun.COM /*  CONNECT INTERFACE (V4) */
348*7917SReza.Sabdar@Sun.COM /***************************/
349*7917SReza.Sabdar@Sun.COM 
350*7917SReza.Sabdar@Sun.COM /* NDMP_CONNECT_OPEN - same as V3 */
351*7917SReza.Sabdar@Sun.COM 
352*7917SReza.Sabdar@Sun.COM /* NDMP_CONNECT_CLIENT_AUTH - same as V3 */
353*7917SReza.Sabdar@Sun.COM 
354*7917SReza.Sabdar@Sun.COM /* NDMP_CONNECT_CLOSE - same as V3 */
355*7917SReza.Sabdar@Sun.COM 
356*7917SReza.Sabdar@Sun.COM /* NDMP_CONNECT_SERVER_AUTH - same as V3 */
357*7917SReza.Sabdar@Sun.COM 
358*7917SReza.Sabdar@Sun.COM 
359*7917SReza.Sabdar@Sun.COM /*************************/
360*7917SReza.Sabdar@Sun.COM /* CONFIG INTERFACE (V2) */
361*7917SReza.Sabdar@Sun.COM /*************************/
362*7917SReza.Sabdar@Sun.COM 
363*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_HOST_INFO */
364*7917SReza.Sabdar@Sun.COM /* no request arguments */
365*7917SReza.Sabdar@Sun.COM 
366*7917SReza.Sabdar@Sun.COM struct ndmp_config_get_host_info_reply
367*7917SReza.Sabdar@Sun.COM {
368*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
369*7917SReza.Sabdar@Sun.COM 	string		hostname<>;	/* host name */
370*7917SReza.Sabdar@Sun.COM 	string		os_type<>;	/* The operating system type (i.e. SOLARIS) */
371*7917SReza.Sabdar@Sun.COM 	string		os_vers<>;	/* The version number of the OS (i.e. 2.5) */
372*7917SReza.Sabdar@Sun.COM 	string		hostid<>;
373*7917SReza.Sabdar@Sun.COM 	ndmp_auth_type	auth_type<>;
374*7917SReza.Sabdar@Sun.COM };
375*7917SReza.Sabdar@Sun.COM 
376*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_BUTYPE_ATTR */
377*7917SReza.Sabdar@Sun.COM const NDMP_NO_BACKUP_FILELIST	= 0x0001;
378*7917SReza.Sabdar@Sun.COM const NDMP_NO_BACKUP_FHINFO	= 0x0002;
379*7917SReza.Sabdar@Sun.COM const NDMP_NO_RECOVER_FILELIST	= 0x0004;
380*7917SReza.Sabdar@Sun.COM const NDMP_NO_RECOVER_FHINFO	= 0x0008;
381*7917SReza.Sabdar@Sun.COM const NDMP_NO_RECOVER_SSID	= 0x0010;
382*7917SReza.Sabdar@Sun.COM const NDMP_NO_RECOVER_INC_ONLY	= 0x0020;
383*7917SReza.Sabdar@Sun.COM 
384*7917SReza.Sabdar@Sun.COM struct ndmp_config_get_butype_attr_request
385*7917SReza.Sabdar@Sun.COM {
386*7917SReza.Sabdar@Sun.COM 	string	name<>;		/* backup type name */
387*7917SReza.Sabdar@Sun.COM };
388*7917SReza.Sabdar@Sun.COM 
389*7917SReza.Sabdar@Sun.COM struct ndmp_config_get_butype_attr_reply
390*7917SReza.Sabdar@Sun.COM {
391*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
392*7917SReza.Sabdar@Sun.COM 	u_long		attrs;
393*7917SReza.Sabdar@Sun.COM };
394*7917SReza.Sabdar@Sun.COM 
395*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_MOVER_TYPE */
396*7917SReza.Sabdar@Sun.COM /* no request arguments */
397*7917SReza.Sabdar@Sun.COM 
398*7917SReza.Sabdar@Sun.COM enum ndmp_addr_type
399*7917SReza.Sabdar@Sun.COM {
400*7917SReza.Sabdar@Sun.COM 	NDMP_ADDR_LOCAL    = 0,
401*7917SReza.Sabdar@Sun.COM 	NDMP_ADDR_TCP      = 1,
402*7917SReza.Sabdar@Sun.COM 	NDMP_ADDR_FC       = 2, 	/* NDMP V2,3 */
403*7917SReza.Sabdar@Sun.COM 	NDMP_ADDR_IPC      = 3
404*7917SReza.Sabdar@Sun.COM };
405*7917SReza.Sabdar@Sun.COM 
406*7917SReza.Sabdar@Sun.COM struct ndmp_config_get_mover_type_reply
407*7917SReza.Sabdar@Sun.COM {
408*7917SReza.Sabdar@Sun.COM 	ndmp_error		error;
409*7917SReza.Sabdar@Sun.COM 	ndmp_addr_type		methods<>;
410*7917SReza.Sabdar@Sun.COM };
411*7917SReza.Sabdar@Sun.COM 
412*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_AUTH_ATTR */
413*7917SReza.Sabdar@Sun.COM struct ndmp_config_get_auth_attr_request
414*7917SReza.Sabdar@Sun.COM {
415*7917SReza.Sabdar@Sun.COM 	ndmp_auth_type	auth_type;
416*7917SReza.Sabdar@Sun.COM };
417*7917SReza.Sabdar@Sun.COM 
418*7917SReza.Sabdar@Sun.COM struct ndmp_config_get_auth_attr_reply
419*7917SReza.Sabdar@Sun.COM {
420*7917SReza.Sabdar@Sun.COM 	ndmp_error		error;
421*7917SReza.Sabdar@Sun.COM 	ndmp_auth_attr		server_attr;
422*7917SReza.Sabdar@Sun.COM };
423*7917SReza.Sabdar@Sun.COM 
424*7917SReza.Sabdar@Sun.COM 
425*7917SReza.Sabdar@Sun.COM /*************************/
426*7917SReza.Sabdar@Sun.COM /* CONFIG INTERFACE (V3) */
427*7917SReza.Sabdar@Sun.COM /*************************/
428*7917SReza.Sabdar@Sun.COM 
429*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_HOST_INFO */
430*7917SReza.Sabdar@Sun.COM /* no request arguments */
431*7917SReza.Sabdar@Sun.COM 
432*7917SReza.Sabdar@Sun.COM struct ndmp_config_get_host_info_reply_v3
433*7917SReza.Sabdar@Sun.COM {
434*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
435*7917SReza.Sabdar@Sun.COM 	string		hostname<>;	/* host name */
436*7917SReza.Sabdar@Sun.COM 	string		os_type<>;	/* The operating system type (i.e. SOLARIS) */
437*7917SReza.Sabdar@Sun.COM 	string		os_vers<>;	/* The version number of the OS (i.e. 2.5) */
438*7917SReza.Sabdar@Sun.COM 	string		hostid<>;
439*7917SReza.Sabdar@Sun.COM };
440*7917SReza.Sabdar@Sun.COM 
441*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_CONNECTION_TYPE */
442*7917SReza.Sabdar@Sun.COM /* no request arguments */
443*7917SReza.Sabdar@Sun.COM 
444*7917SReza.Sabdar@Sun.COM struct ndmp_config_get_connection_type_reply_v3
445*7917SReza.Sabdar@Sun.COM {
446*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
447*7917SReza.Sabdar@Sun.COM 	ndmp_addr_type	addr_types<>;
448*7917SReza.Sabdar@Sun.COM };
449*7917SReza.Sabdar@Sun.COM 
450*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_AUTH_ATTR - same as V2 */
451*7917SReza.Sabdar@Sun.COM 
452*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_SERVER_INFO */
453*7917SReza.Sabdar@Sun.COM /* no requset arguments */
454*7917SReza.Sabdar@Sun.COM 
455*7917SReza.Sabdar@Sun.COM struct ndmp_config_get_server_info_reply_v3
456*7917SReza.Sabdar@Sun.COM {
457*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
458*7917SReza.Sabdar@Sun.COM 	string		vendor_name<>;
459*7917SReza.Sabdar@Sun.COM 	string		product_name<>;
460*7917SReza.Sabdar@Sun.COM 	string		revision_number<>;
461*7917SReza.Sabdar@Sun.COM 	ndmp_auth_type	auth_type<>;
462*7917SReza.Sabdar@Sun.COM };
463*7917SReza.Sabdar@Sun.COM 
464*7917SReza.Sabdar@Sun.COM /* Backup type attributes */
465*7917SReza.Sabdar@Sun.COM const NDMP_BUTYPE_BACKUP_FILE_HISTORY	 = 0x0001;	/* NDMP V2,3 */
466*7917SReza.Sabdar@Sun.COM const NDMP_BUTYPE_BACKUP_FILELIST        = 0x0002;
467*7917SReza.Sabdar@Sun.COM const NDMP_BUTYPE_RECOVER_FILELIST       = 0x0004;
468*7917SReza.Sabdar@Sun.COM const NDMP_BUTYPE_BACKUP_DIRECT          = 0x0008;
469*7917SReza.Sabdar@Sun.COM const NDMP_BUTYPE_RECOVER_DIRECT         = 0x0010;
470*7917SReza.Sabdar@Sun.COM const NDMP_BUTYPE_BACKUP_INCREMENTAL     = 0x0020;
471*7917SReza.Sabdar@Sun.COM const NDMP_BUTYPE_RECOVER_INCREMENTAL    = 0x0040;
472*7917SReza.Sabdar@Sun.COM const NDMP_BUTYPE_BACKUP_UTF8            = 0x0080;
473*7917SReza.Sabdar@Sun.COM const NDMP_BUTYPE_RECOVER_UTF8           = 0x0100;
474*7917SReza.Sabdar@Sun.COM const NDMP_BUTYPE_BACKUP_FH_FILE         = 0x0200; 	/* NDMP V4 */
475*7917SReza.Sabdar@Sun.COM const NDMP_BUTYPE_BACKUP_FH_DIR          = 0x0400; 	/* NDMP V4 */
476*7917SReza.Sabdar@Sun.COM const NDMP_BUTYPE_RECOVER_FILEHIST       = 0x0800; 	/* NDMP V4 */
477*7917SReza.Sabdar@Sun.COM const NDMP_BUTYPE_RECOVER_FH_FILE        = 0x1000; 	/* NDMP V4 */
478*7917SReza.Sabdar@Sun.COM const NDMP_BUTYPE_RECOVER_FH_DIR         = 0x2000; 	/* NDMP V4 */
479*7917SReza.Sabdar@Sun.COM 
480*7917SReza.Sabdar@Sun.COM 
481*7917SReza.Sabdar@Sun.COM struct ndmp_butype_info
482*7917SReza.Sabdar@Sun.COM {
483*7917SReza.Sabdar@Sun.COM 	string		butype_name<>;
484*7917SReza.Sabdar@Sun.COM 	ndmp_pval	default_env<>;
485*7917SReza.Sabdar@Sun.COM 	u_long		attrs;
486*7917SReza.Sabdar@Sun.COM };
487*7917SReza.Sabdar@Sun.COM 
488*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_BUTYPE_INFO */
489*7917SReza.Sabdar@Sun.COM /* no request arguments */
490*7917SReza.Sabdar@Sun.COM 
491*7917SReza.Sabdar@Sun.COM struct ndmp_config_get_butype_info_reply_v3
492*7917SReza.Sabdar@Sun.COM {
493*7917SReza.Sabdar@Sun.COM 	ndmp_error		error;
494*7917SReza.Sabdar@Sun.COM 	ndmp_butype_info	butype_info<>;
495*7917SReza.Sabdar@Sun.COM };
496*7917SReza.Sabdar@Sun.COM 
497*7917SReza.Sabdar@Sun.COM /* invalid bit */
498*7917SReza.Sabdar@Sun.COM const	NDMP_FS_INFO_TOTAL_SIZE_INVALID 	= 0x00000001;
499*7917SReza.Sabdar@Sun.COM const	NDMP_FS_INFO_USED_SIZE_INVALID		= 0x00000002;
500*7917SReza.Sabdar@Sun.COM const	NDMP_FS_INFO_AVAIL_SIZE_INVALID		= 0x00000004;
501*7917SReza.Sabdar@Sun.COM const	NDMP_FS_INFO_TOTAL_INODES_INVALID	= 0x00000008;
502*7917SReza.Sabdar@Sun.COM const	NDMP_FS_INFO_USED_INODES_INVALID	= 0x00000010;
503*7917SReza.Sabdar@Sun.COM 
504*7917SReza.Sabdar@Sun.COM struct ndmp_fs_info_v3
505*7917SReza.Sabdar@Sun.COM {
506*7917SReza.Sabdar@Sun.COM 	u_long		invalid;
507*7917SReza.Sabdar@Sun.COM 	string		fs_type<>;
508*7917SReza.Sabdar@Sun.COM 	string		fs_logical_device<>;
509*7917SReza.Sabdar@Sun.COM 	string		fs_physical_device<>;
510*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	total_size;
511*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	used_size;
512*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	avail_size;
513*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	total_inodes;
514*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	used_inodes;
515*7917SReza.Sabdar@Sun.COM 	ndmp_pval	fs_env<>;
516*7917SReza.Sabdar@Sun.COM 	string		fs_status<>;
517*7917SReza.Sabdar@Sun.COM };
518*7917SReza.Sabdar@Sun.COM 
519*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_FS_INFO */
520*7917SReza.Sabdar@Sun.COM /* no request arguments */
521*7917SReza.Sabdar@Sun.COM 
522*7917SReza.Sabdar@Sun.COM struct ndmp_config_get_fs_info_reply_v3
523*7917SReza.Sabdar@Sun.COM {
524*7917SReza.Sabdar@Sun.COM 	ndmp_error		error;
525*7917SReza.Sabdar@Sun.COM 	ndmp_fs_info_v3		fs_info<>;
526*7917SReza.Sabdar@Sun.COM };
527*7917SReza.Sabdar@Sun.COM 
528*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_TAPE_INFO */
529*7917SReza.Sabdar@Sun.COM /* no request arguments */
530*7917SReza.Sabdar@Sun.COM 
531*7917SReza.Sabdar@Sun.COM /* tape attributes */
532*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_ATTR_REWIND = 0x00000001;
533*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_ATTR_UNLOAD = 0x00000002;
534*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_ATTR_RAW    = 0x00000004;
535*7917SReza.Sabdar@Sun.COM 
536*7917SReza.Sabdar@Sun.COM 
537*7917SReza.Sabdar@Sun.COM struct ndmp_device_capability_v3
538*7917SReza.Sabdar@Sun.COM {
539*7917SReza.Sabdar@Sun.COM 	string		device<>;
540*7917SReza.Sabdar@Sun.COM 	u_long		attr;
541*7917SReza.Sabdar@Sun.COM 	ndmp_pval	capability<>;
542*7917SReza.Sabdar@Sun.COM };
543*7917SReza.Sabdar@Sun.COM 
544*7917SReza.Sabdar@Sun.COM struct ndmp_device_info_v3
545*7917SReza.Sabdar@Sun.COM {
546*7917SReza.Sabdar@Sun.COM 	string				model<>;
547*7917SReza.Sabdar@Sun.COM 	ndmp_device_capability_v3	caplist<>;
548*7917SReza.Sabdar@Sun.COM 
549*7917SReza.Sabdar@Sun.COM };
550*7917SReza.Sabdar@Sun.COM struct ndmp_config_get_tape_info_reply_v3
551*7917SReza.Sabdar@Sun.COM {
552*7917SReza.Sabdar@Sun.COM 	ndmp_error		error;
553*7917SReza.Sabdar@Sun.COM 	ndmp_device_info_v3	tape_info<>;
554*7917SReza.Sabdar@Sun.COM 
555*7917SReza.Sabdar@Sun.COM };
556*7917SReza.Sabdar@Sun.COM 
557*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_SCSI_INFO */
558*7917SReza.Sabdar@Sun.COM 
559*7917SReza.Sabdar@Sun.COM /* jukebox attributes */
560*7917SReza.Sabdar@Sun.COM struct ndmp_config_get_scsi_info_reply_v3
561*7917SReza.Sabdar@Sun.COM {
562*7917SReza.Sabdar@Sun.COM 	ndmp_error		error;
563*7917SReza.Sabdar@Sun.COM 	ndmp_device_info_v3	scsi_info<>;
564*7917SReza.Sabdar@Sun.COM };
565*7917SReza.Sabdar@Sun.COM 
566*7917SReza.Sabdar@Sun.COM 
567*7917SReza.Sabdar@Sun.COM /*************************/
568*7917SReza.Sabdar@Sun.COM /* CONFIG INTERFACE (V4) */
569*7917SReza.Sabdar@Sun.COM /*************************/
570*7917SReza.Sabdar@Sun.COM 
571*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_HOST_INFO - same as V3 */
572*7917SReza.Sabdar@Sun.COM 
573*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_SERVER_INFO - same as V3 */
574*7917SReza.Sabdar@Sun.COM 
575*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_CONNECTION_TYPE - same as V3 */
576*7917SReza.Sabdar@Sun.COM 
577*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_AUTH_ATTR - same as V3 */
578*7917SReza.Sabdar@Sun.COM 
579*7917SReza.Sabdar@Sun.COM 
580*7917SReza.Sabdar@Sun.COM struct ndmp_config_get_butype_info_reply_v4
581*7917SReza.Sabdar@Sun.COM {
582*7917SReza.Sabdar@Sun.COM 	ndmp_error            error;
583*7917SReza.Sabdar@Sun.COM 	ndmp_butype_info      butype_info<>;
584*7917SReza.Sabdar@Sun.COM };
585*7917SReza.Sabdar@Sun.COM 
586*7917SReza.Sabdar@Sun.COM 
587*7917SReza.Sabdar@Sun.COM /* NDMP_CONFIG_GET_FS_INFO - same as V3 */
588*7917SReza.Sabdar@Sun.COM 
589*7917SReza.Sabdar@Sun.COM struct ndmp_class_list
590*7917SReza.Sabdar@Sun.COM {
591*7917SReza.Sabdar@Sun.COM 	u_short      ext_class_id;
592*7917SReza.Sabdar@Sun.COM 	u_short      ext_version<>;
593*7917SReza.Sabdar@Sun.COM };
594*7917SReza.Sabdar@Sun.COM 
595*7917SReza.Sabdar@Sun.COM struct ndmp_class_version
596*7917SReza.Sabdar@Sun.COM {
597*7917SReza.Sabdar@Sun.COM 	u_short      ext_class_id;
598*7917SReza.Sabdar@Sun.COM 	u_short      ext_version;
599*7917SReza.Sabdar@Sun.COM };
600*7917SReza.Sabdar@Sun.COM 
601*7917SReza.Sabdar@Sun.COM struct ndmp_config_get_ext_list_reply
602*7917SReza.Sabdar@Sun.COM {
603*7917SReza.Sabdar@Sun.COM 	ndmp_error         error;
604*7917SReza.Sabdar@Sun.COM 	ndmp_class_list    class_list<>;
605*7917SReza.Sabdar@Sun.COM };
606*7917SReza.Sabdar@Sun.COM 
607*7917SReza.Sabdar@Sun.COM struct ndmp_config_set_ext_list_request
608*7917SReza.Sabdar@Sun.COM {
609*7917SReza.Sabdar@Sun.COM 	ndmp_class_version    ndmp_selected_ext<>;
610*7917SReza.Sabdar@Sun.COM };
611*7917SReza.Sabdar@Sun.COM 
612*7917SReza.Sabdar@Sun.COM struct ndmp_config_set_ext_list_reply
613*7917SReza.Sabdar@Sun.COM {
614*7917SReza.Sabdar@Sun.COM 	ndmp_error      error;
615*7917SReza.Sabdar@Sun.COM };
616*7917SReza.Sabdar@Sun.COM 
617*7917SReza.Sabdar@Sun.COM 
618*7917SReza.Sabdar@Sun.COM /***********************/
619*7917SReza.Sabdar@Sun.COM /* SCSI INTERFACE (V2) */
620*7917SReza.Sabdar@Sun.COM /***********************/
621*7917SReza.Sabdar@Sun.COM 
622*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_OPEN */
623*7917SReza.Sabdar@Sun.COM struct ndmp_scsi_open_request
624*7917SReza.Sabdar@Sun.COM {
625*7917SReza.Sabdar@Sun.COM 	ndmp_scsi_device	device;
626*7917SReza.Sabdar@Sun.COM };
627*7917SReza.Sabdar@Sun.COM 
628*7917SReza.Sabdar@Sun.COM struct ndmp_scsi_open_reply
629*7917SReza.Sabdar@Sun.COM {
630*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
631*7917SReza.Sabdar@Sun.COM };
632*7917SReza.Sabdar@Sun.COM 
633*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_CLOSE */
634*7917SReza.Sabdar@Sun.COM /* no request arguments */
635*7917SReza.Sabdar@Sun.COM 
636*7917SReza.Sabdar@Sun.COM struct ndmp_scsi_close_reply
637*7917SReza.Sabdar@Sun.COM {
638*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
639*7917SReza.Sabdar@Sun.COM };
640*7917SReza.Sabdar@Sun.COM 
641*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_GET_STATE */
642*7917SReza.Sabdar@Sun.COM /* no request arguments */
643*7917SReza.Sabdar@Sun.COM 
644*7917SReza.Sabdar@Sun.COM struct ndmp_scsi_get_state_reply
645*7917SReza.Sabdar@Sun.COM {
646*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
647*7917SReza.Sabdar@Sun.COM 	short		target_controller;
648*7917SReza.Sabdar@Sun.COM 	short		target_id;
649*7917SReza.Sabdar@Sun.COM 	short		target_lun;
650*7917SReza.Sabdar@Sun.COM };
651*7917SReza.Sabdar@Sun.COM 
652*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_SET_TARGET */
653*7917SReza.Sabdar@Sun.COM struct ndmp_scsi_set_target_request
654*7917SReza.Sabdar@Sun.COM {
655*7917SReza.Sabdar@Sun.COM 	ndmp_scsi_device	device;
656*7917SReza.Sabdar@Sun.COM 	u_short			target_controller;
657*7917SReza.Sabdar@Sun.COM 	u_short			target_id;
658*7917SReza.Sabdar@Sun.COM 	u_short			target_lun;
659*7917SReza.Sabdar@Sun.COM };
660*7917SReza.Sabdar@Sun.COM 
661*7917SReza.Sabdar@Sun.COM struct ndmp_scsi_set_target_reply
662*7917SReza.Sabdar@Sun.COM {
663*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
664*7917SReza.Sabdar@Sun.COM };
665*7917SReza.Sabdar@Sun.COM 
666*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_RESET_DEVICE */
667*7917SReza.Sabdar@Sun.COM /* no request arguments */
668*7917SReza.Sabdar@Sun.COM 
669*7917SReza.Sabdar@Sun.COM struct ndmp_scsi_reset_device_reply
670*7917SReza.Sabdar@Sun.COM {
671*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
672*7917SReza.Sabdar@Sun.COM };
673*7917SReza.Sabdar@Sun.COM 
674*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_RESET_BUS */
675*7917SReza.Sabdar@Sun.COM /* no request arguments */
676*7917SReza.Sabdar@Sun.COM 
677*7917SReza.Sabdar@Sun.COM struct ndmp_scsi_reset_bus_reply
678*7917SReza.Sabdar@Sun.COM {
679*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
680*7917SReza.Sabdar@Sun.COM };
681*7917SReza.Sabdar@Sun.COM 
682*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_EXECUTE_CDB */
683*7917SReza.Sabdar@Sun.COM const NDMP_SCSI_DATA_IN		= 0x00000001;	/* Expect data from SCSI device */
684*7917SReza.Sabdar@Sun.COM const NDMP_SCSI_DATA_OUT	= 0x00000002;	/* Transfer data to SCSI device */
685*7917SReza.Sabdar@Sun.COM 
686*7917SReza.Sabdar@Sun.COM struct ndmp_execute_cdb_request
687*7917SReza.Sabdar@Sun.COM {
688*7917SReza.Sabdar@Sun.COM 	u_long	flags;
689*7917SReza.Sabdar@Sun.COM 	u_long	timeout;
690*7917SReza.Sabdar@Sun.COM 	u_long	datain_len;		/* Set for expected datain */
691*7917SReza.Sabdar@Sun.COM 	opaque	cdb<>;
692*7917SReza.Sabdar@Sun.COM 	opaque	dataout<>;
693*7917SReza.Sabdar@Sun.COM };
694*7917SReza.Sabdar@Sun.COM 
695*7917SReza.Sabdar@Sun.COM struct ndmp_execute_cdb_reply
696*7917SReza.Sabdar@Sun.COM {
697*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
698*7917SReza.Sabdar@Sun.COM 	u_char		status;		/* SCSI status bytes */
699*7917SReza.Sabdar@Sun.COM 	u_long		dataout_len;
700*7917SReza.Sabdar@Sun.COM 	opaque		datain<>;	/* SCSI datain */
701*7917SReza.Sabdar@Sun.COM 	opaque		ext_sense<>;	/* Extended sense data */
702*7917SReza.Sabdar@Sun.COM };
703*7917SReza.Sabdar@Sun.COM 
704*7917SReza.Sabdar@Sun.COM 
705*7917SReza.Sabdar@Sun.COM /***********************/
706*7917SReza.Sabdar@Sun.COM /* SCSI INTERFACE (V3) */
707*7917SReza.Sabdar@Sun.COM /***********************/
708*7917SReza.Sabdar@Sun.COM 
709*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_OPEN */
710*7917SReza.Sabdar@Sun.COM struct ndmp_scsi_open_request_v3
711*7917SReza.Sabdar@Sun.COM {
712*7917SReza.Sabdar@Sun.COM 	string	device<>;
713*7917SReza.Sabdar@Sun.COM };
714*7917SReza.Sabdar@Sun.COM /* reply the same as V2 */
715*7917SReza.Sabdar@Sun.COM 
716*7917SReza.Sabdar@Sun.COM 
717*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_CLOSE - same as V2 */
718*7917SReza.Sabdar@Sun.COM 
719*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_GET_STATE - same as V2 */
720*7917SReza.Sabdar@Sun.COM 
721*7917SReza.Sabdar@Sun.COM struct ndmp_scsi_set_target_request_v3
722*7917SReza.Sabdar@Sun.COM {
723*7917SReza.Sabdar@Sun.COM 	string		device<>;
724*7917SReza.Sabdar@Sun.COM 	u_short		target_controller;
725*7917SReza.Sabdar@Sun.COM 	u_short		target_id;
726*7917SReza.Sabdar@Sun.COM 	u_short		target_lun;
727*7917SReza.Sabdar@Sun.COM };
728*7917SReza.Sabdar@Sun.COM /* reply the same as V2 */
729*7917SReza.Sabdar@Sun.COM 
730*7917SReza.Sabdar@Sun.COM 
731*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_RESET_DEVICE - same as V2 */
732*7917SReza.Sabdar@Sun.COM 
733*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_RESET_BUS - same as V2 */
734*7917SReza.Sabdar@Sun.COM 
735*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_EXECUTE_CDB - same as V2 */
736*7917SReza.Sabdar@Sun.COM 
737*7917SReza.Sabdar@Sun.COM 
738*7917SReza.Sabdar@Sun.COM /***********************/
739*7917SReza.Sabdar@Sun.COM /* SCSI INTERFACE (V4) */
740*7917SReza.Sabdar@Sun.COM /***********************/
741*7917SReza.Sabdar@Sun.COM 
742*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_OPEN - same as V3 */
743*7917SReza.Sabdar@Sun.COM 
744*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_CLOSE - same as V3 */
745*7917SReza.Sabdar@Sun.COM 
746*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_GET_STATE - same as V3 */
747*7917SReza.Sabdar@Sun.COM 
748*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_RESET_DEVICE - same as V3 */
749*7917SReza.Sabdar@Sun.COM 
750*7917SReza.Sabdar@Sun.COM /* NDMP_SCSI_EXECUTE_CDB - same as V3 */
751*7917SReza.Sabdar@Sun.COM 
752*7917SReza.Sabdar@Sun.COM 
753*7917SReza.Sabdar@Sun.COM /***********************/
754*7917SReza.Sabdar@Sun.COM /* TAPE INTERFACE (V2) */
755*7917SReza.Sabdar@Sun.COM /***********************/
756*7917SReza.Sabdar@Sun.COM 
757*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_OPEN */
758*7917SReza.Sabdar@Sun.COM enum ndmp_tape_open_mode
759*7917SReza.Sabdar@Sun.COM {
760*7917SReza.Sabdar@Sun.COM 	NDMP_TAPE_READ_MODE,
761*7917SReza.Sabdar@Sun.COM 	NDMP_TAPE_WRITE_MODE,
762*7917SReza.Sabdar@Sun.COM 	NDMP_TAPE_RAW_MODE,				/* NDMP V4 */
763*7917SReza.Sabdar@Sun.COM 	NDMP_TAPE_RAW1_MODE = 0x7fffffff,		/* NDMP V3 */
764*7917SReza.Sabdar@Sun.COM 	NDMP_TAPE_RAW2_MODE = NDMP_TAPE_RAW_MODE	/* NDMP V3 */
765*7917SReza.Sabdar@Sun.COM 
766*7917SReza.Sabdar@Sun.COM };
767*7917SReza.Sabdar@Sun.COM 
768*7917SReza.Sabdar@Sun.COM struct ndmp_tape_open_request
769*7917SReza.Sabdar@Sun.COM {
770*7917SReza.Sabdar@Sun.COM 	ndmp_tape_device	device;
771*7917SReza.Sabdar@Sun.COM 	ndmp_tape_open_mode	mode;
772*7917SReza.Sabdar@Sun.COM };
773*7917SReza.Sabdar@Sun.COM 
774*7917SReza.Sabdar@Sun.COM struct ndmp_tape_open_reply
775*7917SReza.Sabdar@Sun.COM {
776*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
777*7917SReza.Sabdar@Sun.COM };
778*7917SReza.Sabdar@Sun.COM 
779*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_CLOSE */
780*7917SReza.Sabdar@Sun.COM /* no request arguments */
781*7917SReza.Sabdar@Sun.COM struct ndmp_tape_close_reply
782*7917SReza.Sabdar@Sun.COM {
783*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
784*7917SReza.Sabdar@Sun.COM };
785*7917SReza.Sabdar@Sun.COM 
786*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_GET_STATE */
787*7917SReza.Sabdar@Sun.COM /* no request arguments */
788*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_NOREWIND	= 0x0008;	/* non-rewind device */
789*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_WR_PROT		= 0x0010;	/* write-protected */
790*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_ERROR		= 0x0020;	/* media error */
791*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_UNLOAD		= 0x0040;	/* tape will be unloaded when the device is closed */
792*7917SReza.Sabdar@Sun.COM 
793*7917SReza.Sabdar@Sun.COM struct ndmp_tape_get_state_reply
794*7917SReza.Sabdar@Sun.COM {
795*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
796*7917SReza.Sabdar@Sun.COM 	u_long		flags;
797*7917SReza.Sabdar@Sun.COM 	u_long		file_num;
798*7917SReza.Sabdar@Sun.COM 	u_long		soft_errors;
799*7917SReza.Sabdar@Sun.COM 	u_long		block_size;
800*7917SReza.Sabdar@Sun.COM 	u_long		blockno;
801*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	total_space;
802*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	space_remain;
803*7917SReza.Sabdar@Sun.COM };
804*7917SReza.Sabdar@Sun.COM 
805*7917SReza.Sabdar@Sun.COM enum ndmp_tape_mtio_op
806*7917SReza.Sabdar@Sun.COM {
807*7917SReza.Sabdar@Sun.COM 	NDMP_MTIO_FSF  = 0,
808*7917SReza.Sabdar@Sun.COM 	NDMP_MTIO_BSF  = 1,
809*7917SReza.Sabdar@Sun.COM 	NDMP_MTIO_FSR  = 2,
810*7917SReza.Sabdar@Sun.COM 	NDMP_MTIO_BSR  = 3,
811*7917SReza.Sabdar@Sun.COM 	NDMP_MTIO_REW  = 4,
812*7917SReza.Sabdar@Sun.COM 	NDMP_MTIO_EOF  = 5,
813*7917SReza.Sabdar@Sun.COM 	NDMP_MTIO_OFF  = 6,
814*7917SReza.Sabdar@Sun.COM 	NDMP_MTIO_TUR  = 7 	/* NDMP V4 */
815*7917SReza.Sabdar@Sun.COM };
816*7917SReza.Sabdar@Sun.COM 
817*7917SReza.Sabdar@Sun.COM 
818*7917SReza.Sabdar@Sun.COM struct ndmp_tape_mtio_request
819*7917SReza.Sabdar@Sun.COM {
820*7917SReza.Sabdar@Sun.COM 	ndmp_tape_mtio_op	tape_op;
821*7917SReza.Sabdar@Sun.COM 	u_long			count;
822*7917SReza.Sabdar@Sun.COM };
823*7917SReza.Sabdar@Sun.COM 
824*7917SReza.Sabdar@Sun.COM struct ndmp_tape_mtio_reply
825*7917SReza.Sabdar@Sun.COM {
826*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
827*7917SReza.Sabdar@Sun.COM 	u_long		resid_count;
828*7917SReza.Sabdar@Sun.COM };
829*7917SReza.Sabdar@Sun.COM 
830*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_WRITE */
831*7917SReza.Sabdar@Sun.COM struct ndmp_tape_write_request
832*7917SReza.Sabdar@Sun.COM {
833*7917SReza.Sabdar@Sun.COM 	opaque	data_out<>;
834*7917SReza.Sabdar@Sun.COM };
835*7917SReza.Sabdar@Sun.COM 
836*7917SReza.Sabdar@Sun.COM struct ndmp_tape_write_reply
837*7917SReza.Sabdar@Sun.COM {
838*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
839*7917SReza.Sabdar@Sun.COM 	u_long		count;
840*7917SReza.Sabdar@Sun.COM };
841*7917SReza.Sabdar@Sun.COM 
842*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_READ */
843*7917SReza.Sabdar@Sun.COM struct ndmp_tape_read_request
844*7917SReza.Sabdar@Sun.COM {
845*7917SReza.Sabdar@Sun.COM 	u_long	count;
846*7917SReza.Sabdar@Sun.COM };
847*7917SReza.Sabdar@Sun.COM 
848*7917SReza.Sabdar@Sun.COM struct ndmp_tape_read_reply
849*7917SReza.Sabdar@Sun.COM {
850*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
851*7917SReza.Sabdar@Sun.COM 	opaque		data_in<>;
852*7917SReza.Sabdar@Sun.COM };
853*7917SReza.Sabdar@Sun.COM 
854*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_EXECUTE_CDB */
855*7917SReza.Sabdar@Sun.COM typedef ndmp_execute_cdb_request	ndmp_tape_execute_cdb_request;
856*7917SReza.Sabdar@Sun.COM typedef ndmp_execute_cdb_reply		ndmp_tape_execute_cdb_reply;
857*7917SReza.Sabdar@Sun.COM 
858*7917SReza.Sabdar@Sun.COM 
859*7917SReza.Sabdar@Sun.COM /***********************/
860*7917SReza.Sabdar@Sun.COM /* TAPE INTERFACE (V3) */
861*7917SReza.Sabdar@Sun.COM /***********************/
862*7917SReza.Sabdar@Sun.COM 
863*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_OPEN */
864*7917SReza.Sabdar@Sun.COM struct ndmp_tape_open_request_v3
865*7917SReza.Sabdar@Sun.COM {
866*7917SReza.Sabdar@Sun.COM 	string	device<>;
867*7917SReza.Sabdar@Sun.COM 	ndmp_tape_open_mode	mode;
868*7917SReza.Sabdar@Sun.COM };
869*7917SReza.Sabdar@Sun.COM /* reply the same as V2 */
870*7917SReza.Sabdar@Sun.COM 
871*7917SReza.Sabdar@Sun.COM 
872*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_CLOSE - same as V2 */
873*7917SReza.Sabdar@Sun.COM 
874*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_GET_STATE */
875*7917SReza.Sabdar@Sun.COM /* no request arguments */
876*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_STATE_NOREWIND	= 0x0008;	/* non-rewind device */
877*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_STATE_WR_PROT	= 0x0010;	/* write-protected */
878*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_STATE_ERROR	= 0x0020;	/* media error */
879*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_STATE_UNLOAD	= 0x0040;	/* tape will be unloaded when the device is closed */
880*7917SReza.Sabdar@Sun.COM 
881*7917SReza.Sabdar@Sun.COM /* invalid bit */
882*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_STATE_FILE_NUM_INVALID		= 0x00000001;
883*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_STATE_SOFT_ERRORS_INVALID	= 0x00000002;
884*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_STATE_BLOCK_SIZE_INVALID	= 0x00000004;
885*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_STATE_BLOCKNO_INVALID		= 0x00000008;
886*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_STATE_TOTAL_SPACE_INVALID	= 0x00000010;
887*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_STATE_SPACE_REMAIN_INVALID	= 0x00000020;
888*7917SReza.Sabdar@Sun.COM const NDMP_TAPE_STATE_PARTITION_INVALID		= 0x00000040;
889*7917SReza.Sabdar@Sun.COM 
890*7917SReza.Sabdar@Sun.COM struct ndmp_tape_get_state_reply_v3
891*7917SReza.Sabdar@Sun.COM {
892*7917SReza.Sabdar@Sun.COM 	u_long		invalid;
893*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
894*7917SReza.Sabdar@Sun.COM 	u_long		flags;
895*7917SReza.Sabdar@Sun.COM 	u_long		file_num;
896*7917SReza.Sabdar@Sun.COM 	u_long		soft_errors;
897*7917SReza.Sabdar@Sun.COM 	u_long		block_size;
898*7917SReza.Sabdar@Sun.COM 	u_long		blockno;
899*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	total_space;
900*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	space_remain;
901*7917SReza.Sabdar@Sun.COM 	u_long		partition;
902*7917SReza.Sabdar@Sun.COM };
903*7917SReza.Sabdar@Sun.COM 
904*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_MTIO - same as V2 */
905*7917SReza.Sabdar@Sun.COM 
906*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_WRITE - same as V2 */
907*7917SReza.Sabdar@Sun.COM 
908*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_READ - same as V2 */
909*7917SReza.Sabdar@Sun.COM 
910*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_EXECUTE_CDB - same as V2 */
911*7917SReza.Sabdar@Sun.COM 
912*7917SReza.Sabdar@Sun.COM 
913*7917SReza.Sabdar@Sun.COM /***********************/
914*7917SReza.Sabdar@Sun.COM /* TAPE INTERFACE (V4) */
915*7917SReza.Sabdar@Sun.COM /***********************/
916*7917SReza.Sabdar@Sun.COM 
917*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_OPEN - same as V3 */
918*7917SReza.Sabdar@Sun.COM 
919*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_CLOSE - same as V3 */
920*7917SReza.Sabdar@Sun.COM 
921*7917SReza.Sabdar@Sun.COM struct ndmp_tape_get_state_reply_v4
922*7917SReza.Sabdar@Sun.COM {
923*7917SReza.Sabdar@Sun.COM 	u_long       unsupported;
924*7917SReza.Sabdar@Sun.COM 	ndmp_error   error;
925*7917SReza.Sabdar@Sun.COM 	u_long       flags;
926*7917SReza.Sabdar@Sun.COM 	u_long       file_num;
927*7917SReza.Sabdar@Sun.COM 	u_long       soft_errors;
928*7917SReza.Sabdar@Sun.COM 	u_long       block_size;
929*7917SReza.Sabdar@Sun.COM 	u_long       blockno;
930*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad  total_space;
931*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad  space_remain;
932*7917SReza.Sabdar@Sun.COM };
933*7917SReza.Sabdar@Sun.COM 
934*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_MTIO - same as V3 */
935*7917SReza.Sabdar@Sun.COM 
936*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_WRITE - same as V3 */
937*7917SReza.Sabdar@Sun.COM 
938*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_READ - same as V3 */
939*7917SReza.Sabdar@Sun.COM 
940*7917SReza.Sabdar@Sun.COM /* NDMP_TAPE_EXECUTE_CDB - same as V3 */
941*7917SReza.Sabdar@Sun.COM 
942*7917SReza.Sabdar@Sun.COM 
943*7917SReza.Sabdar@Sun.COM /************************/
944*7917SReza.Sabdar@Sun.COM /* MOVER INTERFACE (V2) */
945*7917SReza.Sabdar@Sun.COM /************************/
946*7917SReza.Sabdar@Sun.COM enum ndmp_mover_mode
947*7917SReza.Sabdar@Sun.COM {
948*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_MODE_READ            = 0,
949*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_MODE_WRITE           = 1,
950*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_MODE_NOACTION        = 2  	/* NDMP V4 */
951*7917SReza.Sabdar@Sun.COM };
952*7917SReza.Sabdar@Sun.COM 
953*7917SReza.Sabdar@Sun.COM enum ndmp_mover_state
954*7917SReza.Sabdar@Sun.COM {
955*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_STATE_IDLE    = 0,
956*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_STATE_LISTEN  = 1,
957*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_STATE_ACTIVE  = 2,
958*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_STATE_PAUSED  = 3,
959*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_STATE_HALTED  = 4
960*7917SReza.Sabdar@Sun.COM };
961*7917SReza.Sabdar@Sun.COM 
962*7917SReza.Sabdar@Sun.COM enum ndmp_mover_pause_reason
963*7917SReza.Sabdar@Sun.COM {
964*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_PAUSE_NA    = 0,
965*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_PAUSE_EOM   = 1,
966*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_PAUSE_EOF   = 2,
967*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_PAUSE_SEEK  = 3,
968*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_PAUSE_MEDIA_ERROR = 4, 	/* NDMP V2,3 */
969*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_PAUSE_EOW  = 5
970*7917SReza.Sabdar@Sun.COM };
971*7917SReza.Sabdar@Sun.COM 
972*7917SReza.Sabdar@Sun.COM enum ndmp_mover_halt_reason
973*7917SReza.Sabdar@Sun.COM {
974*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_HALT_NA             = 0,
975*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_HALT_CONNECT_CLOSED = 1,
976*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_HALT_ABORTED        = 2,
977*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_HALT_INTERNAL_ERROR = 3,
978*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_HALT_CONNECT_ERROR  = 4,
979*7917SReza.Sabdar@Sun.COM 	NDMP_MOVER_HALT_MEDIA_ERROR    = 5 	/* NDMP V4 */
980*7917SReza.Sabdar@Sun.COM };
981*7917SReza.Sabdar@Sun.COM 
982*7917SReza.Sabdar@Sun.COM 
983*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_GET_STATE */
984*7917SReza.Sabdar@Sun.COM 
985*7917SReza.Sabdar@Sun.COM /* no request arguments */
986*7917SReza.Sabdar@Sun.COM struct ndmp_mover_get_state_reply
987*7917SReza.Sabdar@Sun.COM {
988*7917SReza.Sabdar@Sun.COM 	ndmp_error		error;
989*7917SReza.Sabdar@Sun.COM 	ndmp_mover_state	state;
990*7917SReza.Sabdar@Sun.COM 	ndmp_mover_pause_reason	pause_reason;
991*7917SReza.Sabdar@Sun.COM 	ndmp_mover_halt_reason	halt_reason;
992*7917SReza.Sabdar@Sun.COM 	u_long			record_size;
993*7917SReza.Sabdar@Sun.COM 	u_long			record_num;
994*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		data_written;
995*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		seek_position;
996*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		bytes_left_to_read;
997*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		window_offset;
998*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		window_length;
999*7917SReza.Sabdar@Sun.COM };
1000*7917SReza.Sabdar@Sun.COM 
1001*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_LISTEN */
1002*7917SReza.Sabdar@Sun.COM 
1003*7917SReza.Sabdar@Sun.COM struct ndmp_tcp_addr
1004*7917SReza.Sabdar@Sun.COM {
1005*7917SReza.Sabdar@Sun.COM 	u_long	ip_addr;
1006*7917SReza.Sabdar@Sun.COM 	u_short	port;
1007*7917SReza.Sabdar@Sun.COM };
1008*7917SReza.Sabdar@Sun.COM 
1009*7917SReza.Sabdar@Sun.COM union ndmp_mover_addr switch (ndmp_addr_type addr_type)
1010*7917SReza.Sabdar@Sun.COM {
1011*7917SReza.Sabdar@Sun.COM 	case NDMP_ADDR_LOCAL:
1012*7917SReza.Sabdar@Sun.COM 		void;
1013*7917SReza.Sabdar@Sun.COM 	case NDMP_ADDR_TCP:
1014*7917SReza.Sabdar@Sun.COM 	  ndmp_tcp_addr	addr;
1015*7917SReza.Sabdar@Sun.COM };
1016*7917SReza.Sabdar@Sun.COM 
1017*7917SReza.Sabdar@Sun.COM struct ndmp_mover_listen_request
1018*7917SReza.Sabdar@Sun.COM {
1019*7917SReza.Sabdar@Sun.COM 	ndmp_mover_mode		mode;
1020*7917SReza.Sabdar@Sun.COM 	ndmp_addr_type		addr_type;
1021*7917SReza.Sabdar@Sun.COM };
1022*7917SReza.Sabdar@Sun.COM 
1023*7917SReza.Sabdar@Sun.COM struct ndmp_mover_listen_reply
1024*7917SReza.Sabdar@Sun.COM {
1025*7917SReza.Sabdar@Sun.COM 	ndmp_error		error;
1026*7917SReza.Sabdar@Sun.COM 	ndmp_mover_addr		mover;
1027*7917SReza.Sabdar@Sun.COM };
1028*7917SReza.Sabdar@Sun.COM 
1029*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_SET_RECORD_SIZE */
1030*7917SReza.Sabdar@Sun.COM struct ndmp_mover_set_record_size_request
1031*7917SReza.Sabdar@Sun.COM {
1032*7917SReza.Sabdar@Sun.COM 	u_long	len;
1033*7917SReza.Sabdar@Sun.COM };
1034*7917SReza.Sabdar@Sun.COM 
1035*7917SReza.Sabdar@Sun.COM struct ndmp_mover_set_record_size_reply
1036*7917SReza.Sabdar@Sun.COM {
1037*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1038*7917SReza.Sabdar@Sun.COM };
1039*7917SReza.Sabdar@Sun.COM 
1040*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_SET_WINDOW */
1041*7917SReza.Sabdar@Sun.COM struct ndmp_mover_set_window_request
1042*7917SReza.Sabdar@Sun.COM {
1043*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	offset;
1044*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	length;
1045*7917SReza.Sabdar@Sun.COM };
1046*7917SReza.Sabdar@Sun.COM 
1047*7917SReza.Sabdar@Sun.COM struct ndmp_mover_set_window_reply
1048*7917SReza.Sabdar@Sun.COM {
1049*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1050*7917SReza.Sabdar@Sun.COM };
1051*7917SReza.Sabdar@Sun.COM 
1052*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_CONTINUE */
1053*7917SReza.Sabdar@Sun.COM /* no request arguments */
1054*7917SReza.Sabdar@Sun.COM 
1055*7917SReza.Sabdar@Sun.COM struct ndmp_mover_continue_reply
1056*7917SReza.Sabdar@Sun.COM {
1057*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1058*7917SReza.Sabdar@Sun.COM };
1059*7917SReza.Sabdar@Sun.COM 
1060*7917SReza.Sabdar@Sun.COM 
1061*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_ABORT */
1062*7917SReza.Sabdar@Sun.COM /* no request arguments */
1063*7917SReza.Sabdar@Sun.COM struct ndmp_mover_abort_reply
1064*7917SReza.Sabdar@Sun.COM {
1065*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1066*7917SReza.Sabdar@Sun.COM };
1067*7917SReza.Sabdar@Sun.COM 
1068*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_STOP */
1069*7917SReza.Sabdar@Sun.COM /* no request arguments */
1070*7917SReza.Sabdar@Sun.COM 
1071*7917SReza.Sabdar@Sun.COM struct ndmp_mover_stop_reply
1072*7917SReza.Sabdar@Sun.COM {
1073*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1074*7917SReza.Sabdar@Sun.COM };
1075*7917SReza.Sabdar@Sun.COM 
1076*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_READ */
1077*7917SReza.Sabdar@Sun.COM struct ndmp_mover_read_request
1078*7917SReza.Sabdar@Sun.COM {
1079*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	offset;
1080*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	length;
1081*7917SReza.Sabdar@Sun.COM };
1082*7917SReza.Sabdar@Sun.COM 
1083*7917SReza.Sabdar@Sun.COM struct ndmp_mover_read_reply
1084*7917SReza.Sabdar@Sun.COM {
1085*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1086*7917SReza.Sabdar@Sun.COM };
1087*7917SReza.Sabdar@Sun.COM 
1088*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_CLOSE */
1089*7917SReza.Sabdar@Sun.COM /* no request arguments */
1090*7917SReza.Sabdar@Sun.COM 
1091*7917SReza.Sabdar@Sun.COM struct ndmp_mover_close_reply
1092*7917SReza.Sabdar@Sun.COM {
1093*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1094*7917SReza.Sabdar@Sun.COM };
1095*7917SReza.Sabdar@Sun.COM 
1096*7917SReza.Sabdar@Sun.COM 
1097*7917SReza.Sabdar@Sun.COM /************************/
1098*7917SReza.Sabdar@Sun.COM /* MOVER INTERFACE (V3) */
1099*7917SReza.Sabdar@Sun.COM /************************/
1100*7917SReza.Sabdar@Sun.COM 
1101*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_STATE - same as V2 */
1102*7917SReza.Sabdar@Sun.COM 
1103*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_PAUSE_REASON - same as V2 */
1104*7917SReza.Sabdar@Sun.COM 
1105*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_HALT_REASON - same as V2 */
1106*7917SReza.Sabdar@Sun.COM 
1107*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_MODE - same as V2 */
1108*7917SReza.Sabdar@Sun.COM 
1109*7917SReza.Sabdar@Sun.COM struct ndmp_fc_addr_v3
1110*7917SReza.Sabdar@Sun.COM {
1111*7917SReza.Sabdar@Sun.COM 	u_long	loop_id;
1112*7917SReza.Sabdar@Sun.COM };
1113*7917SReza.Sabdar@Sun.COM 
1114*7917SReza.Sabdar@Sun.COM struct ndmp_ipc_addr_v3
1115*7917SReza.Sabdar@Sun.COM {
1116*7917SReza.Sabdar@Sun.COM 	opaque comm_data<>;
1117*7917SReza.Sabdar@Sun.COM };
1118*7917SReza.Sabdar@Sun.COM 
1119*7917SReza.Sabdar@Sun.COM union ndmp_addr_v3 switch (ndmp_addr_type addr_type)
1120*7917SReza.Sabdar@Sun.COM {
1121*7917SReza.Sabdar@Sun.COM 	case NDMP_ADDR_LOCAL:
1122*7917SReza.Sabdar@Sun.COM 		void;
1123*7917SReza.Sabdar@Sun.COM 	case NDMP_ADDR_TCP:
1124*7917SReza.Sabdar@Sun.COM 		ndmp_tcp_addr		tcp_addr;
1125*7917SReza.Sabdar@Sun.COM 	case NDMP_ADDR_FC:
1126*7917SReza.Sabdar@Sun.COM 		ndmp_fc_addr_v3		fc_addr;
1127*7917SReza.Sabdar@Sun.COM 	case NDMP_ADDR_IPC:
1128*7917SReza.Sabdar@Sun.COM 		ndmp_ipc_addr_v3	ipc_addr;
1129*7917SReza.Sabdar@Sun.COM 
1130*7917SReza.Sabdar@Sun.COM };
1131*7917SReza.Sabdar@Sun.COM 
1132*7917SReza.Sabdar@Sun.COM %
1133*7917SReza.Sabdar@Sun.COM %
1134*7917SReza.Sabdar@Sun.COM %/*
1135*7917SReza.Sabdar@Sun.COM % * Macros to access the port and IP address of TCP addresses.
1136*7917SReza.Sabdar@Sun.COM % */
1137*7917SReza.Sabdar@Sun.COM %#ifndef tcp_ip_v3
1138*7917SReza.Sabdar@Sun.COM %#define tcp_ip_v3	ndmp_addr_v3_u.tcp_addr.ip_addr
1139*7917SReza.Sabdar@Sun.COM %#endif /* tcp_ip_v3 */
1140*7917SReza.Sabdar@Sun.COM %#ifndef tcp_port_v3
1141*7917SReza.Sabdar@Sun.COM %#define tcp_port_v3	ndmp_addr_v3_u.tcp_addr.port
1142*7917SReza.Sabdar@Sun.COM %#endif /* tcp_port_v3 */
1143*7917SReza.Sabdar@Sun.COM 
1144*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_GET_STATE */
1145*7917SReza.Sabdar@Sun.COM /* no request arguments */
1146*7917SReza.Sabdar@Sun.COM 
1147*7917SReza.Sabdar@Sun.COM struct ndmp_mover_get_state_reply_v3
1148*7917SReza.Sabdar@Sun.COM {
1149*7917SReza.Sabdar@Sun.COM 	ndmp_error		error;
1150*7917SReza.Sabdar@Sun.COM 	ndmp_mover_state	state;
1151*7917SReza.Sabdar@Sun.COM 	ndmp_mover_pause_reason	pause_reason;
1152*7917SReza.Sabdar@Sun.COM 	ndmp_mover_halt_reason	halt_reason;
1153*7917SReza.Sabdar@Sun.COM 	u_long			record_size;
1154*7917SReza.Sabdar@Sun.COM 	u_long			record_num;
1155*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		data_written;
1156*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		seek_position;
1157*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		bytes_left_to_read;
1158*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		window_offset;
1159*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		window_length;
1160*7917SReza.Sabdar@Sun.COM 	ndmp_addr_v3		data_connection_addr;
1161*7917SReza.Sabdar@Sun.COM };
1162*7917SReza.Sabdar@Sun.COM 
1163*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_LISTEN - same as v2 */
1164*7917SReza.Sabdar@Sun.COM 
1165*7917SReza.Sabdar@Sun.COM struct ndmp_mover_listen_reply_v3
1166*7917SReza.Sabdar@Sun.COM {
1167*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1168*7917SReza.Sabdar@Sun.COM 	ndmp_addr_v3	data_connection_addr;
1169*7917SReza.Sabdar@Sun.COM };
1170*7917SReza.Sabdar@Sun.COM 
1171*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_CONNECT */
1172*7917SReza.Sabdar@Sun.COM struct ndmp_mover_connect_request_v3
1173*7917SReza.Sabdar@Sun.COM {
1174*7917SReza.Sabdar@Sun.COM 	ndmp_mover_mode		mode;
1175*7917SReza.Sabdar@Sun.COM 	ndmp_addr_v3		addr;
1176*7917SReza.Sabdar@Sun.COM };
1177*7917SReza.Sabdar@Sun.COM 
1178*7917SReza.Sabdar@Sun.COM struct ndmp_mover_connect_reply_v3
1179*7917SReza.Sabdar@Sun.COM {
1180*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1181*7917SReza.Sabdar@Sun.COM };
1182*7917SReza.Sabdar@Sun.COM 
1183*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_SET_RECORD_SIZE - same as V2 */
1184*7917SReza.Sabdar@Sun.COM 
1185*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_SET_WINDOW - same as V2 */
1186*7917SReza.Sabdar@Sun.COM 
1187*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_CONTINUE - same as V2 */
1188*7917SReza.Sabdar@Sun.COM 
1189*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_ABORT - same as V2 */
1190*7917SReza.Sabdar@Sun.COM 
1191*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_STOP - same as V2 */
1192*7917SReza.Sabdar@Sun.COM 
1193*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_READ - same as V2 */
1194*7917SReza.Sabdar@Sun.COM 
1195*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_CLOSE - same as V2 */
1196*7917SReza.Sabdar@Sun.COM 
1197*7917SReza.Sabdar@Sun.COM 
1198*7917SReza.Sabdar@Sun.COM /************************/
1199*7917SReza.Sabdar@Sun.COM /* MOVER INTERFACE (V4) */
1200*7917SReza.Sabdar@Sun.COM /************************/
1201*7917SReza.Sabdar@Sun.COM 
1202*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_SET_RECORD_SIZE - same as V3 */
1203*7917SReza.Sabdar@Sun.COM 
1204*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_SET_WINDOW_SIZE - same as V3 */
1205*7917SReza.Sabdar@Sun.COM 
1206*7917SReza.Sabdar@Sun.COM %
1207*7917SReza.Sabdar@Sun.COM %
1208*7917SReza.Sabdar@Sun.COM %/*
1209*7917SReza.Sabdar@Sun.COM % * Macros to access the port and IP address of TCP addresses.
1210*7917SReza.Sabdar@Sun.COM % */
1211*7917SReza.Sabdar@Sun.COM %#ifndef tcp_addr_v4
1212*7917SReza.Sabdar@Sun.COM %#define tcp_addr_v4	ndmp_addr_v4_u.tcp_addr.tcp_addr_val
1213*7917SReza.Sabdar@Sun.COM %#endif /* tcp_addr_v4 */
1214*7917SReza.Sabdar@Sun.COM %#ifndef tcp_ip_v4
1215*7917SReza.Sabdar@Sun.COM %#define tcp_ip_v4(n)	ndmp_addr_v4_u.tcp_addr.tcp_addr_val[n].ip_addr
1216*7917SReza.Sabdar@Sun.COM %#endif /* tcp_ip_v4 */
1217*7917SReza.Sabdar@Sun.COM %#ifndef tcp_port_v4
1218*7917SReza.Sabdar@Sun.COM %#define tcp_port_v4(n)	ndmp_addr_v4_u.tcp_addr.tcp_addr_val[n].port
1219*7917SReza.Sabdar@Sun.COM %#endif /* tcp_port_v4 */
1220*7917SReza.Sabdar@Sun.COM %#ifndef tcp_len_v4
1221*7917SReza.Sabdar@Sun.COM %#define tcp_len_v4	ndmp_addr_v4_u.tcp_addr.tcp_addr_len
1222*7917SReza.Sabdar@Sun.COM %#endif /* tcp_len_v4 */
1223*7917SReza.Sabdar@Sun.COM %#ifndef tcp_env_v4
1224*7917SReza.Sabdar@Sun.COM %#define tcp_env_v4(n)	ndmp_addr_v4_u.tcp_addr.tcp_addr_val[n].addr_env
1225*7917SReza.Sabdar@Sun.COM %#endif /* tcp_env_v4 */
1226*7917SReza.Sabdar@Sun.COM 
1227*7917SReza.Sabdar@Sun.COM struct ndmp_tcp_addr_v4
1228*7917SReza.Sabdar@Sun.COM {
1229*7917SReza.Sabdar@Sun.COM 	u_long       ip_addr;
1230*7917SReza.Sabdar@Sun.COM 	u_short      port;
1231*7917SReza.Sabdar@Sun.COM 	ndmp_pval    addr_env<>;
1232*7917SReza.Sabdar@Sun.COM };
1233*7917SReza.Sabdar@Sun.COM 
1234*7917SReza.Sabdar@Sun.COM union ndmp_addr_v4
1235*7917SReza.Sabdar@Sun.COM switch (ndmp_addr_type addr_type)
1236*7917SReza.Sabdar@Sun.COM {
1237*7917SReza.Sabdar@Sun.COM 	case NDMP_ADDR_LOCAL:
1238*7917SReza.Sabdar@Sun.COM 		void;
1239*7917SReza.Sabdar@Sun.COM 	case NDMP_ADDR_TCP:
1240*7917SReza.Sabdar@Sun.COM 		ndmp_tcp_addr_v4  tcp_addr<>;
1241*7917SReza.Sabdar@Sun.COM 	case NDMP_ADDR_IPC:
1242*7917SReza.Sabdar@Sun.COM 		ndmp_ipc_addr_v3  ipc_addr;
1243*7917SReza.Sabdar@Sun.COM };
1244*7917SReza.Sabdar@Sun.COM 
1245*7917SReza.Sabdar@Sun.COM struct ndmp_mover_connect_request_v4
1246*7917SReza.Sabdar@Sun.COM {
1247*7917SReza.Sabdar@Sun.COM 	ndmp_mover_mode       mode;
1248*7917SReza.Sabdar@Sun.COM 	ndmp_addr_v4          addr;
1249*7917SReza.Sabdar@Sun.COM };
1250*7917SReza.Sabdar@Sun.COM 
1251*7917SReza.Sabdar@Sun.COM struct ndmp_mover_listen_reply_v4
1252*7917SReza.Sabdar@Sun.COM {
1253*7917SReza.Sabdar@Sun.COM 	ndmp_error           error;
1254*7917SReza.Sabdar@Sun.COM 	ndmp_addr_v4         connect_addr;
1255*7917SReza.Sabdar@Sun.COM };
1256*7917SReza.Sabdar@Sun.COM 
1257*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_READ - same as v3 */
1258*7917SReza.Sabdar@Sun.COM 
1259*7917SReza.Sabdar@Sun.COM struct ndmp_mover_get_state_reply_v4
1260*7917SReza.Sabdar@Sun.COM {
1261*7917SReza.Sabdar@Sun.COM 	ndmp_error               error;
1262*7917SReza.Sabdar@Sun.COM 	ndmp_mover_mode          mode;
1263*7917SReza.Sabdar@Sun.COM 	ndmp_mover_state         state;
1264*7917SReza.Sabdar@Sun.COM 	ndmp_mover_pause_reason  pause_reason;
1265*7917SReza.Sabdar@Sun.COM 	ndmp_mover_halt_reason   halt_reason;
1266*7917SReza.Sabdar@Sun.COM 	u_long                   record_size;
1267*7917SReza.Sabdar@Sun.COM 	u_long                   record_num;
1268*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad              bytes_moved;
1269*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad              seek_position;
1270*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad              bytes_left_to_read;
1271*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad              window_offset;
1272*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad              window_length;
1273*7917SReza.Sabdar@Sun.COM 	ndmp_addr_v4             data_connection_addr;
1274*7917SReza.Sabdar@Sun.COM };
1275*7917SReza.Sabdar@Sun.COM 
1276*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_CONTINUE - same as V3 */
1277*7917SReza.Sabdar@Sun.COM 
1278*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_CLOSE - same as V3 */
1279*7917SReza.Sabdar@Sun.COM 
1280*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_ABORT - same as V3 */
1281*7917SReza.Sabdar@Sun.COM 
1282*7917SReza.Sabdar@Sun.COM /* NDMP_MOVER_STOP - same as V3 */
1283*7917SReza.Sabdar@Sun.COM 
1284*7917SReza.Sabdar@Sun.COM 
1285*7917SReza.Sabdar@Sun.COM /***********************/
1286*7917SReza.Sabdar@Sun.COM /* DATA INTERFACE (V2) */
1287*7917SReza.Sabdar@Sun.COM /***********************/
1288*7917SReza.Sabdar@Sun.COM 
1289*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_GET_STATE */
1290*7917SReza.Sabdar@Sun.COM /* no request arguments */
1291*7917SReza.Sabdar@Sun.COM 
1292*7917SReza.Sabdar@Sun.COM enum ndmp_data_operation
1293*7917SReza.Sabdar@Sun.COM {
1294*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_OP_NOACTION           = 0,
1295*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_OP_BACKUP             = 1,
1296*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_OP_RECOVER            = 2,
1297*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_OP_RECOVER_FILEHIST   = 3  	/* NDMP V4 */
1298*7917SReza.Sabdar@Sun.COM };
1299*7917SReza.Sabdar@Sun.COM 
1300*7917SReza.Sabdar@Sun.COM enum ndmp_data_state
1301*7917SReza.Sabdar@Sun.COM {
1302*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_STATE_IDLE      = 0,
1303*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_STATE_ACTIVE    = 1,
1304*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_STATE_HALTED    = 2,
1305*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_STATE_LISTEN    = 3, 		/* NDMP V3 */
1306*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_STATE_CONNECTED = 4 		/* NDMP V3 */
1307*7917SReza.Sabdar@Sun.COM };
1308*7917SReza.Sabdar@Sun.COM 
1309*7917SReza.Sabdar@Sun.COM enum ndmp_data_halt_reason
1310*7917SReza.Sabdar@Sun.COM {
1311*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_HALT_NA             = 0,
1312*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_HALT_SUCCESSFUL     = 1,
1313*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_HALT_ABORTED        = 2,
1314*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_HALT_INTERNAL_ERROR = 3,
1315*7917SReza.Sabdar@Sun.COM 	NDMP_DATA_HALT_CONNECT_ERROR  = 4
1316*7917SReza.Sabdar@Sun.COM };
1317*7917SReza.Sabdar@Sun.COM 
1318*7917SReza.Sabdar@Sun.COM struct ndmp_data_get_state_reply
1319*7917SReza.Sabdar@Sun.COM {
1320*7917SReza.Sabdar@Sun.COM 	ndmp_error		error;
1321*7917SReza.Sabdar@Sun.COM 	ndmp_data_operation	operation;
1322*7917SReza.Sabdar@Sun.COM 	ndmp_data_state		state;
1323*7917SReza.Sabdar@Sun.COM 	ndmp_data_halt_reason	halt_reason;
1324*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		bytes_processed;
1325*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		est_bytes_remain;
1326*7917SReza.Sabdar@Sun.COM 	u_long			est_time_remain;
1327*7917SReza.Sabdar@Sun.COM 	ndmp_mover_addr		mover;
1328*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		read_offset;
1329*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		read_length;
1330*7917SReza.Sabdar@Sun.COM };
1331*7917SReza.Sabdar@Sun.COM 
1332*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_START_BACKUP */
1333*7917SReza.Sabdar@Sun.COM 
1334*7917SReza.Sabdar@Sun.COM struct ndmp_data_start_backup_request
1335*7917SReza.Sabdar@Sun.COM {
1336*7917SReza.Sabdar@Sun.COM 	ndmp_mover_addr		mover;		/* mover to receive data */
1337*7917SReza.Sabdar@Sun.COM 	string			bu_type<>;	/* backup method to use */
1338*7917SReza.Sabdar@Sun.COM 	ndmp_pval		env<>;		/* Parameters that may modify backup */
1339*7917SReza.Sabdar@Sun.COM };
1340*7917SReza.Sabdar@Sun.COM 
1341*7917SReza.Sabdar@Sun.COM struct ndmp_data_start_backup_reply
1342*7917SReza.Sabdar@Sun.COM {
1343*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1344*7917SReza.Sabdar@Sun.COM };
1345*7917SReza.Sabdar@Sun.COM 
1346*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_START_RECOVER */
1347*7917SReza.Sabdar@Sun.COM struct ndmp_name
1348*7917SReza.Sabdar@Sun.COM {
1349*7917SReza.Sabdar@Sun.COM 	string		name<>;
1350*7917SReza.Sabdar@Sun.COM 	string		dest<>;
1351*7917SReza.Sabdar@Sun.COM 	u_short		ssid;
1352*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	fh_info;
1353*7917SReza.Sabdar@Sun.COM };
1354*7917SReza.Sabdar@Sun.COM 
1355*7917SReza.Sabdar@Sun.COM struct ndmp_data_start_recover_request
1356*7917SReza.Sabdar@Sun.COM {
1357*7917SReza.Sabdar@Sun.COM 	ndmp_mover_addr		mover;
1358*7917SReza.Sabdar@Sun.COM 	ndmp_pval		env<>;
1359*7917SReza.Sabdar@Sun.COM 	ndmp_name		nlist<>;
1360*7917SReza.Sabdar@Sun.COM 	string			bu_type<>;
1361*7917SReza.Sabdar@Sun.COM 
1362*7917SReza.Sabdar@Sun.COM };
1363*7917SReza.Sabdar@Sun.COM 
1364*7917SReza.Sabdar@Sun.COM struct ndmp_data_start_recover_reply
1365*7917SReza.Sabdar@Sun.COM {
1366*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1367*7917SReza.Sabdar@Sun.COM };
1368*7917SReza.Sabdar@Sun.COM 
1369*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_ABORT */
1370*7917SReza.Sabdar@Sun.COM /* no request arguments */
1371*7917SReza.Sabdar@Sun.COM 
1372*7917SReza.Sabdar@Sun.COM struct ndmp_data_abort_reply
1373*7917SReza.Sabdar@Sun.COM {
1374*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1375*7917SReza.Sabdar@Sun.COM };
1376*7917SReza.Sabdar@Sun.COM 
1377*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_STOP */
1378*7917SReza.Sabdar@Sun.COM /* no request arguments */
1379*7917SReza.Sabdar@Sun.COM 
1380*7917SReza.Sabdar@Sun.COM struct ndmp_data_stop_reply
1381*7917SReza.Sabdar@Sun.COM {
1382*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1383*7917SReza.Sabdar@Sun.COM };
1384*7917SReza.Sabdar@Sun.COM 
1385*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_GET_ENV */
1386*7917SReza.Sabdar@Sun.COM /* no request arguments */
1387*7917SReza.Sabdar@Sun.COM 
1388*7917SReza.Sabdar@Sun.COM struct ndmp_data_get_env_reply
1389*7917SReza.Sabdar@Sun.COM {
1390*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1391*7917SReza.Sabdar@Sun.COM 	ndmp_pval	env<>;
1392*7917SReza.Sabdar@Sun.COM };
1393*7917SReza.Sabdar@Sun.COM /* no reply arguments */
1394*7917SReza.Sabdar@Sun.COM 
1395*7917SReza.Sabdar@Sun.COM struct ndmp_notify_data_halted_request
1396*7917SReza.Sabdar@Sun.COM {
1397*7917SReza.Sabdar@Sun.COM 	ndmp_data_halt_reason		reason;
1398*7917SReza.Sabdar@Sun.COM 	string				text_reason<>;
1399*7917SReza.Sabdar@Sun.COM };
1400*7917SReza.Sabdar@Sun.COM /* no reply arguments */
1401*7917SReza.Sabdar@Sun.COM 
1402*7917SReza.Sabdar@Sun.COM 
1403*7917SReza.Sabdar@Sun.COM /***********************/
1404*7917SReza.Sabdar@Sun.COM /* DATA INTERFACE (V3) */
1405*7917SReza.Sabdar@Sun.COM /***********************/
1406*7917SReza.Sabdar@Sun.COM 
1407*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_GET_STATE */
1408*7917SReza.Sabdar@Sun.COM /* no request arguments */
1409*7917SReza.Sabdar@Sun.COM /* ndmp_data_operation the same as V2 */
1410*7917SReza.Sabdar@Sun.COM 
1411*7917SReza.Sabdar@Sun.COM /* invalid bit */
1412*7917SReza.Sabdar@Sun.COM const NDMP_DATA_STATE_EST_BYTES_REMAIN_INVALID	= 0x00000001;
1413*7917SReza.Sabdar@Sun.COM const NDMP_DATA_STATE_EST_TIME_REMAIN_INVALID	= 0x00000002;
1414*7917SReza.Sabdar@Sun.COM 
1415*7917SReza.Sabdar@Sun.COM struct ndmp_data_get_state_reply_v3
1416*7917SReza.Sabdar@Sun.COM {
1417*7917SReza.Sabdar@Sun.COM 	u_long			invalid;
1418*7917SReza.Sabdar@Sun.COM 	ndmp_error		error;
1419*7917SReza.Sabdar@Sun.COM 	ndmp_data_operation	operation;
1420*7917SReza.Sabdar@Sun.COM 	ndmp_data_state		state;
1421*7917SReza.Sabdar@Sun.COM 	ndmp_data_halt_reason	halt_reason;
1422*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		bytes_processed;
1423*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		est_bytes_remain;
1424*7917SReza.Sabdar@Sun.COM 	u_long			est_time_remain;
1425*7917SReza.Sabdar@Sun.COM 	ndmp_addr_v3		data_connection_addr;
1426*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		read_offset;
1427*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		read_length;
1428*7917SReza.Sabdar@Sun.COM };
1429*7917SReza.Sabdar@Sun.COM 
1430*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_START_BACKUP */
1431*7917SReza.Sabdar@Sun.COM struct ndmp_data_start_backup_request_v3
1432*7917SReza.Sabdar@Sun.COM {
1433*7917SReza.Sabdar@Sun.COM 	string		bu_type<>;	/* backup method to use */
1434*7917SReza.Sabdar@Sun.COM 	ndmp_pval	env<>;		/* Parameters that may modify backup */
1435*7917SReza.Sabdar@Sun.COM };
1436*7917SReza.Sabdar@Sun.COM 
1437*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_START_RECOVER */
1438*7917SReza.Sabdar@Sun.COM struct ndmp_name_v3
1439*7917SReza.Sabdar@Sun.COM {
1440*7917SReza.Sabdar@Sun.COM 	string		original_path<>;
1441*7917SReza.Sabdar@Sun.COM 	string		destination_dir<>;
1442*7917SReza.Sabdar@Sun.COM 	string		new_name<>;	/* Direct access restore only */
1443*7917SReza.Sabdar@Sun.COM 	string		other_name<>;	/* Direct access restore only */
1444*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	node;		/* Direct access restore only */
1445*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	fh_info;	/* Direct access restore only */
1446*7917SReza.Sabdar@Sun.COM };
1447*7917SReza.Sabdar@Sun.COM 
1448*7917SReza.Sabdar@Sun.COM struct ndmp_data_start_recover_request_v3
1449*7917SReza.Sabdar@Sun.COM {
1450*7917SReza.Sabdar@Sun.COM 	ndmp_pval	env<>;
1451*7917SReza.Sabdar@Sun.COM 	ndmp_name_v3	nlist<>;
1452*7917SReza.Sabdar@Sun.COM 	string		bu_type<>;
1453*7917SReza.Sabdar@Sun.COM };
1454*7917SReza.Sabdar@Sun.COM 
1455*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_ABORT - same as V2 */
1456*7917SReza.Sabdar@Sun.COM 
1457*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_STOP - same as V2 */
1458*7917SReza.Sabdar@Sun.COM 
1459*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_GET_ENV - same as V2 */
1460*7917SReza.Sabdar@Sun.COM 
1461*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_LISTEN */
1462*7917SReza.Sabdar@Sun.COM struct ndmp_data_listen_request_v3
1463*7917SReza.Sabdar@Sun.COM {
1464*7917SReza.Sabdar@Sun.COM 	ndmp_addr_type	addr_type;
1465*7917SReza.Sabdar@Sun.COM };
1466*7917SReza.Sabdar@Sun.COM 
1467*7917SReza.Sabdar@Sun.COM struct ndmp_data_listen_reply_v3
1468*7917SReza.Sabdar@Sun.COM {
1469*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1470*7917SReza.Sabdar@Sun.COM 	ndmp_addr_v3	data_connection_addr;
1471*7917SReza.Sabdar@Sun.COM };
1472*7917SReza.Sabdar@Sun.COM 
1473*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_CONNECT */
1474*7917SReza.Sabdar@Sun.COM struct ndmp_data_connect_request_v3
1475*7917SReza.Sabdar@Sun.COM {
1476*7917SReza.Sabdar@Sun.COM 	ndmp_addr_v3	addr;
1477*7917SReza.Sabdar@Sun.COM };
1478*7917SReza.Sabdar@Sun.COM 
1479*7917SReza.Sabdar@Sun.COM struct ndmp_data_connect_reply_v3
1480*7917SReza.Sabdar@Sun.COM {
1481*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1482*7917SReza.Sabdar@Sun.COM };
1483*7917SReza.Sabdar@Sun.COM 
1484*7917SReza.Sabdar@Sun.COM 
1485*7917SReza.Sabdar@Sun.COM /***********************/
1486*7917SReza.Sabdar@Sun.COM /* DATA INTERFACE (V4) */
1487*7917SReza.Sabdar@Sun.COM /***********************/
1488*7917SReza.Sabdar@Sun.COM 
1489*7917SReza.Sabdar@Sun.COM struct ndmp_data_get_state_reply_v4
1490*7917SReza.Sabdar@Sun.COM {
1491*7917SReza.Sabdar@Sun.COM 	u_long                    unsupported;
1492*7917SReza.Sabdar@Sun.COM 	ndmp_error                error;
1493*7917SReza.Sabdar@Sun.COM 	ndmp_data_operation       operation;
1494*7917SReza.Sabdar@Sun.COM 	ndmp_data_state           state;
1495*7917SReza.Sabdar@Sun.COM 	ndmp_data_halt_reason     halt_reason;
1496*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad               bytes_processed;
1497*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad               est_bytes_remain;
1498*7917SReza.Sabdar@Sun.COM 	u_long                    est_time_remain;
1499*7917SReza.Sabdar@Sun.COM 	ndmp_addr_v4              data_connection_addr;
1500*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad               read_offset;
1501*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad               read_length;
1502*7917SReza.Sabdar@Sun.COM };
1503*7917SReza.Sabdar@Sun.COM 
1504*7917SReza.Sabdar@Sun.COM struct ndmp_data_listen_reply_v4
1505*7917SReza.Sabdar@Sun.COM {
1506*7917SReza.Sabdar@Sun.COM 	ndmp_error   error;
1507*7917SReza.Sabdar@Sun.COM 	ndmp_addr_v4    connect_addr;
1508*7917SReza.Sabdar@Sun.COM };
1509*7917SReza.Sabdar@Sun.COM 
1510*7917SReza.Sabdar@Sun.COM struct ndmp_data_connect_request_v4
1511*7917SReza.Sabdar@Sun.COM {
1512*7917SReza.Sabdar@Sun.COM 	ndmp_addr_v4   addr;
1513*7917SReza.Sabdar@Sun.COM };
1514*7917SReza.Sabdar@Sun.COM 
1515*7917SReza.Sabdar@Sun.COM 
1516*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_START_BACKUP - same as V3 */
1517*7917SReza.Sabdar@Sun.COM 
1518*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_START_RECOVER - same as V3 */
1519*7917SReza.Sabdar@Sun.COM 
1520*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_ABORT - same as V3 */
1521*7917SReza.Sabdar@Sun.COM 
1522*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_STOP - same as V3 */
1523*7917SReza.Sabdar@Sun.COM 
1524*7917SReza.Sabdar@Sun.COM /* NDMP_DATA_GET_ENV - same as V3 */
1525*7917SReza.Sabdar@Sun.COM 
1526*7917SReza.Sabdar@Sun.COM 
1527*7917SReza.Sabdar@Sun.COM /*************************/
1528*7917SReza.Sabdar@Sun.COM /* NOTIFY INTERFACE (V2) */
1529*7917SReza.Sabdar@Sun.COM /*************************/
1530*7917SReza.Sabdar@Sun.COM 
1531*7917SReza.Sabdar@Sun.COM /* NDMP_NOTIFY_CONNECTED */
1532*7917SReza.Sabdar@Sun.COM enum ndmp_connect_reason
1533*7917SReza.Sabdar@Sun.COM {
1534*7917SReza.Sabdar@Sun.COM 	NDMP_CONNECTED,		/* Connect successfully */
1535*7917SReza.Sabdar@Sun.COM 	NDMP_SHUTDOWN,		/* Connection shutdown */
1536*7917SReza.Sabdar@Sun.COM 	NDMP_REFUSED		/* reach the maximum number of connections */
1537*7917SReza.Sabdar@Sun.COM };
1538*7917SReza.Sabdar@Sun.COM 
1539*7917SReza.Sabdar@Sun.COM struct ndmp_notify_connected_request
1540*7917SReza.Sabdar@Sun.COM {
1541*7917SReza.Sabdar@Sun.COM 	ndmp_connect_reason	reason;
1542*7917SReza.Sabdar@Sun.COM 	u_short			protocol_version;
1543*7917SReza.Sabdar@Sun.COM 	string			text_reason<>;
1544*7917SReza.Sabdar@Sun.COM };
1545*7917SReza.Sabdar@Sun.COM 
1546*7917SReza.Sabdar@Sun.COM /* NDMP_NOTIFY_MOVER_PAUSED */
1547*7917SReza.Sabdar@Sun.COM struct ndmp_notify_mover_paused_request
1548*7917SReza.Sabdar@Sun.COM {
1549*7917SReza.Sabdar@Sun.COM 	ndmp_mover_pause_reason	reason;
1550*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		seek_position;
1551*7917SReza.Sabdar@Sun.COM };
1552*7917SReza.Sabdar@Sun.COM /* no reply arguments */
1553*7917SReza.Sabdar@Sun.COM 
1554*7917SReza.Sabdar@Sun.COM /* NDMP_NOTIFY_MOVER_HALTED */
1555*7917SReza.Sabdar@Sun.COM struct ndmp_notify_mover_halted_request
1556*7917SReza.Sabdar@Sun.COM {
1557*7917SReza.Sabdar@Sun.COM 	ndmp_mover_halt_reason	reason;
1558*7917SReza.Sabdar@Sun.COM 	string			text_reason<>;
1559*7917SReza.Sabdar@Sun.COM };
1560*7917SReza.Sabdar@Sun.COM /* no reply arguments */
1561*7917SReza.Sabdar@Sun.COM 
1562*7917SReza.Sabdar@Sun.COM /* NDMP_NOTIFY_DATA_READ */
1563*7917SReza.Sabdar@Sun.COM struct ndmp_notify_data_read_request
1564*7917SReza.Sabdar@Sun.COM {
1565*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	offset;
1566*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad	length;
1567*7917SReza.Sabdar@Sun.COM };
1568*7917SReza.Sabdar@Sun.COM /* no reply arguments */
1569*7917SReza.Sabdar@Sun.COM 
1570*7917SReza.Sabdar@Sun.COM 
1571*7917SReza.Sabdar@Sun.COM /*************************/
1572*7917SReza.Sabdar@Sun.COM /* NOTIFY INTERFACE (V3) */
1573*7917SReza.Sabdar@Sun.COM /*************************/
1574*7917SReza.Sabdar@Sun.COM 
1575*7917SReza.Sabdar@Sun.COM /* NDMP_NOTIFY_DATA_HALTED - same as V2 */
1576*7917SReza.Sabdar@Sun.COM 
1577*7917SReza.Sabdar@Sun.COM /* NDMP_NOTIFY_CONNECTED - same as V2 */
1578*7917SReza.Sabdar@Sun.COM 
1579*7917SReza.Sabdar@Sun.COM /* NDMP_NOTIFY_MOVER_PAUSED - same as V2 */
1580*7917SReza.Sabdar@Sun.COM 
1581*7917SReza.Sabdar@Sun.COM /* NDMP_NOTIFY_MOVER_HALTED - same as V2 */
1582*7917SReza.Sabdar@Sun.COM 
1583*7917SReza.Sabdar@Sun.COM /* NDMP_NOTIFY_DATA_READ - same as V2 */
1584*7917SReza.Sabdar@Sun.COM 
1585*7917SReza.Sabdar@Sun.COM 
1586*7917SReza.Sabdar@Sun.COM /*************************/
1587*7917SReza.Sabdar@Sun.COM /* NOTIFY INTERFACE (V4) */
1588*7917SReza.Sabdar@Sun.COM /*************************/
1589*7917SReza.Sabdar@Sun.COM 
1590*7917SReza.Sabdar@Sun.COM struct ndmp_notify_data_halted_request_v4
1591*7917SReza.Sabdar@Sun.COM {
1592*7917SReza.Sabdar@Sun.COM 	ndmp_data_halt_reason   reason;
1593*7917SReza.Sabdar@Sun.COM };
1594*7917SReza.Sabdar@Sun.COM 
1595*7917SReza.Sabdar@Sun.COM /* NDMP_NOTIFY_CONNECTION_STATUS - same as V3 */
1596*7917SReza.Sabdar@Sun.COM 
1597*7917SReza.Sabdar@Sun.COM struct ndmp_notify_mover_halted_request_v4
1598*7917SReza.Sabdar@Sun.COM {
1599*7917SReza.Sabdar@Sun.COM 	ndmp_mover_halt_reason      reason;
1600*7917SReza.Sabdar@Sun.COM };
1601*7917SReza.Sabdar@Sun.COM 
1602*7917SReza.Sabdar@Sun.COM /* NDMP_NOTIFY_MOVER_PAUSED - same as V3 */
1603*7917SReza.Sabdar@Sun.COM 
1604*7917SReza.Sabdar@Sun.COM /* NDMP_NOTIFY_DATA_READ - same as V3 */
1605*7917SReza.Sabdar@Sun.COM 
1606*7917SReza.Sabdar@Sun.COM 
1607*7917SReza.Sabdar@Sun.COM /**********************/
1608*7917SReza.Sabdar@Sun.COM /* LOG INTERFACE (V2) */
1609*7917SReza.Sabdar@Sun.COM /**********************/
1610*7917SReza.Sabdar@Sun.COM 
1611*7917SReza.Sabdar@Sun.COM /* NDMP_LOG_LOG */
1612*7917SReza.Sabdar@Sun.COM struct ndmp_log_log_request
1613*7917SReza.Sabdar@Sun.COM {
1614*7917SReza.Sabdar@Sun.COM 	string	entry<>;
1615*7917SReza.Sabdar@Sun.COM };
1616*7917SReza.Sabdar@Sun.COM /* no reply arguments */
1617*7917SReza.Sabdar@Sun.COM 
1618*7917SReza.Sabdar@Sun.COM /* NDMP_LOG_DEBUG */
1619*7917SReza.Sabdar@Sun.COM enum ndmp_debug_level
1620*7917SReza.Sabdar@Sun.COM {
1621*7917SReza.Sabdar@Sun.COM 	NDMP_DBG_USER_INFO,
1622*7917SReza.Sabdar@Sun.COM 	NDMP_DBG_USER_SUMMARY,
1623*7917SReza.Sabdar@Sun.COM 	NDMP_DBG_USER_DETAIL,
1624*7917SReza.Sabdar@Sun.COM 	NDMP_DBG_DIAG_INFO,
1625*7917SReza.Sabdar@Sun.COM 	NDMP_DBG_DIAG_SUMMARY,
1626*7917SReza.Sabdar@Sun.COM 	NDMP_DBG_DIAG_DETAIL,
1627*7917SReza.Sabdar@Sun.COM 	NDMP_DBG_PROG_INFO,
1628*7917SReza.Sabdar@Sun.COM 	NDMP_DBG_PROG_SUMMARY,
1629*7917SReza.Sabdar@Sun.COM 	NDMP_DBG_PROG_DETAIL
1630*7917SReza.Sabdar@Sun.COM };
1631*7917SReza.Sabdar@Sun.COM 
1632*7917SReza.Sabdar@Sun.COM struct ndmp_log_debug_request
1633*7917SReza.Sabdar@Sun.COM {
1634*7917SReza.Sabdar@Sun.COM 	ndmp_debug_level	level;
1635*7917SReza.Sabdar@Sun.COM 	string			message<>;
1636*7917SReza.Sabdar@Sun.COM };
1637*7917SReza.Sabdar@Sun.COM /* no reply arguments */
1638*7917SReza.Sabdar@Sun.COM 
1639*7917SReza.Sabdar@Sun.COM /* NDMP_LOG_FILE */
1640*7917SReza.Sabdar@Sun.COM struct ndmp_log_file_request
1641*7917SReza.Sabdar@Sun.COM {
1642*7917SReza.Sabdar@Sun.COM 	string		name<>;
1643*7917SReza.Sabdar@Sun.COM 	u_short		ssid;
1644*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1645*7917SReza.Sabdar@Sun.COM };
1646*7917SReza.Sabdar@Sun.COM /* no reply arguments */
1647*7917SReza.Sabdar@Sun.COM 
1648*7917SReza.Sabdar@Sun.COM 
1649*7917SReza.Sabdar@Sun.COM /**********************/
1650*7917SReza.Sabdar@Sun.COM /* LOG INTERFACE (V3) */
1651*7917SReza.Sabdar@Sun.COM /**********************/
1652*7917SReza.Sabdar@Sun.COM 
1653*7917SReza.Sabdar@Sun.COM /* NDMP_LOG_MESSAGE */
1654*7917SReza.Sabdar@Sun.COM enum ndmp_log_type
1655*7917SReza.Sabdar@Sun.COM {
1656*7917SReza.Sabdar@Sun.COM 	NDMP_LOG_NORMAL  = 0,
1657*7917SReza.Sabdar@Sun.COM 	NDMP_LOG_DEBUG   = 1,
1658*7917SReza.Sabdar@Sun.COM 	NDMP_LOG_ERROR   = 2,
1659*7917SReza.Sabdar@Sun.COM 	NDMP_LOG_WARNING = 3
1660*7917SReza.Sabdar@Sun.COM };
1661*7917SReza.Sabdar@Sun.COM 
1662*7917SReza.Sabdar@Sun.COM struct ndmp_log_message_request_v3
1663*7917SReza.Sabdar@Sun.COM {
1664*7917SReza.Sabdar@Sun.COM 	ndmp_log_type		log_type;
1665*7917SReza.Sabdar@Sun.COM 	u_long			message_id;
1666*7917SReza.Sabdar@Sun.COM 	string			entry<>;
1667*7917SReza.Sabdar@Sun.COM };
1668*7917SReza.Sabdar@Sun.COM /* no reply arguments */
1669*7917SReza.Sabdar@Sun.COM 
1670*7917SReza.Sabdar@Sun.COM /* NDMP_LOG_FILE */
1671*7917SReza.Sabdar@Sun.COM struct ndmp_log_file_request_v3
1672*7917SReza.Sabdar@Sun.COM {
1673*7917SReza.Sabdar@Sun.COM 	string		name<>;
1674*7917SReza.Sabdar@Sun.COM 	ndmp_error	error;
1675*7917SReza.Sabdar@Sun.COM };
1676*7917SReza.Sabdar@Sun.COM /* no reply arguments */
1677*7917SReza.Sabdar@Sun.COM 
1678*7917SReza.Sabdar@Sun.COM 
1679*7917SReza.Sabdar@Sun.COM /**********************/
1680*7917SReza.Sabdar@Sun.COM /* LOG INTERFACE (V4) */
1681*7917SReza.Sabdar@Sun.COM /**********************/
1682*7917SReza.Sabdar@Sun.COM 
1683*7917SReza.Sabdar@Sun.COM enum ndmp_has_associated_message
1684*7917SReza.Sabdar@Sun.COM {
1685*7917SReza.Sabdar@Sun.COM 	NDMP_NO_ASSOCIATED_MESSAGE     = 0,
1686*7917SReza.Sabdar@Sun.COM 	NDMP_HAS_ASSOCIATED_MESSAGE    = 1
1687*7917SReza.Sabdar@Sun.COM };
1688*7917SReza.Sabdar@Sun.COM 
1689*7917SReza.Sabdar@Sun.COM enum ndmp_recovery_status
1690*7917SReza.Sabdar@Sun.COM {
1691*7917SReza.Sabdar@Sun.COM 	NDMP_RECOVERY_SUCCESSFUL                 = 0,
1692*7917SReza.Sabdar@Sun.COM 	NDMP_RECOVERY_FAILED_PERMISSION          = 1,
1693*7917SReza.Sabdar@Sun.COM 	NDMP_RECOVERY_FAILED_NOT_FOUND           = 2,
1694*7917SReza.Sabdar@Sun.COM 	NDMP_RECOVERY_FAILED_NO_DIRECTORY        = 3,
1695*7917SReza.Sabdar@Sun.COM 	NDMP_RECOVERY_FAILED_OUT_OF_MEMORY       = 4,
1696*7917SReza.Sabdar@Sun.COM 	NDMP_RECOVERY_FAILED_IO_ERROR            = 5,
1697*7917SReza.Sabdar@Sun.COM 	NDMP_RECOVERY_FAILED_UNDEFINED_ERROR     = 6,
1698*7917SReza.Sabdar@Sun.COM 	NDMP_RECOVERY_FAILED_FILE_PATH_EXISTS    = 7
1699*7917SReza.Sabdar@Sun.COM };
1700*7917SReza.Sabdar@Sun.COM 
1701*7917SReza.Sabdar@Sun.COM struct ndmp_log_message_request_v4
1702*7917SReza.Sabdar@Sun.COM {
1703*7917SReza.Sabdar@Sun.COM 	ndmp_log_type      log_type;
1704*7917SReza.Sabdar@Sun.COM 	u_long             message_id;
1705*7917SReza.Sabdar@Sun.COM 	string             entry<>;
1706*7917SReza.Sabdar@Sun.COM 	ndmp_has_associated_message associated_message_valid;
1707*7917SReza.Sabdar@Sun.COM 	u_long             associated_message_sequence;
1708*7917SReza.Sabdar@Sun.COM };
1709*7917SReza.Sabdar@Sun.COM 
1710*7917SReza.Sabdar@Sun.COM struct ndmp_log_file_request_v4
1711*7917SReza.Sabdar@Sun.COM {
1712*7917SReza.Sabdar@Sun.COM 	string                   name<>;
1713*7917SReza.Sabdar@Sun.COM 	ndmp_recovery_status     recovery_status;
1714*7917SReza.Sabdar@Sun.COM };
1715*7917SReza.Sabdar@Sun.COM 
1716*7917SReza.Sabdar@Sun.COM 
1717*7917SReza.Sabdar@Sun.COM 
1718*7917SReza.Sabdar@Sun.COM /*******************************/
1719*7917SReza.Sabdar@Sun.COM /* FILE HISTORY INTERFACE (V2) */
1720*7917SReza.Sabdar@Sun.COM /*******************************/
1721*7917SReza.Sabdar@Sun.COM 
1722*7917SReza.Sabdar@Sun.COM /* NDMP_FH_ADD_UNIX_PATH */
1723*7917SReza.Sabdar@Sun.COM typedef string ndmp_unix_path<>;
1724*7917SReza.Sabdar@Sun.COM enum ndmp_file_type
1725*7917SReza.Sabdar@Sun.COM {
1726*7917SReza.Sabdar@Sun.COM 	NDMP_FILE_DIR      = 0,
1727*7917SReza.Sabdar@Sun.COM 	NDMP_FILE_FIFO     = 1,
1728*7917SReza.Sabdar@Sun.COM 	NDMP_FILE_CSPEC    = 2,
1729*7917SReza.Sabdar@Sun.COM 	NDMP_FILE_BSPEC    = 3,
1730*7917SReza.Sabdar@Sun.COM 	NDMP_FILE_REG      = 4,
1731*7917SReza.Sabdar@Sun.COM 	NDMP_FILE_SLINK    = 5,
1732*7917SReza.Sabdar@Sun.COM 	NDMP_FILE_SOCK     = 6,
1733*7917SReza.Sabdar@Sun.COM 	NDMP_FILE_REGISTRY = 7,
1734*7917SReza.Sabdar@Sun.COM 	NDMP_FILE_OTHER    = 8
1735*7917SReza.Sabdar@Sun.COM };
1736*7917SReza.Sabdar@Sun.COM 
1737*7917SReza.Sabdar@Sun.COM struct ndmp_unix_file_stat
1738*7917SReza.Sabdar@Sun.COM {
1739*7917SReza.Sabdar@Sun.COM 	ndmp_file_type	ftype;
1740*7917SReza.Sabdar@Sun.COM 	u_long			mtime;
1741*7917SReza.Sabdar@Sun.COM 	u_long			atime;
1742*7917SReza.Sabdar@Sun.COM 	u_long			ctime;
1743*7917SReza.Sabdar@Sun.COM 	u_long			uid;
1744*7917SReza.Sabdar@Sun.COM 	u_long			gid;
1745*7917SReza.Sabdar@Sun.COM 	u_long			mode;
1746*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		size;
1747*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		fh_info;
1748*7917SReza.Sabdar@Sun.COM };
1749*7917SReza.Sabdar@Sun.COM 
1750*7917SReza.Sabdar@Sun.COM struct ndmp_fh_unix_path
1751*7917SReza.Sabdar@Sun.COM {
1752*7917SReza.Sabdar@Sun.COM 	ndmp_unix_path		name;
1753*7917SReza.Sabdar@Sun.COM 	ndmp_unix_file_stat	fstat;
1754*7917SReza.Sabdar@Sun.COM };
1755*7917SReza.Sabdar@Sun.COM 
1756*7917SReza.Sabdar@Sun.COM struct ndmp_fh_add_unix_path_request
1757*7917SReza.Sabdar@Sun.COM {
1758*7917SReza.Sabdar@Sun.COM 	ndmp_fh_unix_path	paths<>;
1759*7917SReza.Sabdar@Sun.COM };
1760*7917SReza.Sabdar@Sun.COM /* no reply arguments */
1761*7917SReza.Sabdar@Sun.COM 
1762*7917SReza.Sabdar@Sun.COM /* NDMP_FH_ADD_UNIX_DIR */
1763*7917SReza.Sabdar@Sun.COM struct ndmp_fh_unix_dir
1764*7917SReza.Sabdar@Sun.COM {
1765*7917SReza.Sabdar@Sun.COM 	ndmp_unix_path		name;
1766*7917SReza.Sabdar@Sun.COM 	u_long			node;
1767*7917SReza.Sabdar@Sun.COM 	u_long			parent;
1768*7917SReza.Sabdar@Sun.COM };
1769*7917SReza.Sabdar@Sun.COM 
1770*7917SReza.Sabdar@Sun.COM struct ndmp_fh_add_unix_dir_request
1771*7917SReza.Sabdar@Sun.COM {
1772*7917SReza.Sabdar@Sun.COM 	ndmp_fh_unix_dir	dirs<>;
1773*7917SReza.Sabdar@Sun.COM };
1774*7917SReza.Sabdar@Sun.COM /* no reply arguments */
1775*7917SReza.Sabdar@Sun.COM 
1776*7917SReza.Sabdar@Sun.COM /* NDMP_FH_ADD_UNIX_NODE */
1777*7917SReza.Sabdar@Sun.COM struct ndmp_fh_unix_node
1778*7917SReza.Sabdar@Sun.COM {
1779*7917SReza.Sabdar@Sun.COM 	ndmp_unix_file_stat	fstat;
1780*7917SReza.Sabdar@Sun.COM 	u_long			node;
1781*7917SReza.Sabdar@Sun.COM };
1782*7917SReza.Sabdar@Sun.COM 
1783*7917SReza.Sabdar@Sun.COM struct ndmp_fh_add_unix_node_request
1784*7917SReza.Sabdar@Sun.COM {
1785*7917SReza.Sabdar@Sun.COM 	ndmp_fh_unix_node	nodes<>;
1786*7917SReza.Sabdar@Sun.COM };
1787*7917SReza.Sabdar@Sun.COM /* no reply arguments */
1788*7917SReza.Sabdar@Sun.COM 
1789*7917SReza.Sabdar@Sun.COM 
1790*7917SReza.Sabdar@Sun.COM /********************************/
1791*7917SReza.Sabdar@Sun.COM /* FILE HISTORY INTERFACE (V3) */
1792*7917SReza.Sabdar@Sun.COM /********************************/
1793*7917SReza.Sabdar@Sun.COM 
1794*7917SReza.Sabdar@Sun.COM /* NDMP_FH_ADD_FILE */
1795*7917SReza.Sabdar@Sun.COM enum ndmp_fs_type
1796*7917SReza.Sabdar@Sun.COM {
1797*7917SReza.Sabdar@Sun.COM 	NDMP_FS_UNIX   = 0,
1798*7917SReza.Sabdar@Sun.COM 	NDMP_FS_NT     = 1,
1799*7917SReza.Sabdar@Sun.COM 	NDMP_FS_OTHER  = 2
1800*7917SReza.Sabdar@Sun.COM };
1801*7917SReza.Sabdar@Sun.COM 
1802*7917SReza.Sabdar@Sun.COM 
1803*7917SReza.Sabdar@Sun.COM typedef string ndmp_path_v3<>;
1804*7917SReza.Sabdar@Sun.COM struct ndmp_nt_path_v3
1805*7917SReza.Sabdar@Sun.COM {
1806*7917SReza.Sabdar@Sun.COM 	ndmp_path_v3	nt_path;
1807*7917SReza.Sabdar@Sun.COM 	ndmp_path_v3	dos_path;
1808*7917SReza.Sabdar@Sun.COM };
1809*7917SReza.Sabdar@Sun.COM 
1810*7917SReza.Sabdar@Sun.COM union ndmp_file_name_v3 switch (ndmp_fs_type fs_type)
1811*7917SReza.Sabdar@Sun.COM {
1812*7917SReza.Sabdar@Sun.COM 	case NDMP_FS_UNIX:
1813*7917SReza.Sabdar@Sun.COM 		ndmp_path_v3		unix_name;
1814*7917SReza.Sabdar@Sun.COM 	case NDMP_FS_NT:
1815*7917SReza.Sabdar@Sun.COM 		ndmp_nt_path_v3	nt_name;
1816*7917SReza.Sabdar@Sun.COM 	default:
1817*7917SReza.Sabdar@Sun.COM 		ndmp_path_v3		other_name;
1818*7917SReza.Sabdar@Sun.COM };
1819*7917SReza.Sabdar@Sun.COM 
1820*7917SReza.Sabdar@Sun.COM /* invalid bit */
1821*7917SReza.Sabdar@Sun.COM const NDMP_FILE_STAT_ATIME_INVALID	= 0x00000001;
1822*7917SReza.Sabdar@Sun.COM const NDMP_FILE_STAT_CTIME_INVALID	= 0x00000002;
1823*7917SReza.Sabdar@Sun.COM const NDMP_FILE_STAT_GROUP_INVALID	= 0x00000004;
1824*7917SReza.Sabdar@Sun.COM 
1825*7917SReza.Sabdar@Sun.COM struct ndmp_file_stat_v3
1826*7917SReza.Sabdar@Sun.COM {
1827*7917SReza.Sabdar@Sun.COM 	u_long			invalid;
1828*7917SReza.Sabdar@Sun.COM 	ndmp_fs_type		fs_type;
1829*7917SReza.Sabdar@Sun.COM 	ndmp_file_type		ftype;
1830*7917SReza.Sabdar@Sun.COM 	u_long			mtime;
1831*7917SReza.Sabdar@Sun.COM 	u_long			atime;
1832*7917SReza.Sabdar@Sun.COM 	u_long			ctime;
1833*7917SReza.Sabdar@Sun.COM 	u_long			owner; /* uid for UNIX, owner for NT */
1834*7917SReza.Sabdar@Sun.COM 	u_long			group; /* gid for UNIX, NA for NT */
1835*7917SReza.Sabdar@Sun.COM 	u_long			fattr; /* mode for UNIX, fattr for NT */
1836*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		size;
1837*7917SReza.Sabdar@Sun.COM 	u_long			links;
1838*7917SReza.Sabdar@Sun.COM };
1839*7917SReza.Sabdar@Sun.COM 
1840*7917SReza.Sabdar@Sun.COM 
1841*7917SReza.Sabdar@Sun.COM /* one file could have both UNIX and NT name and attributes */
1842*7917SReza.Sabdar@Sun.COM struct ndmp_file_v3
1843*7917SReza.Sabdar@Sun.COM {
1844*7917SReza.Sabdar@Sun.COM 	ndmp_file_name_v3	names<>;
1845*7917SReza.Sabdar@Sun.COM 	ndmp_file_stat_v3	stats<>;
1846*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		node;		/* used for the direct access */
1847*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		fh_info;	/* used for the direct access */
1848*7917SReza.Sabdar@Sun.COM };
1849*7917SReza.Sabdar@Sun.COM 
1850*7917SReza.Sabdar@Sun.COM struct ndmp_fh_add_file_request_v3
1851*7917SReza.Sabdar@Sun.COM {
1852*7917SReza.Sabdar@Sun.COM 	ndmp_file_v3		files<>;
1853*7917SReza.Sabdar@Sun.COM };
1854*7917SReza.Sabdar@Sun.COM /* no reply arguments */
1855*7917SReza.Sabdar@Sun.COM 
1856*7917SReza.Sabdar@Sun.COM /* NDMP_FH_ADD_DIR */
1857*7917SReza.Sabdar@Sun.COM 
1858*7917SReza.Sabdar@Sun.COM struct ndmp_dir_v3
1859*7917SReza.Sabdar@Sun.COM {
1860*7917SReza.Sabdar@Sun.COM 	ndmp_file_name_v3	names<>;
1861*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		node;
1862*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		parent;
1863*7917SReza.Sabdar@Sun.COM };
1864*7917SReza.Sabdar@Sun.COM 
1865*7917SReza.Sabdar@Sun.COM struct ndmp_fh_add_dir_request_v3
1866*7917SReza.Sabdar@Sun.COM {
1867*7917SReza.Sabdar@Sun.COM 	ndmp_dir_v3	dirs<>;
1868*7917SReza.Sabdar@Sun.COM };
1869*7917SReza.Sabdar@Sun.COM /* no reply arguments */
1870*7917SReza.Sabdar@Sun.COM 
1871*7917SReza.Sabdar@Sun.COM /* NDMP_FH_ADD_NODE */
1872*7917SReza.Sabdar@Sun.COM 
1873*7917SReza.Sabdar@Sun.COM struct ndmp_node_v3
1874*7917SReza.Sabdar@Sun.COM {
1875*7917SReza.Sabdar@Sun.COM 	ndmp_file_stat_v3	stats<>;
1876*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		node;
1877*7917SReza.Sabdar@Sun.COM 	ndmp_u_quad		fh_info;
1878*7917SReza.Sabdar@Sun.COM };
1879*7917SReza.Sabdar@Sun.COM 
1880*7917SReza.Sabdar@Sun.COM struct ndmp_fh_add_node_request_v3
1881*7917SReza.Sabdar@Sun.COM {
1882*7917SReza.Sabdar@Sun.COM 	ndmp_node_v3	nodes<>;
1883*7917SReza.Sabdar@Sun.COM };
1884*7917SReza.Sabdar@Sun.COM /* no reply arguments */
1885*7917SReza.Sabdar@Sun.COM 
1886*7917SReza.Sabdar@Sun.COM 
1887*7917SReza.Sabdar@Sun.COM /********************************/
1888*7917SReza.Sabdar@Sun.COM /* FILE HISTORY INTERFACE (V4) */
1889*7917SReza.Sabdar@Sun.COM /********************************/
1890*7917SReza.Sabdar@Sun.COM 
1891*7917SReza.Sabdar@Sun.COM /* NDMP_FH_ADD_FILE - same as V3 */
1892*7917SReza.Sabdar@Sun.COM 
1893*7917SReza.Sabdar@Sun.COM /* NDMP_FH_ADD_DIR - same as V3 */
1894*7917SReza.Sabdar@Sun.COM 
1895*7917SReza.Sabdar@Sun.COM /* NDMP_FH_ADD_NODE - same as V3 */
1896*7917SReza.Sabdar@Sun.COM 
1897*7917SReza.Sabdar@Sun.COM 
1898*7917SReza.Sabdar@Sun.COM 
1899*7917SReza.Sabdar@Sun.COM /********************************/
1900*7917SReza.Sabdar@Sun.COM /* NDMP requests		*/
1901*7917SReza.Sabdar@Sun.COM /********************************/
1902*7917SReza.Sabdar@Sun.COM /* CONNECT */
1903*7917SReza.Sabdar@Sun.COM typedef ndmp_auth_text ndmp_auth_text_v2;
1904*7917SReza.Sabdar@Sun.COM typedef ndmp_auth_text_v3 ndmp_auth_text_v4;
1905*7917SReza.Sabdar@Sun.COM typedef ndmp_auth_md5 ndmp_auth_md5_v2;
1906*7917SReza.Sabdar@Sun.COM typedef ndmp_auth_md5_v3 ndmp_auth_md5_v4;
1907*7917SReza.Sabdar@Sun.COM typedef ndmp_auth_data ndmp_auth_data_v2;
1908*7917SReza.Sabdar@Sun.COM typedef ndmp_auth_data_v3 ndmp_auth_data_v4;
1909*7917SReza.Sabdar@Sun.COM 
1910*7917SReza.Sabdar@Sun.COM typedef ndmp_connect_open_request ndmp_connect_open_request_v2;
1911*7917SReza.Sabdar@Sun.COM typedef ndmp_connect_open_request ndmp_connect_open_request_v3;
1912*7917SReza.Sabdar@Sun.COM typedef ndmp_connect_open_request ndmp_connect_open_request_v4;
1913*7917SReza.Sabdar@Sun.COM typedef ndmp_connect_open_reply ndmp_connect_open_reply_v2;
1914*7917SReza.Sabdar@Sun.COM typedef ndmp_connect_open_reply ndmp_connect_open_reply_v3;
1915*7917SReza.Sabdar@Sun.COM typedef ndmp_connect_open_reply ndmp_connect_open_reply_v4;
1916*7917SReza.Sabdar@Sun.COM typedef ndmp_connect_client_auth_request ndmp_connect_client_auth_request_v2;
1917*7917SReza.Sabdar@Sun.COM typedef ndmp_connect_client_auth_request_v3 ndmp_connect_client_auth_request_v4;
1918*7917SReza.Sabdar@Sun.COM typedef ndmp_connect_client_auth_reply ndmp_connect_client_auth_reply_v2;
1919*7917SReza.Sabdar@Sun.COM typedef ndmp_connect_client_auth_reply_v3 ndmp_connect_client_auth_reply_v4;
1920*7917SReza.Sabdar@Sun.COM typedef ndmp_connect_server_auth_request ndmp_connect_server_auth_request_v2;
1921*7917SReza.Sabdar@Sun.COM typedef ndmp_connect_server_auth_request ndmp_connect_server_auth_request_v3;
1922*7917SReza.Sabdar@Sun.COM typedef ndmp_connect_server_auth_request ndmp_connect_server_auth_request_v4;
1923*7917SReza.Sabdar@Sun.COM typedef ndmp_connect_server_auth_reply ndmp_connect_server_auth_reply_v2;
1924*7917SReza.Sabdar@Sun.COM typedef ndmp_connect_server_auth_reply ndmp_connect_server_auth_reply_v3;
1925*7917SReza.Sabdar@Sun.COM typedef ndmp_connect_server_auth_reply ndmp_connect_server_auth_reply_v4;
1926*7917SReza.Sabdar@Sun.COM 
1927*7917SReza.Sabdar@Sun.COM 
1928*7917SReza.Sabdar@Sun.COM /* CONFIG */
1929*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_host_info_reply ndmp_config_get_host_info_reply_v2;
1930*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_host_info_reply_v3 ndmp_config_get_host_info_reply_v4;
1931*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_butype_attr_request ndmp_config_get_butype_attr_request_v2;
1932*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_butype_attr_reply ndmp_config_get_butype_attr_reply_v2;
1933*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_mover_type_reply ndmp_config_get_mover_type_reply_v2;
1934*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_auth_attr_request ndmp_config_get_auth_attr_request_v2;
1935*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_auth_attr_request ndmp_config_get_auth_attr_request_v3;
1936*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_auth_attr_request ndmp_config_get_auth_attr_request_v4;
1937*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_auth_attr_reply ndmp_config_get_auth_attr_reply_v2;
1938*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_auth_attr_reply ndmp_config_get_auth_attr_reply_v3;
1939*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_auth_attr_reply ndmp_config_get_auth_attr_reply_v4;
1940*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_connection_type_reply_v3 ndmp_config_get_connection_type_reply_v4;
1941*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_server_info_reply_v3 ndmp_config_get_server_info_reply_v4;
1942*7917SReza.Sabdar@Sun.COM typedef ndmp_fs_info_v3 ndmp_fs_info_v4;
1943*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_fs_info_reply_v3 ndmp_config_get_fs_info_reply_v4;
1944*7917SReza.Sabdar@Sun.COM typedef ndmp_device_info_v3 ndmp_device_info_v4;
1945*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_tape_info_reply_v3  ndmp_config_get_tape_info_reply_v4;
1946*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_scsi_info_reply_v3 ndmp_config_get_scsi_info_reply_v4;
1947*7917SReza.Sabdar@Sun.COM typedef ndmp_config_get_ext_list_reply ndmp_config_get_ext_list_reply_v4;
1948*7917SReza.Sabdar@Sun.COM typedef ndmp_config_set_ext_list_request ndmp_config_set_ext_list_request_v4;
1949*7917SReza.Sabdar@Sun.COM typedef ndmp_config_set_ext_list_reply ndmp_config_set_ext_list_reply_v4;
1950*7917SReza.Sabdar@Sun.COM 
1951*7917SReza.Sabdar@Sun.COM 
1952*7917SReza.Sabdar@Sun.COM /* SCSI */
1953*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_open_request ndmp_scsi_open_request_v2;
1954*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_open_request_v3 ndmp_scsi_open_request_v4;
1955*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_open_reply ndmp_scsi_open_reply_v2;
1956*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_open_reply ndmp_scsi_open_reply_v3;
1957*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_open_reply ndmp_scsi_open_reply_v4;
1958*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_close_reply ndmp_scsi_close_reply_v2;
1959*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_close_reply ndmp_scsi_close_reply_v3;
1960*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_close_reply ndmp_scsi_close_reply_v4;
1961*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_get_state_reply ndmp_scsi_get_state_reply_v2;
1962*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_get_state_reply ndmp_scsi_get_state_reply_v3;
1963*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_get_state_reply ndmp_scsi_get_state_reply_v4;
1964*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_set_target_request ndmp_scsi_set_target_request_v2;
1965*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_set_target_reply ndmp_scsi_set_target_reply_v2;
1966*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_set_target_reply ndmp_scsi_set_target_reply_v3;
1967*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_reset_device_reply ndmp_scsi_reset_device_reply_v2;
1968*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_reset_device_reply ndmp_scsi_reset_device_reply_v3;
1969*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_reset_device_reply ndmp_scsi_reset_device_reply_v4;
1970*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_reset_bus_reply ndmp_scsi_reset_bus_reply_v2;
1971*7917SReza.Sabdar@Sun.COM typedef ndmp_scsi_reset_bus_reply ndmp_scsi_reset_bus_reply_v3;
1972*7917SReza.Sabdar@Sun.COM typedef ndmp_execute_cdb_request ndmp_scsi_execute_cdb_request_v2;
1973*7917SReza.Sabdar@Sun.COM typedef ndmp_execute_cdb_request ndmp_scsi_execute_cdb_request_v3;
1974*7917SReza.Sabdar@Sun.COM typedef ndmp_execute_cdb_request ndmp_scsi_execute_cdb_request_v4;
1975*7917SReza.Sabdar@Sun.COM typedef ndmp_execute_cdb_reply ndmp_scsi_execute_cdb_reply_v2;
1976*7917SReza.Sabdar@Sun.COM typedef ndmp_execute_cdb_reply ndmp_scsi_execute_cdb_reply_v3;
1977*7917SReza.Sabdar@Sun.COM typedef ndmp_execute_cdb_reply ndmp_scsi_execute_cdb_reply_v4;
1978*7917SReza.Sabdar@Sun.COM 
1979*7917SReza.Sabdar@Sun.COM 
1980*7917SReza.Sabdar@Sun.COM /* TAPE */
1981*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_open_request ndmp_tape_open_request_v2;
1982*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_open_request_v3 ndmp_tape_open_request_v4;
1983*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_open_reply ndmp_tape_open_reply_v2;
1984*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_open_reply ndmp_tape_open_reply_v3;
1985*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_open_reply ndmp_tape_open_reply_v4;
1986*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_close_reply ndmp_tape_close_reply_v2;
1987*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_close_reply ndmp_tape_close_reply_v3;
1988*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_close_reply ndmp_tape_close_reply_v4;
1989*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_get_state_reply ndmp_tape_get_state_reply_v2;
1990*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_mtio_request ndmp_tape_mtio_request_v2;
1991*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_mtio_request ndmp_tape_mtio_request_v3;
1992*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_mtio_request ndmp_tape_mtio_request_v4;
1993*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_mtio_reply ndmp_tape_mtio_reply_v2;
1994*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_mtio_reply ndmp_tape_mtio_reply_v3;
1995*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_mtio_reply ndmp_tape_mtio_reply_v4;
1996*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_write_request ndmp_tape_write_request_v2;
1997*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_write_request ndmp_tape_write_request_v3;
1998*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_write_request ndmp_tape_write_request_v4;
1999*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_write_reply ndmp_tape_write_reply_v2;
2000*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_write_reply ndmp_tape_write_reply_v3;
2001*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_write_reply ndmp_tape_write_reply_v4;
2002*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_read_request ndmp_tape_read_request_v2;
2003*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_read_request ndmp_tape_read_request_v3;
2004*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_read_request ndmp_tape_read_request_v4;
2005*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_read_reply ndmp_tape_read_reply_v2;
2006*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_read_reply ndmp_tape_read_reply_v3;
2007*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_read_reply ndmp_tape_read_reply_v4;
2008*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_execute_cdb_request ndmp_tape_execute_cdb_request_v2;
2009*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_execute_cdb_request ndmp_tape_execute_cdb_request_v3;
2010*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_execute_cdb_request ndmp_tape_execute_cdb_request_v4;
2011*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_execute_cdb_reply ndmp_tape_execute_cdb_reply_v2;
2012*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_execute_cdb_reply ndmp_tape_execute_cdb_reply_v3;
2013*7917SReza.Sabdar@Sun.COM typedef ndmp_tape_execute_cdb_reply ndmp_tape_execute_cdb_reply_v4;
2014*7917SReza.Sabdar@Sun.COM 
2015*7917SReza.Sabdar@Sun.COM 
2016*7917SReza.Sabdar@Sun.COM /* MOVER */
2017*7917SReza.Sabdar@Sun.COM typedef ndmp_fc_addr_v3 ndmp_fc_addr;
2018*7917SReza.Sabdar@Sun.COM typedef ndmp_ipc_addr_v3 ndmp_ipc_addr;
2019*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_get_state_reply ndmp_mover_get_state_reply_v2;
2020*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_listen_request ndmp_mover_listen_request_v2;
2021*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_listen_request ndmp_mover_listen_request_v3;
2022*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_listen_request ndmp_mover_listen_request_v4;
2023*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_listen_reply ndmp_mover_listen_reply_v2;
2024*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_set_record_size_request ndmp_mover_set_record_size_request_v2;
2025*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_set_record_size_request ndmp_mover_set_record_size_request_v3;
2026*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_set_record_size_request ndmp_mover_set_record_size_request_v4;
2027*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_set_record_size_reply ndmp_mover_set_record_size_reply_v2;
2028*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_set_record_size_reply ndmp_mover_set_record_size_reply_v3;
2029*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_set_record_size_reply ndmp_mover_set_record_size_reply_v4;
2030*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_set_window_request ndmp_mover_set_window_request_v2;
2031*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_set_window_request ndmp_mover_set_window_request_v3;
2032*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_set_window_request ndmp_mover_set_window_request_v4;
2033*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_set_window_reply ndmp_mover_set_window_reply_v2;
2034*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_set_window_reply ndmp_mover_set_window_reply_v3;
2035*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_set_window_reply ndmp_mover_set_window_reply_v4;
2036*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_continue_reply ndmp_mover_continue_reply_v2;
2037*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_continue_reply ndmp_mover_continue_reply_v3;
2038*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_continue_reply ndmp_mover_continue_reply_v4;
2039*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_abort_reply ndmp_mover_abort_reply_v2;
2040*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_abort_reply ndmp_mover_abort_reply_v3;
2041*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_abort_reply ndmp_mover_abort_reply_v4;
2042*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_stop_reply ndmp_mover_stop_reply_v2;
2043*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_stop_reply ndmp_mover_stop_reply_v3;
2044*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_stop_reply ndmp_mover_stop_reply_v4;
2045*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_read_request ndmp_mover_read_request_v2;
2046*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_read_request ndmp_mover_read_request_v3;
2047*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_read_request ndmp_mover_read_request_v4;
2048*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_read_reply ndmp_mover_read_reply_v2;
2049*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_read_reply ndmp_mover_read_reply_v3;
2050*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_read_reply ndmp_mover_read_reply_v4;
2051*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_close_reply ndmp_mover_close_reply_v2;
2052*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_close_reply ndmp_mover_close_reply_v3;
2053*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_close_reply ndmp_mover_close_reply_v4;
2054*7917SReza.Sabdar@Sun.COM typedef ndmp_mover_connect_reply_v3 ndmp_mover_connect_reply_v4;
2055*7917SReza.Sabdar@Sun.COM 
2056*7917SReza.Sabdar@Sun.COM 
2057*7917SReza.Sabdar@Sun.COM /* DATA */
2058*7917SReza.Sabdar@Sun.COM typedef ndmp_data_get_state_reply ndmp_data_get_state_reply_v2;
2059*7917SReza.Sabdar@Sun.COM typedef ndmp_data_start_backup_request ndmp_data_start_backup_request_v2;
2060*7917SReza.Sabdar@Sun.COM typedef ndmp_data_start_backup_request_v3 ndmp_data_start_backup_request_v4;
2061*7917SReza.Sabdar@Sun.COM typedef ndmp_data_start_backup_reply ndmp_data_start_backup_reply_v2;
2062*7917SReza.Sabdar@Sun.COM typedef ndmp_data_start_backup_reply ndmp_data_start_backup_reply_v3;
2063*7917SReza.Sabdar@Sun.COM typedef ndmp_data_start_backup_reply ndmp_data_start_backup_reply_v4;
2064*7917SReza.Sabdar@Sun.COM typedef ndmp_name ndmp_name_v2;
2065*7917SReza.Sabdar@Sun.COM typedef ndmp_data_start_recover_request ndmp_data_start_recover_request_v2;
2066*7917SReza.Sabdar@Sun.COM typedef ndmp_data_start_recover_request_v3 ndmp_data_start_recover_request_v4;
2067*7917SReza.Sabdar@Sun.COM typedef ndmp_data_start_recover_reply ndmp_data_start_recover_reply_v2;
2068*7917SReza.Sabdar@Sun.COM typedef ndmp_data_start_recover_reply ndmp_data_start_recover_reply_v3;
2069*7917SReza.Sabdar@Sun.COM typedef ndmp_data_start_recover_reply ndmp_data_start_recover_reply_v4;
2070*7917SReza.Sabdar@Sun.COM typedef ndmp_data_start_recover_reply ndmp_data_start_recover_filehist_reply_v4;
2071*7917SReza.Sabdar@Sun.COM typedef ndmp_data_abort_reply ndmp_data_abort_reply_v2;
2072*7917SReza.Sabdar@Sun.COM typedef ndmp_data_abort_reply ndmp_data_abort_reply_v3;
2073*7917SReza.Sabdar@Sun.COM typedef ndmp_data_abort_reply ndmp_data_abort_reply_v4;
2074*7917SReza.Sabdar@Sun.COM typedef ndmp_data_stop_reply ndmp_data_stop_reply_v2;
2075*7917SReza.Sabdar@Sun.COM typedef ndmp_data_stop_reply ndmp_data_stop_reply_v3;
2076*7917SReza.Sabdar@Sun.COM typedef ndmp_data_stop_reply ndmp_data_stop_reply_v4;
2077*7917SReza.Sabdar@Sun.COM typedef ndmp_data_get_env_reply ndmp_data_get_env_reply_v2;
2078*7917SReza.Sabdar@Sun.COM typedef ndmp_data_get_env_reply ndmp_data_get_env_reply_v3;
2079*7917SReza.Sabdar@Sun.COM typedef ndmp_data_get_env_reply ndmp_data_get_env_reply_v4;
2080*7917SReza.Sabdar@Sun.COM typedef ndmp_data_listen_request_v3 ndmp_data_listen_request_v4;
2081*7917SReza.Sabdar@Sun.COM typedef ndmp_data_connect_reply_v3 ndmp_data_connect_reply_v4;
2082*7917SReza.Sabdar@Sun.COM 
2083*7917SReza.Sabdar@Sun.COM 
2084*7917SReza.Sabdar@Sun.COM /* NOTIFY */
2085*7917SReza.Sabdar@Sun.COM typedef ndmp_notify_data_halted_request ndmp_notify_data_halted_request_v2;
2086*7917SReza.Sabdar@Sun.COM typedef ndmp_notify_data_halted_request ndmp_notify_data_halted_request_v3;
2087*7917SReza.Sabdar@Sun.COM typedef ndmp_notify_connected_request ndmp_notify_connection_status_request_v2;
2088*7917SReza.Sabdar@Sun.COM typedef ndmp_notify_connected_request ndmp_notify_connection_status_request_v3;
2089*7917SReza.Sabdar@Sun.COM typedef ndmp_notify_connected_request ndmp_notify_connection_status_request_v4;
2090*7917SReza.Sabdar@Sun.COM typedef ndmp_notify_mover_paused_request ndmp_notify_mover_paused_request_v2;
2091*7917SReza.Sabdar@Sun.COM typedef ndmp_notify_mover_paused_request ndmp_notify_mover_paused_request_v3;
2092*7917SReza.Sabdar@Sun.COM typedef ndmp_notify_mover_paused_request ndmp_notify_mover_paused_request_v4;
2093*7917SReza.Sabdar@Sun.COM typedef ndmp_notify_mover_halted_request ndmp_notify_mover_halted_request_v2;
2094*7917SReza.Sabdar@Sun.COM typedef ndmp_notify_mover_halted_request ndmp_notify_mover_halted_request_v3;
2095*7917SReza.Sabdar@Sun.COM typedef ndmp_notify_data_read_request ndmp_notify_data_read_request_v2;
2096*7917SReza.Sabdar@Sun.COM typedef ndmp_notify_data_read_request ndmp_notify_data_read_request_v3;
2097*7917SReza.Sabdar@Sun.COM typedef ndmp_notify_data_read_request ndmp_notify_data_read_request_v4;
2098*7917SReza.Sabdar@Sun.COM 
2099*7917SReza.Sabdar@Sun.COM 
2100*7917SReza.Sabdar@Sun.COM /* LOG */
2101*7917SReza.Sabdar@Sun.COM typedef ndmp_log_log_request ndmp_log_log_request_v2;
2102*7917SReza.Sabdar@Sun.COM typedef ndmp_log_log_request ndmp_log_log_request_v3;
2103*7917SReza.Sabdar@Sun.COM typedef ndmp_log_log_request ndmp_log_log_request_v4;
2104*7917SReza.Sabdar@Sun.COM typedef ndmp_log_debug_request ndmp_log_debug_request_v2;
2105*7917SReza.Sabdar@Sun.COM typedef ndmp_log_debug_request ndmp_log_debug_request_v3;
2106*7917SReza.Sabdar@Sun.COM typedef ndmp_log_debug_request ndmp_log_debug_request_v4;
2107*7917SReza.Sabdar@Sun.COM typedef ndmp_log_file_request ndmp_log_file_request_v2;
2108*7917SReza.Sabdar@Sun.COM 
2109*7917SReza.Sabdar@Sun.COM 
2110*7917SReza.Sabdar@Sun.COM /* FILE HISTORY */
2111*7917SReza.Sabdar@Sun.COM typedef ndmp_file_v3 ndmp_file;
2112*7917SReza.Sabdar@Sun.COM typedef ndmp_dir_v3 ndmp_dir;
2113*7917SReza.Sabdar@Sun.COM typedef ndmp_node_v3 ndmp_node;
2114*7917SReza.Sabdar@Sun.COM typedef ndmp_fh_add_unix_path_request ndmp_fh_add_unix_path_request_v2;
2115*7917SReza.Sabdar@Sun.COM typedef ndmp_fh_add_unix_path_request ndmp_fh_add_unix_path_request_v3;
2116*7917SReza.Sabdar@Sun.COM typedef ndmp_fh_add_file_request_v3 ndmp_fh_add_file_request_v4;
2117*7917SReza.Sabdar@Sun.COM typedef ndmp_fh_add_unix_dir_request ndmp_fh_add_unix_dir_request_v2;
2118*7917SReza.Sabdar@Sun.COM typedef ndmp_fh_add_unix_dir_request ndmp_fh_add_unix_dir_request_v3;
2119*7917SReza.Sabdar@Sun.COM typedef ndmp_fh_add_dir_request_v3 ndmp_fh_add_dir_request_v4;
2120*7917SReza.Sabdar@Sun.COM typedef ndmp_fh_add_unix_node_request ndmp_fh_add_unix_node_request_v2;
2121*7917SReza.Sabdar@Sun.COM typedef ndmp_fh_add_unix_node_request ndmp_fh_add_unix_node_request_v3;
2122*7917SReza.Sabdar@Sun.COM typedef ndmp_fh_add_node_request_v3 ndmp_fh_add_node_request_v4;
2123*7917SReza.Sabdar@Sun.COM 
2124*7917SReza.Sabdar@Sun.COM 
2125*7917SReza.Sabdar@Sun.COM 
2126*7917SReza.Sabdar@Sun.COM 
2127*7917SReza.Sabdar@Sun.COM 
2128*7917SReza.Sabdar@Sun.COM 
2129*7917SReza.Sabdar@Sun.COM 
2130*7917SReza.Sabdar@Sun.COM 
2131*7917SReza.Sabdar@Sun.COM 
2132*7917SReza.Sabdar@Sun.COM 
2133*7917SReza.Sabdar@Sun.COM 
2134*7917SReza.Sabdar@Sun.COM 
2135*7917SReza.Sabdar@Sun.COM 
2136*7917SReza.Sabdar@Sun.COM 
2137*7917SReza.Sabdar@Sun.COM 
2138*7917SReza.Sabdar@Sun.COM 
2139*7917SReza.Sabdar@Sun.COM 
2140*7917SReza.Sabdar@Sun.COM 
2141*7917SReza.Sabdar@Sun.COM 
2142*7917SReza.Sabdar@Sun.COM 
2143*7917SReza.Sabdar@Sun.COM 
2144*7917SReza.Sabdar@Sun.COM 
2145*7917SReza.Sabdar@Sun.COM 
2146*7917SReza.Sabdar@Sun.COM 
2147*7917SReza.Sabdar@Sun.COM 
2148*7917SReza.Sabdar@Sun.COM 
2149*7917SReza.Sabdar@Sun.COM 
2150*7917SReza.Sabdar@Sun.COM 
2151*7917SReza.Sabdar@Sun.COM 
2152*7917SReza.Sabdar@Sun.COM 
2153*7917SReza.Sabdar@Sun.COM 
2154*7917SReza.Sabdar@Sun.COM 
2155*7917SReza.Sabdar@Sun.COM 
2156*7917SReza.Sabdar@Sun.COM 
2157*7917SReza.Sabdar@Sun.COM 
2158*7917SReza.Sabdar@Sun.COM 
2159*7917SReza.Sabdar@Sun.COM 
2160