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_NDMP3
45 extern struct ndmp_enum_str_table ndmp3_error_table[];
46 extern char * ndmp3_error_to_str (ndmp3_error val);
47 extern int ndmp3_error_from_str (ndmp3_error *valp, char *str);
49 char * ndmp3_error_to_str (ndmp3_error val) {
50 return ndmp_enum_to_str ((int)val, ndmp3_error_table);
53 int ndmp3_error_from_str (ndmp3_error *valp, char *str) {
54 return ndmp_enum_from_str ((int*)valp, str, ndmp3_error_table);
57 struct ndmp_enum_str_table ndmp3_error_table[] = {
58 { "NDMP3_NO_ERR", NDMP3_NO_ERR, },
59 { "NDMP3_NOT_SUPPORTED_ERR", NDMP3_NOT_SUPPORTED_ERR, },
60 { "NDMP3_DEVICE_BUSY_ERR", NDMP3_DEVICE_BUSY_ERR, },
61 { "NDMP3_DEVICE_OPENED_ERR", NDMP3_DEVICE_OPENED_ERR, },
62 { "NDMP3_NOT_AUTHORIZED_ERR", NDMP3_NOT_AUTHORIZED_ERR, },
63 { "NDMP3_PERMISSION_ERR", NDMP3_PERMISSION_ERR, },
64 { "NDMP3_DEV_NOT_OPEN_ERR", NDMP3_DEV_NOT_OPEN_ERR, },
65 { "NDMP3_IO_ERR", NDMP3_IO_ERR, },
66 { "NDMP3_TIMEOUT_ERR", NDMP3_TIMEOUT_ERR, },
67 { "NDMP3_ILLEGAL_ARGS_ERR", NDMP3_ILLEGAL_ARGS_ERR, },
68 { "NDMP3_NO_TAPE_LOADED_ERR", NDMP3_NO_TAPE_LOADED_ERR, },
69 { "NDMP3_WRITE_PROTECT_ERR", NDMP3_WRITE_PROTECT_ERR, },
70 { "NDMP3_EOF_ERR", NDMP3_EOF_ERR, },
71 { "NDMP3_EOM_ERR", NDMP3_EOM_ERR, },
72 { "NDMP3_FILE_NOT_FOUND_ERR", NDMP3_FILE_NOT_FOUND_ERR, },
73 { "NDMP3_BAD_FILE_ERR", NDMP3_BAD_FILE_ERR, },
74 { "NDMP3_NO_DEVICE_ERR", NDMP3_NO_DEVICE_ERR, },
75 { "NDMP3_NO_BUS_ERR", NDMP3_NO_BUS_ERR, },
76 { "NDMP3_XDR_DECODE_ERR", NDMP3_XDR_DECODE_ERR, },
77 { "NDMP3_ILLEGAL_STATE_ERR", NDMP3_ILLEGAL_STATE_ERR, },
78 { "NDMP3_UNDEFINED_ERR", NDMP3_UNDEFINED_ERR, },
79 { "NDMP3_XDR_ENCODE_ERR", NDMP3_XDR_ENCODE_ERR, },
80 { "NDMP3_NO_MEM_ERR", NDMP3_NO_MEM_ERR, },
81 { "NDMP3_CONNECT_ERR", NDMP3_CONNECT_ERR, },
86 extern struct ndmp_enum_str_table ndmp3_header_message_type_table[];
87 extern char * ndmp3_header_message_type_to_str (ndmp3_header_message_type val);
88 extern int ndmp3_header_message_type_from_str (ndmp3_header_message_type *valp, char *str);
90 char * ndmp3_header_message_type_to_str (ndmp3_header_message_type val) {
91 return ndmp_enum_to_str ((int)val, ndmp3_header_message_type_table);
94 int ndmp3_header_message_type_from_str (ndmp3_header_message_type *valp, char *str) {
95 return ndmp_enum_from_str ((int*)valp, str, ndmp3_header_message_type_table);
98 struct ndmp_enum_str_table ndmp3_header_message_type_table[] = {
99 { "NDMP3_MESSAGE_REQUEST", NDMP3_MESSAGE_REQUEST, },
100 { "NDMP3_MESSAGE_REPLY", NDMP3_MESSAGE_REPLY, },
105 extern struct ndmp_enum_str_table ndmp3_message_table[];
106 extern char * ndmp3_message_to_str (ndmp3_message val);
107 extern int ndmp3_message_from_str (ndmp3_message *valp, char *str);
109 char * ndmp3_message_to_str (ndmp3_message val) {
110 return ndmp_enum_to_str ((int)val, ndmp3_message_table);
113 int ndmp3_message_from_str (ndmp3_message *valp, char *str) {
114 return ndmp_enum_from_str ((int*)valp, str, ndmp3_message_table);
117 struct ndmp_enum_str_table ndmp3_message_table[] = {
118 { "NDMP3_CONNECT_OPEN", NDMP3_CONNECT_OPEN, },
119 { "NDMP3_CONNECT_CLIENT_AUTH", NDMP3_CONNECT_CLIENT_AUTH, },
120 { "NDMP3_CONNECT_CLOSE", NDMP3_CONNECT_CLOSE, },
121 { "NDMP3_CONNECT_SERVER_AUTH", NDMP3_CONNECT_SERVER_AUTH, },
122 { "NDMP3_CONFIG_GET_HOST_INFO", NDMP3_CONFIG_GET_HOST_INFO, },
123 { "NDMP3_CONFIG_GET_CONNECTION_TYPE",
124 NDMP3_CONFIG_GET_CONNECTION_TYPE, },
125 { "NDMP3_CONFIG_GET_AUTH_ATTR", NDMP3_CONFIG_GET_AUTH_ATTR, },
126 { "NDMP3_CONFIG_GET_BUTYPE_INFO", NDMP3_CONFIG_GET_BUTYPE_INFO, },
127 { "NDMP3_CONFIG_GET_FS_INFO", NDMP3_CONFIG_GET_FS_INFO, },
128 { "NDMP3_CONFIG_GET_TAPE_INFO", NDMP3_CONFIG_GET_TAPE_INFO, },
129 { "NDMP3_CONFIG_GET_SCSI_INFO", NDMP3_CONFIG_GET_SCSI_INFO, },
130 { "NDMP3_CONFIG_GET_SERVER_INFO",NDMP3_CONFIG_GET_SERVER_INFO, },
131 { "NDMP3_SCSI_OPEN", NDMP3_SCSI_OPEN, },
132 { "NDMP3_SCSI_CLOSE", NDMP3_SCSI_CLOSE, },
133 { "NDMP3_SCSI_GET_STATE", NDMP3_SCSI_GET_STATE, },
134 { "NDMP3_SCSI_SET_TARGET", NDMP3_SCSI_SET_TARGET, },
135 { "NDMP3_SCSI_RESET_DEVICE", NDMP3_SCSI_RESET_DEVICE, },
136 { "NDMP3_SCSI_RESET_BUS", NDMP3_SCSI_RESET_BUS, },
137 { "NDMP3_SCSI_EXECUTE_CDB", NDMP3_SCSI_EXECUTE_CDB, },
138 { "NDMP3_TAPE_OPEN", NDMP3_TAPE_OPEN, },
139 { "NDMP3_TAPE_CLOSE", NDMP3_TAPE_CLOSE, },
140 { "NDMP3_TAPE_GET_STATE", NDMP3_TAPE_GET_STATE, },
141 { "NDMP3_TAPE_MTIO", NDMP3_TAPE_MTIO, },
142 { "NDMP3_TAPE_WRITE", NDMP3_TAPE_WRITE, },
143 { "NDMP3_TAPE_READ", NDMP3_TAPE_READ, },
144 { "NDMP3_TAPE_EXECUTE_CDB", NDMP3_TAPE_EXECUTE_CDB, },
145 { "NDMP3_DATA_GET_STATE", NDMP3_DATA_GET_STATE, },
146 { "NDMP3_DATA_START_BACKUP", NDMP3_DATA_START_BACKUP, },
147 { "NDMP3_DATA_START_RECOVER", NDMP3_DATA_START_RECOVER, },
148 { "NDMP3_DATA_START_RECOVER_FILEHIST",
149 NDMP3_DATA_START_RECOVER_FILEHIST, },
150 { "NDMP3_DATA_ABORT", NDMP3_DATA_ABORT, },
151 { "NDMP3_DATA_GET_ENV", NDMP3_DATA_GET_ENV, },
152 { "NDMP3_DATA_STOP", NDMP3_DATA_STOP, },
153 { "NDMP3_DATA_LISTEN", NDMP3_DATA_LISTEN, },
154 { "NDMP3_DATA_CONNECT", NDMP3_DATA_CONNECT, },
155 { "NDMP3_NOTIFY_DATA_HALTED", NDMP3_NOTIFY_DATA_HALTED, },
156 { "NDMP3_NOTIFY_CONNECTED", NDMP3_NOTIFY_CONNECTED, },
157 { "NDMP3_NOTIFY_MOVER_HALTED", NDMP3_NOTIFY_MOVER_HALTED, },
158 { "NDMP3_NOTIFY_MOVER_PAUSED", NDMP3_NOTIFY_MOVER_PAUSED, },
159 { "NDMP3_NOTIFY_DATA_READ", NDMP3_NOTIFY_DATA_READ, },
160 { "NDMP3_LOG_FILE", NDMP3_LOG_FILE, },
161 { "NDMP3_LOG_MESSAGE", NDMP3_LOG_MESSAGE, },
162 { "NDMP3_FH_ADD_FILE", NDMP3_FH_ADD_FILE, },
163 { "NDMP3_FH_ADD_DIR", NDMP3_FH_ADD_DIR, },
164 { "NDMP3_FH_ADD_NODE", NDMP3_FH_ADD_NODE, },
165 { "NDMP3_MOVER_GET_STATE", NDMP3_MOVER_GET_STATE, },
166 { "NDMP3_MOVER_LISTEN", NDMP3_MOVER_LISTEN, },
167 { "NDMP3_MOVER_CONTINUE", NDMP3_MOVER_CONTINUE, },
168 { "NDMP3_MOVER_ABORT", NDMP3_MOVER_ABORT, },
169 { "NDMP3_MOVER_STOP", NDMP3_MOVER_STOP, },
170 { "NDMP3_MOVER_SET_WINDOW", NDMP3_MOVER_SET_WINDOW, },
171 { "NDMP3_MOVER_READ", NDMP3_MOVER_READ, },
172 { "NDMP3_MOVER_CLOSE", NDMP3_MOVER_CLOSE, },
173 { "NDMP3_MOVER_SET_RECORD_SIZE", NDMP3_MOVER_SET_RECORD_SIZE, },
174 { "NDMP3_MOVER_CONNECT", NDMP3_MOVER_CONNECT, },
175 { "NDMP3_VENDORS_BASE", NDMP3_VENDORS_BASE, },
176 { "NDMP3_RESERVED_BASE", NDMP3_RESERVED_BASE, },
181 extern struct ndmp_enum_str_table ndmp3_auth_type_table[];
182 extern char * ndmp3_auth_type_to_str (ndmp3_auth_type val);
183 extern int ndmp3_auth_type_from_str (ndmp3_auth_type *valp, char *str);
185 char * ndmp3_auth_type_to_str (ndmp3_auth_type val) {
186 return ndmp_enum_to_str ((int)val, ndmp3_auth_type_table);
189 int ndmp3_auth_type_from_str (ndmp3_auth_type *valp, char *str) {
190 return ndmp_enum_from_str ((int*)valp, str, ndmp3_auth_type_table);
193 struct ndmp_enum_str_table ndmp3_auth_type_table[] = {
194 { "NDMP3_AUTH_NONE", NDMP3_AUTH_NONE, },
195 { "NDMP3_AUTH_TEXT", NDMP3_AUTH_TEXT, },
196 { "NDMP3_AUTH_MD5", NDMP3_AUTH_MD5, },
201 extern struct ndmp_enum_str_table ndmp3_addr_type_table[];
202 extern char * ndmp3_addr_type_to_str (ndmp3_addr_type val);
203 extern int ndmp3_addr_type_from_str (ndmp3_addr_type *valp, char *str);
205 char * ndmp3_addr_type_to_str (ndmp3_addr_type val) {
206 return ndmp_enum_to_str ((int)val, ndmp3_addr_type_table);
209 int ndmp3_addr_type_from_str (ndmp3_addr_type *valp, char *str) {
210 return ndmp_enum_from_str ((int*)valp, str, ndmp3_addr_type_table);
213 struct ndmp_enum_str_table ndmp3_addr_type_table[] = {
214 { "NDMP3_ADDR_LOCAL", NDMP3_ADDR_LOCAL, },
215 { "NDMP3_ADDR_TCP", NDMP3_ADDR_TCP, },
216 { "NDMP3_ADDR_FC", NDMP3_ADDR_FC, },
217 { "NDMP3_ADDR_IPC", NDMP3_ADDR_IPC, },
222 extern struct ndmp_enum_str_table ndmp3_tape_open_mode_table[];
223 extern char * ndmp3_tape_open_mode_to_str (ndmp3_tape_open_mode val);
224 extern int ndmp3_tape_open_mode_from_str (ndmp3_tape_open_mode *valp, char *str);
226 char * ndmp3_tape_open_mode_to_str (ndmp3_tape_open_mode val) {
227 return ndmp_enum_to_str ((int)val, ndmp3_tape_open_mode_table);
230 int ndmp3_tape_open_mode_from_str (ndmp3_tape_open_mode *valp, char *str) {
231 return ndmp_enum_from_str ((int*)valp, str, ndmp3_tape_open_mode_table);
234 struct ndmp_enum_str_table ndmp3_tape_open_mode_table[] = {
235 { "NDMP3_TAPE_READ_MODE", NDMP3_TAPE_READ_MODE, },
236 { "NDMP3_TAPE_RDWR_MODE", NDMP3_TAPE_RDWR_MODE, },
241 extern struct ndmp_enum_str_table ndmp3_tape_mtio_op_table[];
242 extern char * ndmp3_tape_mtio_op_to_str (ndmp3_tape_mtio_op val);
243 extern int ndmp3_tape_mtio_op_from_str (ndmp3_tape_mtio_op *valp, char *str);
245 char * ndmp3_tape_mtio_op_to_str (ndmp3_tape_mtio_op val) {
246 return ndmp_enum_to_str ((int)val, ndmp3_tape_mtio_op_table);
249 int ndmp3_tape_mtio_op_from_str (ndmp3_tape_mtio_op *valp, char *str) {
250 return ndmp_enum_from_str ((int*)valp, str, ndmp3_tape_mtio_op_table);
253 struct ndmp_enum_str_table ndmp3_tape_mtio_op_table[] = {
254 { "NDMP3_MTIO_FSF", NDMP3_MTIO_FSF, },
255 { "NDMP3_MTIO_BSF", NDMP3_MTIO_BSF, },
256 { "NDMP3_MTIO_FSR", NDMP3_MTIO_FSR, },
257 { "NDMP3_MTIO_BSR", NDMP3_MTIO_BSR, },
258 { "NDMP3_MTIO_REW", NDMP3_MTIO_REW, },
259 { "NDMP3_MTIO_EOF", NDMP3_MTIO_EOF, },
260 { "NDMP3_MTIO_OFF", NDMP3_MTIO_OFF, },
265 extern struct ndmp_enum_str_table ndmp3_mover_state_table[];
266 extern char * ndmp3_mover_state_to_str (ndmp3_mover_state val);
267 extern int ndmp3_mover_state_from_str (ndmp3_mover_state *valp, char *str);
269 char * ndmp3_mover_state_to_str (ndmp3_mover_state val) {
270 return ndmp_enum_to_str ((int)val, ndmp3_mover_state_table);
273 int ndmp3_mover_state_from_str (ndmp3_mover_state *valp, char *str) {
274 return ndmp_enum_from_str ((int*)valp, str, ndmp3_mover_state_table);
277 struct ndmp_enum_str_table ndmp3_mover_state_table[] = {
278 { "NDMP3_MOVER_STATE_IDLE", NDMP3_MOVER_STATE_IDLE, },
279 { "NDMP3_MOVER_STATE_LISTEN", NDMP3_MOVER_STATE_LISTEN, },
280 { "NDMP3_MOVER_STATE_ACTIVE", NDMP3_MOVER_STATE_ACTIVE, },
281 { "NDMP3_MOVER_STATE_PAUSED", NDMP3_MOVER_STATE_PAUSED, },
282 { "NDMP3_MOVER_STATE_HALTED", NDMP3_MOVER_STATE_HALTED, },
287 extern struct ndmp_enum_str_table ndmp3_mover_pause_reason_table[];
288 extern char * ndmp3_mover_pause_reason_to_str (ndmp3_mover_pause_reason val);
289 extern int ndmp3_mover_pause_reason_from_str (ndmp3_mover_pause_reason *valp, char *str);
291 char * ndmp3_mover_pause_reason_to_str (ndmp3_mover_pause_reason val) {
292 return ndmp_enum_to_str ((int)val, ndmp3_mover_pause_reason_table);
295 int ndmp3_mover_pause_reason_from_str (ndmp3_mover_pause_reason *valp, char *str) {
296 return ndmp_enum_from_str ((int*)valp, str, ndmp3_mover_pause_reason_table);
299 struct ndmp_enum_str_table ndmp3_mover_pause_reason_table[] = {
300 { "NDMP3_MOVER_PAUSE_NA", NDMP3_MOVER_PAUSE_NA, },
301 { "NDMP3_MOVER_PAUSE_EOM", NDMP3_MOVER_PAUSE_EOM, },
302 { "NDMP3_MOVER_PAUSE_EOF", NDMP3_MOVER_PAUSE_EOF, },
303 { "NDMP3_MOVER_PAUSE_SEEK", NDMP3_MOVER_PAUSE_SEEK, },
304 { "NDMP3_MOVER_PAUSE_MEDIA_ERROR", NDMP3_MOVER_PAUSE_MEDIA_ERROR, },
305 { "NDMP3_MOVER_PAUSE_EOW", NDMP3_MOVER_PAUSE_EOW, },
310 extern struct ndmp_enum_str_table ndmp3_mover_halt_reason_table[];
311 extern char * ndmp3_mover_halt_reason_to_str (ndmp3_mover_halt_reason val);
312 extern int ndmp3_mover_halt_reason_from_str (ndmp3_mover_halt_reason *valp, char *str);
314 char * ndmp3_mover_halt_reason_to_str (ndmp3_mover_halt_reason val) {
315 return ndmp_enum_to_str ((int)val, ndmp3_mover_halt_reason_table);
318 int ndmp3_mover_halt_reason_from_str (ndmp3_mover_halt_reason *valp, char *str) {
319 return ndmp_enum_from_str ((int*)valp, str, ndmp3_mover_halt_reason_table);
322 struct ndmp_enum_str_table ndmp3_mover_halt_reason_table[] = {
323 { "NDMP3_MOVER_HALT_NA", NDMP3_MOVER_HALT_NA, },
324 { "NDMP3_MOVER_HALT_CONNECT_CLOSED",
325 NDMP3_MOVER_HALT_CONNECT_CLOSED, },
326 { "NDMP3_MOVER_HALT_ABORTED", NDMP3_MOVER_HALT_ABORTED, },
327 { "NDMP3_MOVER_HALT_INTERNAL_ERROR",
328 NDMP3_MOVER_HALT_INTERNAL_ERROR, },
329 { "NDMP3_MOVER_HALT_CONNECT_ERROR",
330 NDMP3_MOVER_HALT_CONNECT_ERROR, },
335 extern struct ndmp_enum_str_table ndmp3_mover_mode_table[];
336 extern char * ndmp3_mover_mode_to_str (ndmp3_mover_mode val);
337 extern int ndmp3_mover_mode_from_str (ndmp3_mover_mode *valp, char *str);
339 char * ndmp3_mover_mode_to_str (ndmp3_mover_mode val) {
340 return ndmp_enum_to_str ((int)val, ndmp3_mover_mode_table);
343 int ndmp3_mover_mode_from_str (ndmp3_mover_mode *valp, char *str) {
344 return ndmp_enum_from_str ((int*)valp, str, ndmp3_mover_mode_table);
347 struct ndmp_enum_str_table ndmp3_mover_mode_table[] = {
348 { "NDMP3_MOVER_MODE_READ", NDMP3_MOVER_MODE_READ, },
349 { "NDMP3_MOVER_MODE_WRITE", NDMP3_MOVER_MODE_WRITE, },
354 extern struct ndmp_enum_str_table ndmp3_data_operation_table[];
355 extern char * ndmp3_data_operation_to_str (ndmp3_data_operation val);
356 extern int ndmp3_data_operation_from_str (ndmp3_data_operation *valp, char *str);
358 char * ndmp3_data_operation_to_str (ndmp3_data_operation val) {
359 return ndmp_enum_to_str ((int)val, ndmp3_data_operation_table);
362 int ndmp3_data_operation_from_str (ndmp3_data_operation *valp, char *str) {
363 return ndmp_enum_from_str ((int*)valp, str, ndmp3_data_operation_table);
366 struct ndmp_enum_str_table ndmp3_data_operation_table[] = {
367 { "NDMP3_DATA_OP_NOACTION", NDMP3_DATA_OP_NOACTION, },
368 { "NDMP3_DATA_OP_BACKUP", NDMP3_DATA_OP_BACKUP, },
369 { "NDMP3_DATA_OP_RESTORE", NDMP3_DATA_OP_RESTORE, },
370 { "NDMP3_DATA_OP_RESTORE_FILEHIST",
371 NDMP3_DATA_OP_RESTORE_FILEHIST, },
376 extern struct ndmp_enum_str_table ndmp3_data_state_table[];
377 extern char * ndmp3_data_state_to_str (ndmp3_data_state val);
378 extern int ndmp3_data_state_from_str (ndmp3_data_state *valp, char *str);
380 char * ndmp3_data_state_to_str (ndmp3_data_state val) {
381 return ndmp_enum_to_str ((int)val, ndmp3_data_state_table);
384 int ndmp3_data_state_from_str (ndmp3_data_state *valp, char *str) {
385 return ndmp_enum_from_str ((int*)valp, str, ndmp3_data_state_table);
388 struct ndmp_enum_str_table ndmp3_data_state_table[] = {
389 { "NDMP3_DATA_STATE_IDLE", NDMP3_DATA_STATE_IDLE, },
390 { "NDMP3_DATA_STATE_ACTIVE", NDMP3_DATA_STATE_ACTIVE, },
391 { "NDMP3_DATA_STATE_HALTED", NDMP3_DATA_STATE_HALTED, },
392 { "NDMP3_DATA_STATE_LISTEN", NDMP3_DATA_STATE_LISTEN, },
393 { "NDMP3_DATA_STATE_CONNECTED", NDMP3_DATA_STATE_CONNECTED, },
398 extern struct ndmp_enum_str_table ndmp3_data_halt_reason_table[];
399 extern char * ndmp3_data_halt_reason_to_str (ndmp3_data_halt_reason val);
400 extern int ndmp3_data_halt_reason_from_str (ndmp3_data_halt_reason *valp, char *str);
402 char * ndmp3_data_halt_reason_to_str (ndmp3_data_halt_reason val) {
403 return ndmp_enum_to_str ((int)val, ndmp3_data_halt_reason_table);
406 int ndmp3_data_halt_reason_from_str (ndmp3_data_halt_reason *valp, char *str) {
407 return ndmp_enum_from_str ((int*)valp, str, ndmp3_data_halt_reason_table);
410 struct ndmp_enum_str_table ndmp3_data_halt_reason_table[] = {
411 { "NDMP3_DATA_HALT_NA", NDMP3_DATA_HALT_NA, },
412 { "NDMP3_DATA_HALT_SUCCESSFUL", NDMP3_DATA_HALT_SUCCESSFUL, },
413 { "NDMP3_DATA_HALT_ABORTED", NDMP3_DATA_HALT_ABORTED, },
414 { "NDMP3_DATA_HALT_INTERNAL_ERROR", NDMP3_DATA_HALT_INTERNAL_ERROR, },
415 { "NDMP3_DATA_HALT_CONNECT_ERROR", NDMP3_DATA_HALT_CONNECT_ERROR, },
420 extern struct ndmp_enum_str_table ndmp3_connect_reason_table[];
421 extern char * ndmp3_connect_reason_to_str (ndmp3_connect_reason val);
422 extern int ndmp3_connect_reason_from_str (ndmp3_connect_reason *valp, char *str);
424 char * ndmp3_connect_reason_to_str (ndmp3_connect_reason val) {
425 return ndmp_enum_to_str ((int)val, ndmp3_connect_reason_table);
428 int ndmp3_connect_reason_from_str (ndmp3_connect_reason *valp, char *str) {
429 return ndmp_enum_from_str ((int*)valp, str, ndmp3_connect_reason_table);
432 struct ndmp_enum_str_table ndmp3_connect_reason_table[] = {
433 { "NDMP3_CONNECTED", NDMP3_CONNECTED, },
434 { "NDMP3_SHUTDOWN", NDMP3_SHUTDOWN, },
435 { "NDMP3_REFUSED", NDMP3_REFUSED, },
440 extern struct ndmp_enum_str_table ndmp3_log_type_table[];
441 extern char * ndmp3_log_type_to_str (ndmp3_log_type val);
442 extern int ndmp3_log_type_from_str (ndmp3_log_type *valp, char *str);
444 char * ndmp3_log_type_to_str (ndmp3_log_type val) {
445 return ndmp_enum_to_str ((int)val, ndmp3_log_type_table);
448 int ndmp3_log_type_from_str (ndmp3_log_type *valp, char *str) {
449 return ndmp_enum_from_str ((int*)valp, str, ndmp3_log_type_table);
452 struct ndmp_enum_str_table ndmp3_log_type_table[] = {
453 { "NDMP3_LOG_NORMAL", NDMP3_LOG_NORMAL, },
454 { "NDMP3_LOG_DEBUG", NDMP3_LOG_DEBUG, },
455 { "NDMP3_LOG_ERROR", NDMP3_LOG_ERROR, },
456 { "NDMP3_LOG_WARNING", NDMP3_LOG_WARNING, },
461 extern struct ndmp_enum_str_table ndmp3_fs_type_table[];
462 extern char * ndmp3_fs_type_to_str (ndmp3_fs_type val);
463 extern int ndmp3_fs_type_from_str (ndmp3_fs_type *valp, char *str);
465 char * ndmp3_fs_type_to_str (ndmp3_fs_type val) {
466 return ndmp_enum_to_str ((int)val, ndmp3_fs_type_table);
469 int ndmp3_fs_type_from_str (ndmp3_fs_type *valp, char *str) {
470 return ndmp_enum_from_str ((int*)valp, str, ndmp3_fs_type_table);
473 struct ndmp_enum_str_table ndmp3_fs_type_table[] = {
474 { "NDMP3_FS_UNIX", NDMP3_FS_UNIX, },
475 { "NDMP3_FS_NT", NDMP3_FS_NT, },
476 { "NDMP3_FS_OTHER", NDMP3_FS_OTHER, },
481 extern struct ndmp_enum_str_table ndmp3_file_type_table[];
482 extern char * ndmp3_file_type_to_str (ndmp3_file_type val);
483 extern int ndmp3_file_type_from_str (ndmp3_file_type *valp, char *str);
485 char * ndmp3_file_type_to_str (ndmp3_file_type val) {
486 return ndmp_enum_to_str ((int)val, ndmp3_file_type_table);
489 int ndmp3_file_type_from_str (ndmp3_file_type *valp, char *str) {
490 return ndmp_enum_from_str ((int*)valp, str, ndmp3_file_type_table);
493 struct ndmp_enum_str_table ndmp3_file_type_table[] = {
494 { "NDMP3_FILE_DIR", NDMP3_FILE_DIR, },
495 { "NDMP3_FILE_FIFO", NDMP3_FILE_FIFO, },
496 { "NDMP3_FILE_CSPEC", NDMP3_FILE_CSPEC, },
497 { "NDMP3_FILE_BSPEC", NDMP3_FILE_BSPEC, },
498 { "NDMP3_FILE_REG", NDMP3_FILE_REG, },
499 { "NDMP3_FILE_SLINK", NDMP3_FILE_SLINK, },
500 { "NDMP3_FILE_SOCK", NDMP3_FILE_SOCK, },
501 { "NDMP3_FILE_REGISTRY", NDMP3_FILE_REGISTRY, },
502 { "NDMP3_FILE_OTHER", NDMP3_FILE_OTHER, },
506 #endif /* !NDMOS_OPTION_NO_NDMP3 */