1 /*
2  * Copyright (c) 1998,1999,2000
3  *      Traakan, Inc., Los Altos, CA
4  *      All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice unmodified, this list of conditions, and the following
11  *    disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26  * SUCH DAMAGE.
27  */
28 
29 /*
30  * Project:  NDMJOB
31  * Ident:    $Id: $
32  *
33  * Description:
34  *
35  */
36 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
41 #define NDMNMB_FLAG_NO_FREE 1
42 #define NDMNMB_FLAG_NO_SEND 2
43 
44 /*
45  * Most replies are regular in that 'error' is the
46  * first field. This affords certain efficiencies
47  * and conveniences in the implementation.
48  * NDMPv3 introduced replies that broke this regularity.
49  * This is used to work around such replies
50  * in areas that otherwise take advantage
51  * of the convenient regularity.
52  */
53 
54 struct ndmp3_unfortunate_error {
55   uint32_t invalid_probably;
56   ndmp9_error error;
57 };
58 
59 /*
60  * NDMNMB_IS_UNFORTUNATE_REPLY_TYPE(vers,msg)
61  */
62 #ifdef NDMOS_EFFECT_NO_NDMP3_NOR_NDMP4
63 #define NDMNMB_IS_UNFORTUNATE_REPLY_TYPE(vers, msg) 0
64 #else /* NDMOS_EFFECT_NO_NDMP3_NOR_NDMP4 */
65 #ifndef NDMOS_OPTION_NO_NDMP3
66 #define NDMNMB_IS_UNFORTUNATE_REPLY_TYPE_V3(vers, msg) \
67   ((vers) == NDMP3VER &&                               \
68    ((msg) == NDMP3_TAPE_GET_STATE || (msg) == NDMP3_DATA_GET_STATE))
69 #else /* !NDMOS_OPTION_NO_NDMP3 */
70 #define NDMNMB_IS_UNFORTUNATE_REPLY_TYPE_V3(vers, msg) 0
71 #endif /* !NDMOS_OPTION_NO_NDMP3 */
72 
73 #ifndef NDMOS_OPTION_NO_NDMP4
74 #define NDMNMB_IS_UNFORTUNATE_REPLY_TYPE_V4(vers, msg) \
75   ((vers) == NDMP4VER &&                               \
76    ((msg) == NDMP4_TAPE_GET_STATE || (msg) == NDMP4_DATA_GET_STATE))
77 #else /* !NDMOS_OPTION_NO_NDMP4 */
78 #define NDMNMB_IS_UNFORTUNATE_REPLY_TYPE_V4(vers, msg) 0
79 #endif /* !NDMOS_OPTION_NO_NDMP4 */
80 #define NDMNMB_IS_UNFORTUNATE_REPLY_TYPE(vers, msg)  \
81   (NDMNMB_IS_UNFORTUNATE_REPLY_TYPE_V3(vers, msg) || \
82    NDMNMB_IS_UNFORTUNATE_REPLY_TYPE_V4(vers, msg))
83 #endif /* NDMOS_EFFECT_NO_NDMP3_NOR_NDMP4 */
84 
85 /* 92 bytes, checked 970930 */
86 struct ndmp_msg_buf {
87   ndmp0_header header;
88   unsigned char protocol_version;
89   unsigned char flags;
90   unsigned char _pad[2];
91   union {
92     ndmp0_connect_open_request ndmp0_connect_open_request_body;
93     ndmp0_connect_open_reply ndmp0_connect_open_reply_body;
94     ndmp0_notify_connected_request ndmp0_notify_connected_request_body;
95 
96 #ifndef NDMOS_OPTION_NO_NDMP2
97     ndmp2_error ndmp2_error_reply;
98     ndmp2_connect_open_request ndmp2_connect_open_request_body;
99     ndmp2_connect_open_reply ndmp2_connect_open_reply_body;
100     ndmp2_connect_client_auth_request ndmp2_connect_client_auth_request_body;
101     ndmp2_connect_client_auth_reply ndmp2_connect_client_auth_reply_body;
102     ndmp2_connect_server_auth_request ndmp2_connect_server_auth_request_body;
103     ndmp2_connect_server_auth_reply ndmp2_connect_server_auth_reply_body;
104     ndmp2_config_get_host_info_reply ndmp2_config_get_host_info_reply_body;
105     ndmp2_config_get_butype_attr_request
106         ndmp2_config_get_butype_attr_request_body;
107     ndmp2_config_get_butype_attr_reply ndmp2_config_get_butype_attr_reply_body;
108     ndmp2_config_get_mover_type_reply ndmp2_config_get_mover_type_reply_body;
109     ndmp2_config_get_auth_attr_request ndmp2_config_get_auth_attr_request_body;
110     ndmp2_config_get_auth_attr_reply ndmp2_config_get_auth_attr_reply_body;
111     ndmp2_scsi_open_request ndmp2_scsi_open_request_body;
112     ndmp2_scsi_open_reply ndmp2_scsi_open_reply_body;
113     ndmp2_scsi_close_reply ndmp2_scsi_close_reply_body;
114     ndmp2_scsi_get_state_reply ndmp2_scsi_get_state_reply_body;
115     ndmp2_scsi_set_target_request ndmp2_scsi_set_target_request_body;
116     ndmp2_scsi_set_target_reply ndmp2_scsi_set_target_reply_body;
117     ndmp2_scsi_reset_device_reply ndmp2_scsi_reset_device_reply_body;
118     ndmp2_scsi_reset_bus_reply ndmp2_scsi_reset_bus_reply_body;
119     ndmp2_scsi_execute_cdb_request ndmp2_scsi_execute_cdb_request_body;
120     ndmp2_scsi_execute_cdb_reply ndmp2_scsi_execute_cdb_reply_body;
121     ndmp2_tape_open_request ndmp2_tape_open_request_body;
122     ndmp2_tape_open_reply ndmp2_tape_open_reply_body;
123     ndmp2_tape_close_reply ndmp2_tape_close_reply_body;
124     ndmp2_tape_get_state_reply ndmp2_tape_get_state_reply_body;
125     ndmp2_tape_mtio_request ndmp2_tape_mtio_request_body;
126     ndmp2_tape_mtio_reply ndmp2_tape_mtio_reply_body;
127     ndmp2_tape_write_request ndmp2_tape_write_request_body;
128     ndmp2_tape_write_reply ndmp2_tape_write_reply_body;
129     ndmp2_tape_read_request ndmp2_tape_read_request_body;
130     ndmp2_tape_read_reply ndmp2_tape_read_reply_body;
131     ndmp2_tape_execute_cdb_request ndmp2_tape_execute_cdb_request_body;
132     ndmp2_tape_execute_cdb_reply ndmp2_tape_execute_cdb_reply_body;
133     ndmp2_data_get_state_reply ndmp2_data_get_state_reply_body;
134     ndmp2_data_start_backup_request ndmp2_data_start_backup_request_body;
135     ndmp2_data_start_backup_reply ndmp2_data_start_backup_reply_body;
136     ndmp2_data_start_recover_request ndmp2_data_start_recover_request_body;
137     ndmp2_data_start_recover_reply ndmp2_data_start_recover_reply_body;
138     ndmp2_data_abort_reply ndmp2_data_abort_reply_body;
139     ndmp2_data_get_env_reply ndmp2_data_get_env_reply_body;
140     ndmp2_data_stop_reply ndmp2_data_stop_reply_body;
141     ndmp2_data_start_recover_filehist_request
142         ndmp2_data_start_recover_filehist_request_body;
143     ndmp2_data_start_recover_filehist_reply
144         ndmp2_data_start_recover_filehist_reply_body;
145     ndmp2_notify_data_halted_request ndmp2_notify_data_halted_request_body;
146     ndmp2_notify_connected_request ndmp2_notify_connected_request_body;
147     ndmp2_notify_mover_halted_request ndmp2_notify_mover_halted_request_body;
148     ndmp2_notify_mover_paused_request ndmp2_notify_mover_paused_request_body;
149     ndmp2_notify_data_read_request ndmp2_notify_data_read_request_body;
150     ndmp2_log_log_request ndmp2_log_log_request_body;
151     ndmp2_log_debug_request ndmp2_log_debug_request_body;
152     ndmp2_log_file_request ndmp2_log_file_request_body;
153     ndmp2_fh_add_unix_path_request ndmp2_fh_add_unix_path_request_body;
154     ndmp2_fh_add_unix_dir_request ndmp2_fh_add_unix_dir_request_body;
155     ndmp2_fh_add_unix_node_request ndmp2_fh_add_unix_node_request_body;
156     ndmp2_mover_get_state_reply ndmp2_mover_get_state_reply_body;
157     ndmp2_mover_listen_request ndmp2_mover_listen_request_body;
158     ndmp2_mover_listen_reply ndmp2_mover_listen_reply_body;
159     ndmp2_mover_continue_reply ndmp2_mover_continue_reply_body;
160     ndmp2_mover_abort_reply ndmp2_mover_abort_reply_body;
161     ndmp2_mover_stop_reply ndmp2_mover_stop_reply_body;
162     ndmp2_mover_set_window_request ndmp2_mover_set_window_request_body;
163     ndmp2_mover_set_window_reply ndmp2_mover_set_window_reply_body;
164     ndmp2_mover_read_request ndmp2_mover_read_request_body;
165     ndmp2_mover_read_reply ndmp2_mover_read_reply_body;
166     ndmp2_mover_close_reply ndmp2_mover_close_reply_body;
167     ndmp2_mover_set_record_size_request
168         ndmp2_mover_set_record_size_request_body;
169     ndmp2_mover_set_record_size_reply ndmp2_mover_set_record_size_reply_body;
170 
171 #endif /* !NDMOS_OPTION_NO_NDMP2 */
172 
173 #ifndef NDMOS_OPTION_NO_NDMP3
174     ndmp3_error ndmp3_error_reply;
175     ndmp3_connect_open_request ndmp3_connect_open_request_body;
176     ndmp3_connect_open_reply ndmp3_connect_open_reply_body;
177     ndmp3_connect_client_auth_request ndmp3_connect_client_auth_request_body;
178     ndmp3_connect_client_auth_reply ndmp3_connect_client_auth_reply_body;
179     ndmp3_connect_server_auth_request ndmp3_connect_server_auth_request_body;
180     ndmp3_connect_server_auth_reply ndmp3_connect_server_auth_reply_body;
181     ndmp3_config_get_host_info_reply ndmp3_config_get_host_info_reply_body;
182     ndmp3_config_get_connection_type_reply
183         ndmp3_config_get_connection_type_reply_body;
184     ndmp3_config_get_auth_attr_request ndmp3_config_get_auth_attr_request_body;
185     ndmp3_config_get_auth_attr_reply ndmp3_config_get_auth_attr_reply_body;
186     ndmp3_config_get_butype_info_reply ndmp3_config_get_butype_info_reply_body;
187     ndmp3_config_get_fs_info_reply ndmp3_config_get_fs_info_reply_body;
188     ndmp3_config_get_tape_info_reply ndmp3_config_get_tape_info_reply_body;
189     ndmp3_config_get_scsi_info_reply ndmp3_config_get_scsi_info_reply_body;
190     ndmp3_config_get_server_info_reply ndmp3_config_get_server_info_reply_body;
191     ndmp3_scsi_open_request ndmp3_scsi_open_request_body;
192     ndmp3_scsi_open_reply ndmp3_scsi_open_reply_body;
193     ndmp3_scsi_close_reply ndmp3_scsi_close_reply_body;
194     ndmp3_scsi_get_state_reply ndmp3_scsi_get_state_reply_body;
195     ndmp3_scsi_set_target_request ndmp3_scsi_set_target_request_body;
196     ndmp3_scsi_set_target_reply ndmp3_scsi_set_target_reply_body;
197     ndmp3_scsi_reset_device_reply ndmp3_scsi_reset_device_reply_body;
198     ndmp3_scsi_reset_bus_reply ndmp3_scsi_reset_bus_reply_body;
199     ndmp3_scsi_execute_cdb_request ndmp3_scsi_execute_cdb_request_body;
200     ndmp3_scsi_execute_cdb_reply ndmp3_scsi_execute_cdb_reply_body;
201     ndmp3_tape_open_request ndmp3_tape_open_request_body;
202     ndmp3_tape_open_reply ndmp3_tape_open_reply_body;
203     ndmp3_tape_close_reply ndmp3_tape_close_reply_body;
204     ndmp3_tape_get_state_reply ndmp3_tape_get_state_reply_body;
205     ndmp3_tape_mtio_request ndmp3_tape_mtio_request_body;
206     ndmp3_tape_mtio_reply ndmp3_tape_mtio_reply_body;
207     ndmp3_tape_write_request ndmp3_tape_write_request_body;
208     ndmp3_tape_write_reply ndmp3_tape_write_reply_body;
209     ndmp3_tape_read_request ndmp3_tape_read_request_body;
210     ndmp3_tape_read_reply ndmp3_tape_read_reply_body;
211     ndmp3_tape_execute_cdb_request ndmp3_tape_execute_cdb_request_body;
212     ndmp3_tape_execute_cdb_reply ndmp3_tape_execute_cdb_reply_body;
213     ndmp3_data_get_state_reply ndmp3_data_get_state_reply_body;
214     ndmp3_data_start_backup_request ndmp3_data_start_backup_request_body;
215     ndmp3_data_start_backup_reply ndmp3_data_start_backup_reply_body;
216     ndmp3_data_start_recover_request ndmp3_data_start_recover_request_body;
217     ndmp3_data_start_recover_reply ndmp3_data_start_recover_reply_body;
218     ndmp3_data_abort_reply ndmp3_data_abort_reply_body;
219     ndmp3_data_get_env_reply ndmp3_data_get_env_reply_body;
220     ndmp3_data_stop_reply ndmp3_data_stop_reply_body;
221     ndmp3_data_start_recover_filehist_request
222         ndmp3_data_start_recover_filehist_request_body;
223     ndmp3_data_start_recover_filehist_reply
224         ndmp3_data_start_recover_filehist_reply_body;
225     ndmp3_data_listen_request ndmp3_data_listen_request_body;
226     ndmp3_data_listen_reply ndmp3_data_listen_reply_body;
227     ndmp3_data_connect_request ndmp3_data_connect_request_body;
228     ndmp3_data_connect_reply ndmp3_data_connect_reply_body;
229     ndmp3_notify_data_halted_request ndmp3_notify_data_halted_request_body;
230     ndmp3_notify_connected_request ndmp3_notify_connected_request_body;
231     ndmp3_notify_mover_halted_request ndmp3_notify_mover_halted_request_body;
232     ndmp3_notify_mover_paused_request ndmp3_notify_mover_paused_request_body;
233     ndmp3_notify_data_read_request ndmp3_notify_data_read_request_body;
234     ndmp3_log_file_request ndmp3_log_file_request_body;
235     ndmp3_log_message_request ndmp3_log_message_request_body;
236     ndmp3_fh_add_file_request ndmp3_fh_add_file_request_body;
237     ndmp3_fh_add_dir_request ndmp3_fh_add_dir_request_body;
238     ndmp3_fh_add_node_request ndmp3_fh_add_node_request_body;
239     ndmp3_mover_get_state_reply ndmp3_mover_get_state_reply_body;
240     ndmp3_mover_listen_request ndmp3_mover_listen_request_body;
241     ndmp3_mover_listen_reply ndmp3_mover_listen_reply_body;
242     ndmp3_mover_continue_reply ndmp3_mover_continue_reply_body;
243     ndmp3_mover_abort_reply ndmp3_mover_abort_reply_body;
244     ndmp3_mover_stop_reply ndmp3_mover_stop_reply_body;
245     ndmp3_mover_set_window_request ndmp3_mover_set_window_request_body;
246     ndmp3_mover_set_window_reply ndmp3_mover_set_window_reply_body;
247     ndmp3_mover_read_request ndmp3_mover_read_request_body;
248     ndmp3_mover_read_reply ndmp3_mover_read_reply_body;
249     ndmp3_mover_close_reply ndmp3_mover_close_reply_body;
250     ndmp3_mover_set_record_size_request
251         ndmp3_mover_set_record_size_request_body;
252     ndmp3_mover_set_record_size_reply ndmp3_mover_set_record_size_reply_body;
253     ndmp3_mover_connect_request ndmp3_mover_connect_request_body;
254     ndmp3_mover_connect_reply ndmp3_mover_connect_reply_body;
255 
256 #endif /* !NDMOS_OPTION_NO_NDMP3 */
257 
258 #ifndef NDMOS_OPTION_NO_NDMP4
259     ndmp4_error ndmp4_error_reply;
260     ndmp4_connect_open_request ndmp4_connect_open_request_body;
261     ndmp4_connect_open_reply ndmp4_connect_open_reply_body;
262     ndmp4_connect_client_auth_request ndmp4_connect_client_auth_request_body;
263     ndmp4_connect_client_auth_reply ndmp4_connect_client_auth_reply_body;
264     ndmp4_connect_server_auth_request ndmp4_connect_server_auth_request_body;
265     ndmp4_connect_server_auth_reply ndmp4_connect_server_auth_reply_body;
266     ndmp4_config_get_host_info_reply ndmp4_config_get_host_info_reply_body;
267     ndmp4_config_get_connection_type_reply
268         ndmp4_config_get_connection_type_reply_body;
269     ndmp4_config_get_auth_attr_request ndmp4_config_get_auth_attr_request_body;
270     ndmp4_config_get_auth_attr_reply ndmp4_config_get_auth_attr_reply_body;
271     ndmp4_config_get_butype_info_reply ndmp4_config_get_butype_info_reply_body;
272     ndmp4_config_get_fs_info_reply ndmp4_config_get_fs_info_reply_body;
273     ndmp4_config_get_tape_info_reply ndmp4_config_get_tape_info_reply_body;
274     ndmp4_config_get_scsi_info_reply ndmp4_config_get_scsi_info_reply_body;
275     ndmp4_config_get_server_info_reply ndmp4_config_get_server_info_reply_body;
276     ndmp4_scsi_open_request ndmp4_scsi_open_request_body;
277     ndmp4_scsi_open_reply ndmp4_scsi_open_reply_body;
278     ndmp4_scsi_close_reply ndmp4_scsi_close_reply_body;
279     ndmp4_scsi_get_state_reply ndmp4_scsi_get_state_reply_body;
280     ndmp4_scsi_reset_device_reply ndmp4_scsi_reset_device_reply_body;
281     ndmp4_scsi_execute_cdb_request ndmp4_scsi_execute_cdb_request_body;
282     ndmp4_scsi_execute_cdb_reply ndmp4_scsi_execute_cdb_reply_body;
283     ndmp4_tape_open_request ndmp4_tape_open_request_body;
284     ndmp4_tape_open_reply ndmp4_tape_open_reply_body;
285     ndmp4_tape_close_reply ndmp4_tape_close_reply_body;
286     ndmp4_tape_get_state_reply ndmp4_tape_get_state_reply_body;
287     ndmp4_tape_mtio_request ndmp4_tape_mtio_request_body;
288     ndmp4_tape_mtio_reply ndmp4_tape_mtio_reply_body;
289     ndmp4_tape_write_request ndmp4_tape_write_request_body;
290     ndmp4_tape_write_reply ndmp4_tape_write_reply_body;
291     ndmp4_tape_read_request ndmp4_tape_read_request_body;
292     ndmp4_tape_read_reply ndmp4_tape_read_reply_body;
293     ndmp4_tape_execute_cdb_request ndmp4_tape_execute_cdb_request_body;
294     ndmp4_tape_execute_cdb_reply ndmp4_tape_execute_cdb_reply_body;
295     ndmp4_data_get_state_reply ndmp4_data_get_state_reply_body;
296     ndmp4_data_start_backup_request ndmp4_data_start_backup_request_body;
297     ndmp4_data_start_backup_reply ndmp4_data_start_backup_reply_body;
298     ndmp4_data_start_recover_request ndmp4_data_start_recover_request_body;
299     ndmp4_data_start_recover_reply ndmp4_data_start_recover_reply_body;
300     ndmp4_data_abort_reply ndmp4_data_abort_reply_body;
301     ndmp4_data_get_env_reply ndmp4_data_get_env_reply_body;
302     ndmp4_data_stop_reply ndmp4_data_stop_reply_body;
303     ndmp4_data_start_recover_filehist_request
304         ndmp4_data_start_recover_filehist_request_body;
305     ndmp4_data_start_recover_filehist_reply
306         ndmp4_data_start_recover_filehist_reply_body;
307     ndmp4_data_listen_request ndmp4_data_listen_request_body;
308     ndmp4_data_listen_reply ndmp4_data_listen_reply_body;
309     ndmp4_data_connect_request ndmp4_data_connect_request_body;
310     ndmp4_data_connect_reply ndmp4_data_connect_reply_body;
311     ndmp4_notify_data_halted_post ndmp4_notify_data_halted_post_body;
312     ndmp4_notify_connection_status_post
313         ndmp4_notify_connection_status_post_body;
314     ndmp4_notify_mover_halted_post ndmp4_notify_mover_halted_post_body;
315     ndmp4_notify_mover_paused_post ndmp4_notify_mover_paused_post_body;
316     ndmp4_notify_data_read_post ndmp4_notify_data_read_post_body;
317     ndmp4_log_file_post ndmp4_log_file_post_body;
318     ndmp4_log_message_post ndmp4_log_message_post_body;
319     ndmp4_fh_add_file_post ndmp4_fh_add_file_post_body;
320     ndmp4_fh_add_dir_post ndmp4_fh_add_dir_post_body;
321     ndmp4_fh_add_node_post ndmp4_fh_add_node_post_body;
322     ndmp4_mover_get_state_reply ndmp4_mover_get_state_reply_body;
323     ndmp4_mover_listen_request ndmp4_mover_listen_request_body;
324     ndmp4_mover_listen_reply ndmp4_mover_listen_reply_body;
325     ndmp4_mover_continue_reply ndmp4_mover_continue_reply_body;
326     ndmp4_mover_abort_reply ndmp4_mover_abort_reply_body;
327     ndmp4_mover_stop_reply ndmp4_mover_stop_reply_body;
328     ndmp4_mover_set_window_request ndmp4_mover_set_window_request_body;
329     ndmp4_mover_set_window_reply ndmp4_mover_set_window_reply_body;
330     ndmp4_mover_read_request ndmp4_mover_read_request_body;
331     ndmp4_mover_read_reply ndmp4_mover_read_reply_body;
332     ndmp4_mover_close_reply ndmp4_mover_close_reply_body;
333     ndmp4_mover_set_record_size_request
334         ndmp4_mover_set_record_size_request_body;
335     ndmp4_mover_set_record_size_reply ndmp4_mover_set_record_size_reply_body;
336     ndmp4_mover_connect_request ndmp4_mover_connect_request_body;
337     ndmp4_mover_connect_reply ndmp4_mover_connect_reply_body;
338 
339 #endif /* !NDMOS_OPTION_NO_NDMP4 */
340 
341     ndmp0_error error;
342     struct ndmp3_unfortunate_error unf3_error;
343 
344     ndmp9_error ndmp9_error_reply;
345     ndmp9_connect_open_request ndmp9_connect_open_request_body;
346     ndmp9_connect_open_reply ndmp9_connect_open_reply_body;
347     ndmp9_connect_close_request ndmp9_connect_close_request_body;
348     ndmp9_connect_close_reply ndmp9_connect_close_reply_body;
349     ndmp9_connect_client_auth_request ndmp9_connect_client_auth_request_body;
350     ndmp9_connect_client_auth_reply ndmp9_connect_client_auth_reply_body;
351     ndmp9_connect_server_auth_request ndmp9_connect_server_auth_request_body;
352     ndmp9_connect_server_auth_reply ndmp9_connect_server_auth_reply_body;
353     ndmp9_config_get_host_info_reply ndmp9_config_get_host_info_reply_body;
354     ndmp9_config_get_server_info_reply ndmp9_config_get_server_info_reply_body;
355 
356     ndmp9_config_get_butype_info_reply ndmp9_config_get_butype_info_reply_body;
357     ndmp9_config_get_fs_info_reply ndmp9_config_get_fs_info_reply_body;
358     ndmp9_config_get_tape_info_reply ndmp9_config_get_tape_info_reply_body;
359     ndmp9_config_get_scsi_info_reply ndmp9_config_get_scsi_info_reply_body;
360     ndmp9_config_get_info_reply ndmp9_config_get_info_reply_body;
361     ndmp9_config_get_auth_attr_request ndmp9_config_get_auth_attr_request_body;
362     ndmp9_config_get_auth_attr_reply ndmp9_config_get_auth_attr_reply_body;
363     ndmp9_scsi_open_request ndmp9_scsi_open_request_body;
364     ndmp9_scsi_open_reply ndmp9_scsi_open_reply_body;
365     ndmp9_scsi_close_reply ndmp9_scsi_close_reply_body;
366     ndmp9_scsi_get_state_reply ndmp9_scsi_get_state_reply_body;
367     ndmp9_scsi_set_target_request ndmp9_scsi_set_target_request_body;
368     ndmp9_scsi_set_target_reply ndmp9_scsi_set_target_reply_body;
369     ndmp9_scsi_reset_device_reply ndmp9_scsi_reset_device_reply_body;
370     ndmp9_scsi_reset_bus_reply ndmp9_scsi_reset_bus_reply_body;
371     ndmp9_scsi_execute_cdb_request ndmp9_scsi_execute_cdb_request_body;
372     ndmp9_scsi_execute_cdb_reply ndmp9_scsi_execute_cdb_reply_body;
373     ndmp9_tape_open_request ndmp9_tape_open_request_body;
374     ndmp9_tape_open_reply ndmp9_tape_open_reply_body;
375     ndmp9_tape_close_reply ndmp9_tape_close_reply_body;
376     ndmp9_tape_get_state_reply ndmp9_tape_get_state_reply_body;
377     ndmp9_tape_mtio_request ndmp9_tape_mtio_request_body;
378     ndmp9_tape_mtio_reply ndmp9_tape_mtio_reply_body;
379     ndmp9_tape_write_request ndmp9_tape_write_request_body;
380     ndmp9_tape_write_reply ndmp9_tape_write_reply_body;
381     ndmp9_tape_read_request ndmp9_tape_read_request_body;
382     ndmp9_tape_read_reply ndmp9_tape_read_reply_body;
383     ndmp9_tape_execute_cdb_request ndmp9_tape_execute_cdb_request_body;
384     ndmp9_tape_execute_cdb_reply ndmp9_tape_execute_cdb_reply_body;
385     ndmp9_data_get_state_reply ndmp9_data_get_state_reply_body;
386     ndmp9_data_start_backup_request ndmp9_data_start_backup_request_body;
387     ndmp9_data_start_backup_reply ndmp9_data_start_backup_reply_body;
388     ndmp9_data_start_recover_request ndmp9_data_start_recover_request_body;
389     ndmp9_data_start_recover_reply ndmp9_data_start_recover_reply_body;
390     ndmp9_data_abort_reply ndmp9_data_abort_reply_body;
391     ndmp9_data_get_env_reply ndmp9_data_get_env_reply_body;
392     ndmp9_data_stop_reply ndmp9_data_stop_reply_body;
393     ndmp9_data_start_recover_filehist_request
394         ndmp9_data_start_recover_filehist_request_body;
395     ndmp9_data_start_recover_filehist_reply
396         ndmp9_data_start_recover_filehist_reply_body;
397     ndmp9_data_listen_request ndmp9_data_listen_request_body;
398     ndmp9_data_listen_reply ndmp9_data_listen_reply_body;
399     ndmp9_data_connect_request ndmp9_data_connect_request_body;
400     ndmp9_data_connect_reply ndmp9_data_connect_reply_body;
401     ndmp9_notify_data_halted_request ndmp9_notify_data_halted_request_body;
402     ndmp9_notify_connected_request ndmp9_notify_connected_request_body;
403     ndmp9_notify_mover_halted_request ndmp9_notify_mover_halted_request_body;
404     ndmp9_notify_mover_paused_request ndmp9_notify_mover_paused_request_body;
405     ndmp9_notify_data_read_request ndmp9_notify_data_read_request_body;
406     ndmp9_log_file_request ndmp9_log_file_request_body;
407     ndmp9_log_message_request ndmp9_log_message_request_body;
408     ndmp9_fh_add_file_request ndmp9_fh_add_file_request_body;
409     ndmp9_fh_add_dir_request ndmp9_fh_add_dir_request_body;
410     ndmp9_fh_add_node_request ndmp9_fh_add_node_request_body;
411     ndmp9_mover_get_state_reply ndmp9_mover_get_state_reply_body;
412     ndmp9_mover_listen_request ndmp9_mover_listen_request_body;
413     ndmp9_mover_listen_reply ndmp9_mover_listen_reply_body;
414     ndmp9_mover_continue_reply ndmp9_mover_continue_reply_body;
415     ndmp9_mover_abort_reply ndmp9_mover_abort_reply_body;
416     ndmp9_mover_stop_reply ndmp9_mover_stop_reply_body;
417     ndmp9_mover_set_window_request ndmp9_mover_set_window_request_body;
418     ndmp9_mover_set_window_reply ndmp9_mover_set_window_reply_body;
419     ndmp9_mover_read_request ndmp9_mover_read_request_body;
420     ndmp9_mover_read_reply ndmp9_mover_read_reply_body;
421     ndmp9_mover_close_reply ndmp9_mover_close_reply_body;
422     ndmp9_mover_set_record_size_request
423         ndmp9_mover_set_record_size_request_body;
424     ndmp9_mover_set_record_size_reply ndmp9_mover_set_record_size_reply_body;
425     ndmp9_mover_connect_request ndmp9_mover_connect_request_body;
426     ndmp9_mover_connect_reply ndmp9_mover_connect_reply_body;
427   } body;
428 };
429 
430 struct ndmp_xa_buf {
431   struct ndmp_msg_buf request;
432   struct ndmp_msg_buf reply;
433 };
434 
435 
436 #define MT_ndmp0_connect_open NDMP0_CONNECT_OPEN
437 #define MT_ndmp0_connect_close NDMP0_CONNECT_CLOSE
438 #define MT_ndmp0_notify_connected NDMP0_NOTIFY_CONNECTED
439 
440 
441 #ifndef NDMOS_OPTION_NO_NDMP2
442 
443 #define MT_ndmp2_connect_open NDMP2_CONNECT_OPEN
444 #define MT_ndmp2_connect_client_auth NDMP2_CONNECT_CLIENT_AUTH
445 #define MT_ndmp2_connect_close NDMP2_CONNECT_CLOSE
446 #define MT_ndmp2_connect_server_auth NDMP2_CONNECT_SERVER_AUTH
447 #define MT_ndmp2_config_get_host_info NDMP2_CONFIG_GET_HOST_INFO
448 #define MT_ndmp2_config_get_butype_attr NDMP2_CONFIG_GET_BUTYPE_ATTR
449 #define MT_ndmp2_config_get_mover_type NDMP2_CONFIG_GET_MOVER_TYPE
450 #define MT_ndmp2_config_get_auth_attr NDMP2_CONFIG_GET_AUTH_ATTR
451 #define MT_ndmp2_scsi_open NDMP2_SCSI_OPEN
452 #define MT_ndmp2_scsi_close NDMP2_SCSI_CLOSE
453 #define MT_ndmp2_scsi_get_state NDMP2_SCSI_GET_STATE
454 #define MT_ndmp2_scsi_set_target NDMP2_SCSI_SET_TARGET
455 #define MT_ndmp2_scsi_reset_device NDMP2_SCSI_RESET_DEVICE
456 #define MT_ndmp2_scsi_reset_bus NDMP2_SCSI_RESET_BUS
457 #define MT_ndmp2_scsi_execute_cdb NDMP2_SCSI_EXECUTE_CDB
458 #define MT_ndmp2_tape_open NDMP2_TAPE_OPEN
459 #define MT_ndmp2_tape_close NDMP2_TAPE_CLOSE
460 #define MT_ndmp2_tape_get_state NDMP2_TAPE_GET_STATE
461 #define MT_ndmp2_tape_mtio NDMP2_TAPE_MTIO
462 #define MT_ndmp2_tape_write NDMP2_TAPE_WRITE
463 #define MT_ndmp2_tape_read NDMP2_TAPE_READ
464 #define MT_ndmp2_tape_execute_cdb NDMP2_TAPE_EXECUTE_CDB
465 #define MT_ndmp2_data_get_state NDMP2_DATA_GET_STATE
466 #define MT_ndmp2_data_start_backup NDMP2_DATA_START_BACKUP
467 #define MT_ndmp2_data_start_recover NDMP2_DATA_START_RECOVER
468 #define MT_ndmp2_data_abort NDMP2_DATA_ABORT
469 #define MT_ndmp2_data_get_env NDMP2_DATA_GET_ENV
470 #define MT_ndmp2_data_stop NDMP2_DATA_STOP
471 #define MT_ndmp2_data_start_recover_filehist NDMP2_DATA_START_RECOVER_FILEHIST
472 #define MT_ndmp2_notify_data_halted NDMP2_NOTIFY_DATA_HALTED
473 #define MT_ndmp2_notify_connected NDMP2_NOTIFY_CONNECTED
474 #define MT_ndmp2_notify_mover_halted NDMP2_NOTIFY_MOVER_HALTED
475 #define MT_ndmp2_notify_mover_paused NDMP2_NOTIFY_MOVER_PAUSED
476 #define MT_ndmp2_notify_data_read NDMP2_NOTIFY_DATA_READ
477 #define MT_ndmp2_log_log NDMP2_LOG_LOG
478 #define MT_ndmp2_log_debug NDMP2_LOG_DEBUG
479 #define MT_ndmp2_log_file NDMP2_LOG_FILE
480 #define MT_ndmp2_fh_add_unix_path NDMP2_FH_ADD_UNIX_PATH
481 #define MT_ndmp2_fh_add_unix_dir NDMP2_FH_ADD_UNIX_DIR
482 #define MT_ndmp2_fh_add_unix_node NDMP2_FH_ADD_UNIX_NODE
483 #define MT_ndmp2_mover_get_state NDMP2_MOVER_GET_STATE
484 #define MT_ndmp2_mover_listen NDMP2_MOVER_LISTEN
485 #define MT_ndmp2_mover_continue NDMP2_MOVER_CONTINUE
486 #define MT_ndmp2_mover_abort NDMP2_MOVER_ABORT
487 #define MT_ndmp2_mover_stop NDMP2_MOVER_STOP
488 #define MT_ndmp2_mover_set_window NDMP2_MOVER_SET_WINDOW
489 #define MT_ndmp2_mover_read NDMP2_MOVER_READ
490 #define MT_ndmp2_mover_close NDMP2_MOVER_CLOSE
491 #define MT_ndmp2_mover_set_record_size NDMP2_MOVER_SET_RECORD_SIZE
492 
493 #endif /* !NDMOS_OPTION_NO_NDMP2 */
494 
495 
496 #ifndef NDMOS_OPTION_NO_NDMP3
497 
498 #define MT_ndmp3_connect_open NDMP3_CONNECT_OPEN
499 #define MT_ndmp3_connect_client_auth NDMP3_CONNECT_CLIENT_AUTH
500 #define MT_ndmp3_connect_close NDMP3_CONNECT_CLOSE
501 #define MT_ndmp3_connect_server_auth NDMP3_CONNECT_SERVER_AUTH
502 #define MT_ndmp3_config_get_host_info NDMP3_CONFIG_GET_HOST_INFO
503 #define MT_ndmp3_config_get_connection_type NDMP3_CONFIG_GET_CONNECTION_TYPE
504 #define MT_ndmp3_config_get_auth_attr NDMP3_CONFIG_GET_AUTH_ATTR
505 #define MT_ndmp3_config_get_butype_info NDMP3_CONFIG_GET_BUTYPE_INFO
506 #define MT_ndmp3_config_get_fs_info NDMP3_CONFIG_GET_FS_INFO
507 #define MT_ndmp3_config_get_tape_info NDMP3_CONFIG_GET_TAPE_INFO
508 #define MT_ndmp3_config_get_scsi_info NDMP3_CONFIG_GET_SCSI_INFO
509 #define MT_ndmp3_config_get_server_info NDMP3_CONFIG_GET_SERVER_INFO
510 #define MT_ndmp3_scsi_open NDMP3_SCSI_OPEN
511 #define MT_ndmp3_scsi_close NDMP3_SCSI_CLOSE
512 #define MT_ndmp3_scsi_get_state NDMP3_SCSI_GET_STATE
513 #define MT_ndmp3_scsi_set_target NDMP3_SCSI_SET_TARGET
514 #define MT_ndmp3_scsi_reset_device NDMP3_SCSI_RESET_DEVICE
515 #define MT_ndmp3_scsi_reset_bus NDMP3_SCSI_RESET_BUS
516 #define MT_ndmp3_scsi_execute_cdb NDMP3_SCSI_EXECUTE_CDB
517 #define MT_ndmp3_tape_open NDMP3_TAPE_OPEN
518 #define MT_ndmp3_tape_close NDMP3_TAPE_CLOSE
519 #define MT_ndmp3_tape_get_state NDMP3_TAPE_GET_STATE
520 #define MT_ndmp3_tape_mtio NDMP3_TAPE_MTIO
521 #define MT_ndmp3_tape_write NDMP3_TAPE_WRITE
522 #define MT_ndmp3_tape_read NDMP3_TAPE_READ
523 #define MT_ndmp3_tape_execute_cdb NDMP3_TAPE_EXECUTE_CDB
524 #define MT_ndmp3_data_get_state NDMP3_DATA_GET_STATE
525 #define MT_ndmp3_data_start_backup NDMP3_DATA_START_BACKUP
526 #define MT_ndmp3_data_start_recover NDMP3_DATA_START_RECOVER
527 #define MT_ndmp3_data_start_recover_filehist NDMP3_DATA_START_RECOVER_FILEHIST
528 #define MT_ndmp3_data_abort NDMP3_DATA_ABORT
529 #define MT_ndmp3_data_get_env NDMP3_DATA_GET_ENV
530 #define MT_ndmp3_data_stop NDMP3_DATA_STOP
531 #define MT_ndmp3_data_listen NDMP3_DATA_LISTEN
532 #define MT_ndmp3_data_connect NDMP3_DATA_CONNECT
533 #define MT_ndmp3_notify_data_halted NDMP3_NOTIFY_DATA_HALTED
534 #define MT_ndmp3_notify_connected NDMP3_NOTIFY_CONNECTED
535 #define MT_ndmp3_notify_mover_halted NDMP3_NOTIFY_MOVER_HALTED
536 #define MT_ndmp3_notify_mover_paused NDMP3_NOTIFY_MOVER_PAUSED
537 #define MT_ndmp3_notify_data_read NDMP3_NOTIFY_DATA_READ
538 #define MT_ndmp3_log_file NDMP3_LOG_FILE
539 #define MT_ndmp3_log_message NDMP3_LOG_MESSAGE
540 #define MT_ndmp3_fh_add_file NDMP3_FH_ADD_FILE
541 #define MT_ndmp3_fh_add_dir NDMP3_FH_ADD_DIR
542 #define MT_ndmp3_fh_add_node NDMP3_FH_ADD_NODE
543 #define MT_ndmp3_mover_get_state NDMP3_MOVER_GET_STATE
544 #define MT_ndmp3_mover_listen NDMP3_MOVER_LISTEN
545 #define MT_ndmp3_mover_continue NDMP3_MOVER_CONTINUE
546 #define MT_ndmp3_mover_abort NDMP3_MOVER_ABORT
547 #define MT_ndmp3_mover_stop NDMP3_MOVER_STOP
548 #define MT_ndmp3_mover_set_window NDMP3_MOVER_SET_WINDOW
549 #define MT_ndmp3_mover_read NDMP3_MOVER_READ
550 #define MT_ndmp3_mover_close NDMP3_MOVER_CLOSE
551 #define MT_ndmp3_mover_set_record_size NDMP3_MOVER_SET_RECORD_SIZE
552 #define MT_ndmp3_mover_connect NDMP3_MOVER_CONNECT
553 
554 #endif /* !NDMOS_OPTION_NO_NDMP3 */
555 
556 
557 #ifndef NDMOS_OPTION_NO_NDMP4
558 
559 #define MT_ndmp4_connect_open NDMP4_CONNECT_OPEN
560 #define MT_ndmp4_connect_client_auth NDMP4_CONNECT_CLIENT_AUTH
561 #define MT_ndmp4_connect_close NDMP4_CONNECT_CLOSE
562 #define MT_ndmp4_connect_server_auth NDMP4_CONNECT_SERVER_AUTH
563 #define MT_ndmp4_config_get_host_info NDMP4_CONFIG_GET_HOST_INFO
564 #define MT_ndmp4_config_get_connection_type NDMP4_CONFIG_GET_CONNECTION_TYPE
565 #define MT_ndmp4_config_get_auth_attr NDMP4_CONFIG_GET_AUTH_ATTR
566 #define MT_ndmp4_config_get_butype_info NDMP4_CONFIG_GET_BUTYPE_INFO
567 #define MT_ndmp4_config_get_fs_info NDMP4_CONFIG_GET_FS_INFO
568 #define MT_ndmp4_config_get_tape_info NDMP4_CONFIG_GET_TAPE_INFO
569 #define MT_ndmp4_config_get_scsi_info NDMP4_CONFIG_GET_SCSI_INFO
570 #define MT_ndmp4_config_get_server_info NDMP4_CONFIG_GET_SERVER_INFO
571 #define MT_ndmp4_scsi_open NDMP4_SCSI_OPEN
572 #define MT_ndmp4_scsi_close NDMP4_SCSI_CLOSE
573 #define MT_ndmp4_scsi_get_state NDMP4_SCSI_GET_STATE
574 #define MT_ndmp4_scsi_reset_device NDMP4_SCSI_RESET_DEVICE
575 #define MT_ndmp4_scsi_execute_cdb NDMP4_SCSI_EXECUTE_CDB
576 #define MT_ndmp4_tape_open NDMP4_TAPE_OPEN
577 #define MT_ndmp4_tape_close NDMP4_TAPE_CLOSE
578 #define MT_ndmp4_tape_get_state NDMP4_TAPE_GET_STATE
579 #define MT_ndmp4_tape_mtio NDMP4_TAPE_MTIO
580 #define MT_ndmp4_tape_write NDMP4_TAPE_WRITE
581 #define MT_ndmp4_tape_read NDMP4_TAPE_READ
582 #define MT_ndmp4_tape_execute_cdb NDMP4_TAPE_EXECUTE_CDB
583 #define MT_ndmp4_data_get_state NDMP4_DATA_GET_STATE
584 #define MT_ndmp4_data_start_backup NDMP4_DATA_START_BACKUP
585 #define MT_ndmp4_data_start_recover NDMP4_DATA_START_RECOVER
586 #define MT_ndmp4_data_start_recover_filehist NDMP4_DATA_START_RECOVER_FILEHIST
587 #define MT_ndmp4_data_abort NDMP4_DATA_ABORT
588 #define MT_ndmp4_data_get_env NDMP4_DATA_GET_ENV
589 #define MT_ndmp4_data_stop NDMP4_DATA_STOP
590 #define MT_ndmp4_data_listen NDMP4_DATA_LISTEN
591 #define MT_ndmp4_data_connect NDMP4_DATA_CONNECT
592 #define MT_ndmp4_notify_data_halted NDMP4_NOTIFY_DATA_HALTED
593 #define MT_ndmp4_notify_connection_status NDMP4_NOTIFY_CONNECTION_STATUS
594 #define MT_ndmp4_notify_mover_halted NDMP4_NOTIFY_MOVER_HALTED
595 #define MT_ndmp4_notify_mover_paused NDMP4_NOTIFY_MOVER_PAUSED
596 #define MT_ndmp4_notify_data_read NDMP4_NOTIFY_DATA_READ
597 #define MT_ndmp4_log_file NDMP4_LOG_FILE
598 #define MT_ndmp4_log_message NDMP4_LOG_MESSAGE
599 #define MT_ndmp4_fh_add_file NDMP4_FH_ADD_FILE
600 #define MT_ndmp4_fh_add_dir NDMP4_FH_ADD_DIR
601 #define MT_ndmp4_fh_add_node NDMP4_FH_ADD_NODE
602 #define MT_ndmp4_mover_get_state NDMP4_MOVER_GET_STATE
603 #define MT_ndmp4_mover_listen NDMP4_MOVER_LISTEN
604 #define MT_ndmp4_mover_continue NDMP4_MOVER_CONTINUE
605 #define MT_ndmp4_mover_abort NDMP4_MOVER_ABORT
606 #define MT_ndmp4_mover_stop NDMP4_MOVER_STOP
607 #define MT_ndmp4_mover_set_window NDMP4_MOVER_SET_WINDOW
608 #define MT_ndmp4_mover_read NDMP4_MOVER_READ
609 #define MT_ndmp4_mover_close NDMP4_MOVER_CLOSE
610 #define MT_ndmp4_mover_set_record_size NDMP4_MOVER_SET_RECORD_SIZE
611 #define MT_ndmp4_mover_connect NDMP4_MOVER_CONNECT
612 
613 #endif /* !NDMOS_OPTION_NO_NDMP4 */
614 
615 
616 #define MT_ndmp9_connect_open NDMP9_CONNECT_OPEN
617 #define MT_ndmp9_connect_client_auth NDMP9_CONNECT_CLIENT_AUTH
618 #define MT_ndmp9_connect_close NDMP9_CONNECT_CLOSE
619 #define MT_ndmp9_connect_server_auth NDMP9_CONNECT_SERVER_AUTH
620 #define MT_ndmp9_config_get_host_info NDMP9_CONFIG_GET_HOST_INFO
621 #define MT_ndmp9_config_get_connection_type NDMP9_CONFIG_GET_CONNECTION_TYPE
622 #define MT_ndmp9_config_get_auth_attr NDMP9_CONFIG_GET_AUTH_ATTR
623 #define MT_ndmp9_config_get_butype_info NDMP9_CONFIG_GET_BUTYPE_INFO
624 #define MT_ndmp9_config_get_fs_info NDMP9_CONFIG_GET_FS_INFO
625 #define MT_ndmp9_config_get_tape_info NDMP9_CONFIG_GET_TAPE_INFO
626 #define MT_ndmp9_config_get_scsi_info NDMP9_CONFIG_GET_SCSI_INFO
627 #define MT_ndmp9_config_get_server_info NDMP9_CONFIG_GET_SERVER_INFO
628 #define MT_ndmp9_scsi_open NDMP9_SCSI_OPEN
629 #define MT_ndmp9_scsi_close NDMP9_SCSI_CLOSE
630 #define MT_ndmp9_scsi_get_state NDMP9_SCSI_GET_STATE
631 #define MT_ndmp9_scsi_set_target NDMP9_SCSI_SET_TARGET
632 #define MT_ndmp9_scsi_reset_device NDMP9_SCSI_RESET_DEVICE
633 #define MT_ndmp9_scsi_reset_bus NDMP9_SCSI_RESET_BUS
634 #define MT_ndmp9_scsi_execute_cdb NDMP9_SCSI_EXECUTE_CDB
635 #define MT_ndmp9_tape_open NDMP9_TAPE_OPEN
636 #define MT_ndmp9_tape_close NDMP9_TAPE_CLOSE
637 #define MT_ndmp9_tape_get_state NDMP9_TAPE_GET_STATE
638 #define MT_ndmp9_tape_mtio NDMP9_TAPE_MTIO
639 #define MT_ndmp9_tape_write NDMP9_TAPE_WRITE
640 #define MT_ndmp9_tape_read NDMP9_TAPE_READ
641 #define MT_ndmp9_tape_execute_cdb NDMP9_TAPE_EXECUTE_CDB
642 #define MT_ndmp9_data_get_state NDMP9_DATA_GET_STATE
643 #define MT_ndmp9_data_start_backup NDMP9_DATA_START_BACKUP
644 #define MT_ndmp9_data_start_recover NDMP9_DATA_START_RECOVER
645 #define MT_ndmp9_data_start_recover_filehist NDMP9_DATA_START_RECOVER_FILEHIST
646 #define MT_ndmp9_data_abort NDMP9_DATA_ABORT
647 #define MT_ndmp9_data_get_env NDMP9_DATA_GET_ENV
648 #define MT_ndmp9_data_stop NDMP9_DATA_STOP
649 #define MT_ndmp9_data_listen NDMP9_DATA_LISTEN
650 #define MT_ndmp9_data_connect NDMP9_DATA_CONNECT
651 #define MT_ndmp9_notify_data_halted NDMP9_NOTIFY_DATA_HALTED
652 #define MT_ndmp9_notify_connected NDMP9_NOTIFY_CONNECTED
653 #define MT_ndmp9_notify_mover_halted NDMP9_NOTIFY_MOVER_HALTED
654 #define MT_ndmp9_notify_mover_paused NDMP9_NOTIFY_MOVER_PAUSED
655 #define MT_ndmp9_notify_data_read NDMP9_NOTIFY_DATA_READ
656 #define MT_ndmp9_log_file NDMP9_LOG_FILE
657 #define MT_ndmp9_log_message NDMP9_LOG_MESSAGE
658 #define MT_ndmp9_fh_add_file NDMP9_FH_ADD_FILE
659 #define MT_ndmp9_fh_add_dir NDMP9_FH_ADD_DIR
660 #define MT_ndmp9_fh_add_node NDMP9_FH_ADD_NODE
661 #define MT_ndmp9_mover_get_state NDMP9_MOVER_GET_STATE
662 #define MT_ndmp9_mover_listen NDMP9_MOVER_LISTEN
663 #define MT_ndmp9_mover_continue NDMP9_MOVER_CONTINUE
664 #define MT_ndmp9_mover_abort NDMP9_MOVER_ABORT
665 #define MT_ndmp9_mover_stop NDMP9_MOVER_STOP
666 #define MT_ndmp9_mover_set_window NDMP9_MOVER_SET_WINDOW
667 #define MT_ndmp9_mover_read NDMP9_MOVER_READ
668 #define MT_ndmp9_mover_close NDMP9_MOVER_CLOSE
669 #define MT_ndmp9_mover_set_record_size NDMP9_MOVER_SET_RECORD_SIZE
670 #define MT_ndmp9_mover_connect NDMP9_MOVER_CONNECT
671 
672 #ifdef __cplusplus
673 }
674 #endif
675