2 * Copyright (c) 1998,1999,2000
3 * Traakan, Inc., Los Altos, CA
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice unmodified, this list of conditions, and the following
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.
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
38 #include "ndmos.h" /* rpc/rpc.h */
39 #include "ndmprotocol.h"
42 #ifndef NDMOS_OPTION_NO_NDMP2
45 extern struct ndmp_enum_str_table ndmp2_error_table[];
46 extern char * ndmp2_error_to_str (ndmp2_error val);
47 extern int ndmp2_error_from_str (ndmp2_error *valp, char * str);
49 char * ndmp2_error_to_str (ndmp2_error val) {
50 return ndmp_enum_to_str ((int)val, ndmp2_error_table);
53 int ndmp2_error_from_str (ndmp2_error *valp, char * str) {
54 return ndmp_enum_from_str ((int*)valp, str, ndmp2_error_table);
57 struct ndmp_enum_str_table ndmp2_error_table[] = {
58 { "NDMP2_NO_ERR", NDMP2_NO_ERR },
59 { "NDMP2_NOT_SUPPORTED_ERR", NDMP2_NOT_SUPPORTED_ERR },
60 { "NDMP2_DEVICE_BUSY_ERR", NDMP2_DEVICE_BUSY_ERR },
61 { "NDMP2_DEVICE_OPENED_ERR", NDMP2_DEVICE_OPENED_ERR },
62 { "NDMP2_NOT_AUTHORIZED_ERR", NDMP2_NOT_AUTHORIZED_ERR },
63 { "NDMP2_PERMISSION_ERR", NDMP2_PERMISSION_ERR },
64 { "NDMP2_DEV_NOT_OPEN_ERR", NDMP2_DEV_NOT_OPEN_ERR },
65 { "NDMP2_IO_ERR", NDMP2_IO_ERR },
66 { "NDMP2_TIMEOUT_ERR", NDMP2_TIMEOUT_ERR },
67 { "NDMP2_ILLEGAL_ARGS_ERR", NDMP2_ILLEGAL_ARGS_ERR },
68 { "NDMP2_NO_TAPE_LOADED_ERR", NDMP2_NO_TAPE_LOADED_ERR },
69 { "NDMP2_WRITE_PROTECT_ERR", NDMP2_WRITE_PROTECT_ERR },
70 { "NDMP2_EOF_ERR", NDMP2_EOF_ERR },
71 { "NDMP2_EOM_ERR", NDMP2_EOM_ERR },
72 { "NDMP2_FILE_NOT_FOUND_ERR", NDMP2_FILE_NOT_FOUND_ERR },
73 { "NDMP2_BAD_FILE_ERR", NDMP2_BAD_FILE_ERR },
74 { "NDMP2_NO_DEVICE_ERR", NDMP2_NO_DEVICE_ERR },
75 { "NDMP2_NO_BUS_ERR", NDMP2_NO_BUS_ERR },
76 { "NDMP2_XDR_DECODE_ERR", NDMP2_XDR_DECODE_ERR },
77 { "NDMP2_ILLEGAL_STATE_ERR", NDMP2_ILLEGAL_STATE_ERR },
78 { "NDMP2_UNDEFINED_ERR", NDMP2_UNDEFINED_ERR },
79 { "NDMP2_XDR_ENCODE_ERR", NDMP2_XDR_ENCODE_ERR },
80 { "NDMP2_NO_MEM_ERR", NDMP2_NO_MEM_ERR },
84 extern struct ndmp_enum_str_table ndmp2_header_message_type_table[];
85 extern char * ndmp2_header_message_type_to_str (ndmp2_header_message_type val);
86 extern int ndmp2_header_message_type_from_str (ndmp2_header_message_type *valp, char * str);
88 char * ndmp2_header_message_type_to_str (ndmp2_header_message_type val) {
89 return ndmp_enum_to_str ((int)val, ndmp2_header_message_type_table);
92 int ndmp2_header_message_type_from_str (ndmp2_header_message_type *valp, char * str) {
93 return ndmp_enum_from_str ((int*)valp, str, ndmp2_header_message_type_table);
96 struct ndmp_enum_str_table ndmp2_header_message_type_table[] = {
97 { "NDMP2_MESSAGE_REQUEST", NDMP2_MESSAGE_REQUEST },
98 { "NDMP2_MESSAGE_REPLY", NDMP2_MESSAGE_REPLY },
102 extern struct ndmp_enum_str_table ndmp2_message_table[];
103 extern char * ndmp2_message_to_str (ndmp2_message val);
104 extern int ndmp2_message_from_str (ndmp2_message *valp, char * str);
106 char * ndmp2_message_to_str (ndmp2_message val) {
107 return ndmp_enum_to_str ((int)val, ndmp2_message_table);
110 int ndmp2_message_from_str (ndmp2_message *valp, char * str) {
111 return ndmp_enum_from_str ((int*)valp, str, ndmp2_message_table);
114 struct ndmp_enum_str_table ndmp2_message_table[] = {
115 { "NDMP2_CONNECT_OPEN", NDMP2_CONNECT_OPEN },
116 { "NDMP2_CONNECT_CLIENT_AUTH", NDMP2_CONNECT_CLIENT_AUTH },
117 { "NDMP2_CONNECT_CLOSE", NDMP2_CONNECT_CLOSE },
118 { "NDMP2_CONNECT_SERVER_AUTH", NDMP2_CONNECT_SERVER_AUTH },
119 { "NDMP2_CONFIG_GET_HOST_INFO", NDMP2_CONFIG_GET_HOST_INFO },
120 { "NDMP2_CONFIG_GET_BUTYPE_ATTR", NDMP2_CONFIG_GET_BUTYPE_ATTR },
121 { "NDMP2_CONFIG_GET_MOVER_TYPE", NDMP2_CONFIG_GET_MOVER_TYPE },
122 { "NDMP2_CONFIG_GET_AUTH_ATTR", NDMP2_CONFIG_GET_AUTH_ATTR },
123 { "NDMP2_SCSI_OPEN", NDMP2_SCSI_OPEN },
124 { "NDMP2_SCSI_CLOSE", NDMP2_SCSI_CLOSE },
125 { "NDMP2_SCSI_GET_STATE", NDMP2_SCSI_GET_STATE },
126 { "NDMP2_SCSI_SET_TARGET", NDMP2_SCSI_SET_TARGET },
127 { "NDMP2_SCSI_RESET_DEVICE", NDMP2_SCSI_RESET_DEVICE },
128 { "NDMP2_SCSI_RESET_BUS", NDMP2_SCSI_RESET_BUS },
129 { "NDMP2_SCSI_EXECUTE_CDB", NDMP2_SCSI_EXECUTE_CDB },
130 { "NDMP2_TAPE_OPEN", NDMP2_TAPE_OPEN },
131 { "NDMP2_TAPE_CLOSE", NDMP2_TAPE_CLOSE },
132 { "NDMP2_TAPE_GET_STATE", NDMP2_TAPE_GET_STATE },
133 { "NDMP2_TAPE_MTIO", NDMP2_TAPE_MTIO },
134 { "NDMP2_TAPE_WRITE", NDMP2_TAPE_WRITE },
135 { "NDMP2_TAPE_READ", NDMP2_TAPE_READ },
136 { "NDMP2_TAPE_RESVD1", NDMP2_TAPE_RESVD1 },
137 { "NDMP2_TAPE_EXECUTE_CDB", NDMP2_TAPE_EXECUTE_CDB },
138 { "NDMP2_DATA_GET_STATE", NDMP2_DATA_GET_STATE },
139 { "NDMP2_DATA_START_BACKUP", NDMP2_DATA_START_BACKUP },
140 { "NDMP2_DATA_START_RECOVER", NDMP2_DATA_START_RECOVER },
141 { "NDMP2_DATA_ABORT", NDMP2_DATA_ABORT },
142 { "NDMP2_DATA_GET_ENV", NDMP2_DATA_GET_ENV },
143 { "NDMP2_DATA_RESVD1", NDMP2_DATA_RESVD1 },
144 { "NDMP2_DATA_RESVD2", NDMP2_DATA_RESVD2 },
145 { "NDMP2_DATA_STOP", NDMP2_DATA_STOP },
146 { "NDMP2_DATA_START_RECOVER_FILEHIST",
147 NDMP2_DATA_START_RECOVER_FILEHIST },
148 { "NDMP2_NOTIFY_RESVD1", NDMP2_NOTIFY_RESVD1 },
149 { "NDMP2_NOTIFY_DATA_HALTED", NDMP2_NOTIFY_DATA_HALTED },
150 { "NDMP2_NOTIFY_CONNECTED", NDMP2_NOTIFY_CONNECTED },
151 { "NDMP2_NOTIFY_MOVER_HALTED", NDMP2_NOTIFY_MOVER_HALTED },
152 { "NDMP2_NOTIFY_MOVER_PAUSED", NDMP2_NOTIFY_MOVER_PAUSED },
153 { "NDMP2_NOTIFY_DATA_READ", NDMP2_NOTIFY_DATA_READ },
154 { "NDMP2_LOG_LOG", NDMP2_LOG_LOG },
155 { "NDMP2_LOG_DEBUG", NDMP2_LOG_DEBUG },
156 { "NDMP2_LOG_FILE", NDMP2_LOG_FILE },
157 { "NDMP2_FH_ADD_UNIX_PATH", NDMP2_FH_ADD_UNIX_PATH },
158 { "NDMP2_FH_ADD_UNIX_DIR", NDMP2_FH_ADD_UNIX_DIR },
159 { "NDMP2_FH_ADD_UNIX_NODE", NDMP2_FH_ADD_UNIX_NODE },
160 { "NDMP2_MOVER_GET_STATE", NDMP2_MOVER_GET_STATE },
161 { "NDMP2_MOVER_LISTEN", NDMP2_MOVER_LISTEN },
162 { "NDMP2_MOVER_CONTINUE", NDMP2_MOVER_CONTINUE },
163 { "NDMP2_MOVER_ABORT", NDMP2_MOVER_ABORT },
164 { "NDMP2_MOVER_STOP", NDMP2_MOVER_STOP },
165 { "NDMP2_MOVER_SET_WINDOW", NDMP2_MOVER_SET_WINDOW },
166 { "NDMP2_MOVER_READ", NDMP2_MOVER_READ },
167 { "NDMP2_MOVER_CLOSE", NDMP2_MOVER_CLOSE },
168 { "NDMP2_MOVER_SET_RECORD_SIZE", NDMP2_MOVER_SET_RECORD_SIZE },
169 { "NDMP2_RESERVED", NDMP2_RESERVED },
173 extern struct ndmp_enum_str_table ndmp2_auth_type_table[];
174 extern char * ndmp2_auth_type_to_str (ndmp2_auth_type val);
175 extern int ndmp2_auth_type_from_str (ndmp2_auth_type *valp, char * str);
177 char * ndmp2_auth_type_to_str (ndmp2_auth_type val) {
178 return ndmp_enum_to_str ((int)val, ndmp2_auth_type_table);
181 int ndmp2_auth_type_from_str (ndmp2_auth_type *valp, char * str) {
182 return ndmp_enum_from_str ((int*)valp, str, ndmp2_auth_type_table);
185 struct ndmp_enum_str_table ndmp2_auth_type_table[] = {
186 { "NDMP2_AUTH_NONE", NDMP2_AUTH_NONE },
187 { "NDMP2_AUTH_TEXT", NDMP2_AUTH_TEXT },
188 { "NDMP2_AUTH_MD5", NDMP2_AUTH_MD5 },
192 extern struct ndmp_enum_str_table ndmp2_mover_addr_type_table[];
193 extern char * ndmp2_mover_addr_type_to_str (ndmp2_mover_addr_type val);
194 extern int ndmp2_mover_addr_type_from_str (ndmp2_mover_addr_type *valp, char * str);
196 char * ndmp2_mover_addr_type_to_str (ndmp2_mover_addr_type val) {
197 return ndmp_enum_to_str ((int)val, ndmp2_mover_addr_type_table);
200 int ndmp2_mover_addr_type_from_str (ndmp2_mover_addr_type *valp, char * str) {
201 return ndmp_enum_from_str ((int*)valp, str, ndmp2_mover_addr_type_table);
204 struct ndmp_enum_str_table ndmp2_mover_addr_type_table[] = {
205 { "NDMP2_ADDR_LOCAL", NDMP2_ADDR_LOCAL },
206 { "NDMP2_ADDR_TCP", NDMP2_ADDR_TCP },
210 extern struct ndmp_enum_str_table ndmp2_tape_open_mode_table[];
211 extern char * ndmp2_tape_open_mode_to_str (ndmp2_tape_open_mode val);
212 extern int ndmp2_tape_open_mode_from_str (ndmp2_tape_open_mode *valp, char * str);
214 char * ndmp2_tape_open_mode_to_str (ndmp2_tape_open_mode val) {
215 return ndmp_enum_to_str ((int)val, ndmp2_tape_open_mode_table);
218 int ndmp2_tape_open_mode_from_str (ndmp2_tape_open_mode *valp, char * str) {
219 return ndmp_enum_from_str ((int*)valp, str, ndmp2_tape_open_mode_table);
222 struct ndmp_enum_str_table ndmp2_tape_open_mode_table[] = {
223 { "NDMP2_TAPE_READ_MODE", NDMP2_TAPE_READ_MODE },
224 { "NDMP2_TAPE_WRITE_MODE", NDMP2_TAPE_WRITE_MODE },
228 extern struct ndmp_enum_str_table ndmp2_tape_mtio_op_table[];
229 extern char * ndmp2_tape_mtio_op_to_str (ndmp2_tape_mtio_op val);
230 extern int ndmp2_tape_mtio_op_from_str (ndmp2_tape_mtio_op *valp, char * str);
232 char * ndmp2_tape_mtio_op_to_str (ndmp2_tape_mtio_op val) {
233 return ndmp_enum_to_str ((int)val, ndmp2_tape_mtio_op_table);
236 int ndmp2_tape_mtio_op_from_str (ndmp2_tape_mtio_op *valp, char * str) {
237 return ndmp_enum_from_str ((int*)valp, str, ndmp2_tape_mtio_op_table);
240 struct ndmp_enum_str_table ndmp2_tape_mtio_op_table[] = {
241 { "NDMP2_MTIO_FSF", NDMP2_MTIO_FSF },
242 { "NDMP2_MTIO_BSF", NDMP2_MTIO_BSF },
243 { "NDMP2_MTIO_FSR", NDMP2_MTIO_FSR },
244 { "NDMP2_MTIO_BSR", NDMP2_MTIO_BSR },
245 { "NDMP2_MTIO_REW", NDMP2_MTIO_REW },
246 { "NDMP2_MTIO_EOF", NDMP2_MTIO_EOF },
247 { "NDMP2_MTIO_OFF", NDMP2_MTIO_OFF },
251 extern struct ndmp_enum_str_table ndmp2_mover_state_table[];
252 extern char * ndmp2_mover_state_to_str (ndmp2_mover_state val);
253 extern int ndmp2_mover_state_from_str (ndmp2_mover_state *valp, char * str);
255 char * ndmp2_mover_state_to_str (ndmp2_mover_state val) {
256 return ndmp_enum_to_str ((int)val, ndmp2_mover_state_table);
259 int ndmp2_mover_state_from_str (ndmp2_mover_state *valp, char * str) {
260 return ndmp_enum_from_str ((int*)valp, str, ndmp2_mover_state_table);
263 struct ndmp_enum_str_table ndmp2_mover_state_table[] = {
264 { "NDMP2_MOVER_STATE_IDLE", NDMP2_MOVER_STATE_IDLE },
265 { "NDMP2_MOVER_STATE_LISTEN", NDMP2_MOVER_STATE_LISTEN },
266 { "NDMP2_MOVER_STATE_ACTIVE", NDMP2_MOVER_STATE_ACTIVE },
267 { "NDMP2_MOVER_STATE_PAUSED", NDMP2_MOVER_STATE_PAUSED },
268 { "NDMP2_MOVER_STATE_HALTED", NDMP2_MOVER_STATE_HALTED },
272 extern struct ndmp_enum_str_table ndmp2_mover_pause_reason_table[];
273 extern char * ndmp2_mover_pause_reason_to_str (ndmp2_mover_pause_reason val);
274 extern int ndmp2_mover_pause_reason_from_str (ndmp2_mover_pause_reason *valp, char * str);
276 char * ndmp2_mover_pause_reason_to_str (ndmp2_mover_pause_reason val) {
277 return ndmp_enum_to_str ((int)val, ndmp2_mover_pause_reason_table);
280 int ndmp2_mover_pause_reason_from_str (ndmp2_mover_pause_reason *valp, char * str) {
281 return ndmp_enum_from_str ((int*)valp, str, ndmp2_mover_pause_reason_table);
284 struct ndmp_enum_str_table ndmp2_mover_pause_reason_table[] = {
285 { "NDMP2_MOVER_PAUSE_NA", NDMP2_MOVER_PAUSE_NA },
286 { "NDMP2_MOVER_PAUSE_EOM", NDMP2_MOVER_PAUSE_EOM },
287 { "NDMP2_MOVER_PAUSE_EOF", NDMP2_MOVER_PAUSE_EOF },
288 { "NDMP2_MOVER_PAUSE_SEEK", NDMP2_MOVER_PAUSE_SEEK },
289 { "NDMP2_MOVER_PAUSE_MEDIA_ERROR", NDMP2_MOVER_PAUSE_MEDIA_ERROR },
293 extern struct ndmp_enum_str_table ndmp2_mover_halt_reason_table[];
294 extern char * ndmp2_mover_halt_reason_to_str (ndmp2_mover_halt_reason val);
295 extern int ndmp2_mover_halt_reason_from_str (ndmp2_mover_halt_reason *valp, char * str);
297 char * ndmp2_mover_halt_reason_to_str (ndmp2_mover_halt_reason val) {
298 return ndmp_enum_to_str ((int)val, ndmp2_mover_halt_reason_table);
301 int ndmp2_mover_halt_reason_from_str (ndmp2_mover_halt_reason *valp, char * str) {
302 return ndmp_enum_from_str ((int*)valp, str, ndmp2_mover_halt_reason_table);
305 struct ndmp_enum_str_table ndmp2_mover_halt_reason_table[] = {
306 { "NDMP2_MOVER_HALT_NA", NDMP2_MOVER_HALT_NA },
307 { "NDMP2_MOVER_HALT_CONNECT_CLOSED", NDMP2_MOVER_HALT_CONNECT_CLOSED },
308 { "NDMP2_MOVER_HALT_ABORTED", NDMP2_MOVER_HALT_ABORTED },
309 { "NDMP2_MOVER_HALT_INTERNAL_ERROR", NDMP2_MOVER_HALT_INTERNAL_ERROR },
310 { "NDMP2_MOVER_HALT_CONNECT_ERROR", NDMP2_MOVER_HALT_CONNECT_ERROR },
314 extern struct ndmp_enum_str_table ndmp2_mover_mode_table[];
315 extern char * ndmp2_mover_mode_to_str (ndmp2_mover_mode val);
316 extern int ndmp2_mover_mode_from_str (ndmp2_mover_mode *valp, char * str);
318 char * ndmp2_mover_mode_to_str (ndmp2_mover_mode val) {
319 return ndmp_enum_to_str ((int)val, ndmp2_mover_mode_table);
322 int ndmp2_mover_mode_from_str (ndmp2_mover_mode *valp, char * str) {
323 return ndmp_enum_from_str ((int*)valp, str, ndmp2_mover_mode_table);
326 struct ndmp_enum_str_table ndmp2_mover_mode_table[] = {
327 { "NDMP2_MOVER_MODE_READ", NDMP2_MOVER_MODE_READ },
328 { "NDMP2_MOVER_MODE_WRITE", NDMP2_MOVER_MODE_WRITE },
329 { "NDMP2_MOVER_MODE_DATA", NDMP2_MOVER_MODE_DATA },
333 extern struct ndmp_enum_str_table ndmp2_data_operation_table[];
334 extern char * ndmp2_data_operation_to_str (ndmp2_data_operation val);
335 extern int ndmp2_data_operation_from_str (ndmp2_data_operation *valp, char * str);
337 char * ndmp2_data_operation_to_str (ndmp2_data_operation val) {
338 return ndmp_enum_to_str ((int)val, ndmp2_data_operation_table);
341 int ndmp2_data_operation_from_str (ndmp2_data_operation *valp, char * str) {
342 return ndmp_enum_from_str ((int*)valp, str, ndmp2_data_operation_table);
345 struct ndmp_enum_str_table ndmp2_data_operation_table[] = {
346 { "NDMP2_DATA_OP_NOACTION", NDMP2_DATA_OP_NOACTION },
347 { "NDMP2_DATA_OP_BACKUP", NDMP2_DATA_OP_BACKUP },
348 { "NDMP2_DATA_OP_RESTORE", NDMP2_DATA_OP_RESTORE },
349 { "NDMP2_DATA_OP_RESTORE_FILEHIST", NDMP2_DATA_OP_RESTORE_FILEHIST },
353 extern struct ndmp_enum_str_table ndmp2_data_state_table[];
354 extern char * ndmp2_data_state_to_str (ndmp2_data_state val);
355 extern int ndmp2_data_state_from_str (ndmp2_data_state *valp, char * str);
357 char * ndmp2_data_state_to_str (ndmp2_data_state val) {
358 return ndmp_enum_to_str ((int)val, ndmp2_data_state_table);
361 int ndmp2_data_state_from_str (ndmp2_data_state *valp, char * str) {
362 return ndmp_enum_from_str ((int*)valp, str, ndmp2_data_state_table);
365 struct ndmp_enum_str_table ndmp2_data_state_table[] = {
366 { "NDMP2_DATA_STATE_IDLE", NDMP2_DATA_STATE_IDLE },
367 { "NDMP2_DATA_STATE_ACTIVE", NDMP2_DATA_STATE_ACTIVE },
368 { "NDMP2_DATA_STATE_HALTED", NDMP2_DATA_STATE_HALTED },
372 extern struct ndmp_enum_str_table ndmp2_data_halt_reason_table[];
373 extern char * ndmp2_data_halt_reason_to_str (ndmp2_data_halt_reason val);
374 extern int ndmp2_data_halt_reason_from_str (ndmp2_data_halt_reason *valp, char * str);
376 char * ndmp2_data_halt_reason_to_str (ndmp2_data_halt_reason val) {
377 return ndmp_enum_to_str ((int)val, ndmp2_data_halt_reason_table);
380 int ndmp2_data_halt_reason_from_str (ndmp2_data_halt_reason *valp, char * str) {
381 return ndmp_enum_from_str ((int*)valp, str, ndmp2_data_halt_reason_table);
384 struct ndmp_enum_str_table ndmp2_data_halt_reason_table[] = {
385 { "NDMP2_DATA_HALT_NA", NDMP2_DATA_HALT_NA },
386 { "NDMP2_DATA_HALT_SUCCESSFUL", NDMP2_DATA_HALT_SUCCESSFUL },
387 { "NDMP2_DATA_HALT_ABORTED", NDMP2_DATA_HALT_ABORTED },
388 { "NDMP2_DATA_HALT_INTERNAL_ERROR", NDMP2_DATA_HALT_INTERNAL_ERROR },
389 { "NDMP2_DATA_HALT_CONNECT_ERROR", NDMP2_DATA_HALT_CONNECT_ERROR },
393 extern struct ndmp_enum_str_table ndmp2_connect_reason_table[];
394 extern char * ndmp2_connect_reason_to_str (ndmp2_connect_reason val);
395 extern int ndmp2_connect_reason_from_str (ndmp2_connect_reason *valp, char * str);
397 char * ndmp2_connect_reason_to_str (ndmp2_connect_reason val) {
398 return ndmp_enum_to_str ((int)val, ndmp2_connect_reason_table);
401 int ndmp2_connect_reason_from_str (ndmp2_connect_reason *valp, char * str) {
402 return ndmp_enum_from_str ((int*)valp, str, ndmp2_connect_reason_table);
405 struct ndmp_enum_str_table ndmp2_connect_reason_table[] = {
406 { "NDMP2_CONNECTED", NDMP2_CONNECTED },
407 { "NDMP2_SHUTDOWN", NDMP2_SHUTDOWN },
408 { "NDMP2_REFUSED", NDMP2_REFUSED },
412 extern struct ndmp_enum_str_table ndmp2_debug_level_table[];
413 extern char * ndmp2_debug_level_to_str (ndmp2_debug_level val);
414 extern int ndmp2_debug_level_from_str (ndmp2_debug_level *valp, char * str);
416 char * ndmp2_debug_level_to_str (ndmp2_debug_level val) {
417 return ndmp_enum_to_str ((int)val, ndmp2_debug_level_table);
420 int ndmp2_debug_level_from_str (ndmp2_debug_level *valp, char * str) {
421 return ndmp_enum_from_str ((int*)valp, str, ndmp2_debug_level_table);
424 struct ndmp_enum_str_table ndmp2_debug_level_table[] = {
425 { "NDMP2_DBG_USER_INFO", NDMP2_DBG_USER_INFO },
426 { "NDMP2_DBG_USER_SUMMARY", NDMP2_DBG_USER_SUMMARY },
427 { "NDMP2_DBG_USER_DETAIL", NDMP2_DBG_USER_DETAIL },
428 { "NDMP2_DBG_DIAG_INFO", NDMP2_DBG_DIAG_INFO },
429 { "NDMP2_DBG_DIAG_SUMMARY", NDMP2_DBG_DIAG_SUMMARY },
430 { "NDMP2_DBG_DIAG_DETAIL", NDMP2_DBG_DIAG_DETAIL },
431 { "NDMP2_DBG_PROG_INFO", NDMP2_DBG_PROG_INFO },
432 { "NDMP2_DBG_PROG_SUMMARY", NDMP2_DBG_PROG_SUMMARY },
433 { "NDMP2_DBG_PROG_DETAIL", NDMP2_DBG_PROG_DETAIL },
437 extern struct ndmp_enum_str_table ndmp2_unix_file_type_table[];
438 extern char * ndmp2_unix_file_type_to_str (ndmp2_unix_file_type val);
439 extern int ndmp2_unix_file_type_from_str (ndmp2_unix_file_type *valp, char * str);
441 char * ndmp2_unix_file_type_to_str (ndmp2_unix_file_type val) {
442 return ndmp_enum_to_str ((int)val, ndmp2_unix_file_type_table);
445 int ndmp2_unix_file_type_from_str (ndmp2_unix_file_type *valp, char * str) {
446 return ndmp_enum_from_str ((int*)valp, str, ndmp2_unix_file_type_table);
449 struct ndmp_enum_str_table ndmp2_unix_file_type_table[] = {
450 { "NDMP2_FILE_DIR", NDMP2_FILE_DIR },
451 { "NDMP2_FILE_FIFO", NDMP2_FILE_FIFO },
452 { "NDMP2_FILE_CSPEC", NDMP2_FILE_CSPEC },
453 { "NDMP2_FILE_BSPEC", NDMP2_FILE_BSPEC },
454 { "NDMP2_FILE_REG", NDMP2_FILE_REG },
455 { "NDMP2_FILE_SLINK", NDMP2_FILE_SLINK },
456 { "NDMP2_FILE_SOCK", NDMP2_FILE_SOCK },
461 #endif /* !NDMOS_OPTION_NO_NDMP2 */