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"
45 extern struct ndmp_enum_str_table ndmp9_error_table[];
46 extern char * ndmp9_error_to_str (ndmp9_error val);
47 extern int ndmp9_error_from_str (ndmp9_error *valp, char * str);
49 char * ndmp9_error_to_str (ndmp9_error val) {
50 return ndmp_enum_to_str ((int)val, ndmp9_error_table);
53 int ndmp9_error_from_str (ndmp9_error *valp, char * str) {
54 return ndmp_enum_from_str ((int*)valp, str, ndmp9_error_table);
57 struct ndmp_enum_str_table ndmp9_error_table[] = {
58 { "NDMP9_NO_ERR", NDMP9_NO_ERR },
59 { "NDMP9_NOT_SUPPORTED_ERR", NDMP9_NOT_SUPPORTED_ERR },
60 { "NDMP9_DEVICE_BUSY_ERR", NDMP9_DEVICE_BUSY_ERR },
61 { "NDMP9_DEVICE_OPENED_ERR", NDMP9_DEVICE_OPENED_ERR },
62 { "NDMP9_NOT_AUTHORIZED_ERR", NDMP9_NOT_AUTHORIZED_ERR },
63 { "NDMP9_PERMISSION_ERR", NDMP9_PERMISSION_ERR },
64 { "NDMP9_DEV_NOT_OPEN_ERR", NDMP9_DEV_NOT_OPEN_ERR },
65 { "NDMP9_IO_ERR", NDMP9_IO_ERR },
66 { "NDMP9_TIMEOUT_ERR", NDMP9_TIMEOUT_ERR },
67 { "NDMP9_ILLEGAL_ARGS_ERR", NDMP9_ILLEGAL_ARGS_ERR },
68 { "NDMP9_NO_TAPE_LOADED_ERR", NDMP9_NO_TAPE_LOADED_ERR },
69 { "NDMP9_WRITE_PROTECT_ERR", NDMP9_WRITE_PROTECT_ERR },
70 { "NDMP9_EOF_ERR", NDMP9_EOF_ERR },
71 { "NDMP9_EOM_ERR", NDMP9_EOM_ERR },
72 { "NDMP9_FILE_NOT_FOUND_ERR", NDMP9_FILE_NOT_FOUND_ERR },
73 { "NDMP9_BAD_FILE_ERR", NDMP9_BAD_FILE_ERR },
74 { "NDMP9_NO_DEVICE_ERR", NDMP9_NO_DEVICE_ERR },
75 { "NDMP9_NO_BUS_ERR", NDMP9_NO_BUS_ERR },
76 { "NDMP9_XDR_DECODE_ERR", NDMP9_XDR_DECODE_ERR },
77 { "NDMP9_ILLEGAL_STATE_ERR", NDMP9_ILLEGAL_STATE_ERR },
78 { "NDMP9_UNDEFINED_ERR", NDMP9_UNDEFINED_ERR },
79 { "NDMP9_XDR_ENCODE_ERR", NDMP9_XDR_ENCODE_ERR },
80 { "NDMP9_NO_MEM_ERR", NDMP9_NO_MEM_ERR },
81 { "NDMP9_CONNECT_ERR", NDMP9_CONNECT_ERR, },
86 extern struct ndmp_enum_str_table ndmp9_auth_type_table[];
87 extern char * ndmp9_auth_type_to_str (ndmp9_auth_type val);
88 extern int ndmp9_auth_type_from_str (ndmp9_auth_type *valp, char * str);
90 char * ndmp9_auth_type_to_str (ndmp9_auth_type val) {
91 return ndmp_enum_to_str ((int)val, ndmp9_auth_type_table);
94 int ndmp9_auth_type_from_str (ndmp9_auth_type *valp, char * str) {
95 return ndmp_enum_from_str ((int*)valp, str, ndmp9_auth_type_table);
98 struct ndmp_enum_str_table ndmp9_auth_type_table[] = {
99 { "NDMP9_AUTH_NONE", NDMP9_AUTH_NONE },
100 { "NDMP9_AUTH_TEXT", NDMP9_AUTH_TEXT },
101 { "NDMP9_AUTH_MD5", NDMP9_AUTH_MD5 },
105 extern struct ndmp_enum_str_table ndmp9_addr_type_table[];
106 extern char * ndmp9_addr_type_to_str (ndmp9_addr_type val);
107 extern int ndmp9_addr_type_from_str (ndmp9_addr_type *valp, char * str);
109 char * ndmp9_addr_type_to_str (ndmp9_addr_type val) {
110 return ndmp_enum_to_str ((int)val, ndmp9_addr_type_table);
113 int ndmp9_addr_type_from_str (ndmp9_addr_type *valp, char * str) {
114 return ndmp_enum_from_str ((int*)valp, str, ndmp9_addr_type_table);
117 struct ndmp_enum_str_table ndmp9_addr_type_table[] = {
118 { "NDMP9_ADDR_LOCAL", NDMP9_ADDR_LOCAL },
119 { "NDMP9_ADDR_TCP", NDMP9_ADDR_TCP },
123 extern struct ndmp_enum_str_table ndmp9_tape_open_mode_table[];
124 extern char * ndmp9_tape_open_mode_to_str (ndmp9_tape_open_mode val);
125 extern int ndmp9_tape_open_mode_from_str (ndmp9_tape_open_mode *valp, char * str);
127 char * ndmp9_tape_open_mode_to_str (ndmp9_tape_open_mode val) {
128 return ndmp_enum_to_str ((int)val, ndmp9_tape_open_mode_table);
131 int ndmp9_tape_open_mode_from_str (ndmp9_tape_open_mode *valp, char * str) {
132 return ndmp_enum_from_str ((int*)valp, str, ndmp9_tape_open_mode_table);
135 struct ndmp_enum_str_table ndmp9_tape_open_mode_table[] = {
136 { "NDMP9_TAPE_READ_MODE", NDMP9_TAPE_READ_MODE },
137 { "NDMP9_TAPE_RDWR_MODE", NDMP9_TAPE_RDWR_MODE },
141 extern struct ndmp_enum_str_table ndmp9_tape_mtio_op_table[];
142 extern char * ndmp9_tape_mtio_op_to_str (ndmp9_tape_mtio_op val);
143 extern int ndmp9_tape_mtio_op_from_str (ndmp9_tape_mtio_op *valp, char * str);
145 char * ndmp9_tape_mtio_op_to_str (ndmp9_tape_mtio_op val) {
146 return ndmp_enum_to_str ((int)val, ndmp9_tape_mtio_op_table);
149 int ndmp9_tape_mtio_op_from_str (ndmp9_tape_mtio_op *valp, char * str) {
150 return ndmp_enum_from_str ((int*)valp, str, ndmp9_tape_mtio_op_table);
153 struct ndmp_enum_str_table ndmp9_tape_mtio_op_table[] = {
154 { "NDMP9_MTIO_FSF", NDMP9_MTIO_FSF },
155 { "NDMP9_MTIO_BSF", NDMP9_MTIO_BSF },
156 { "NDMP9_MTIO_FSR", NDMP9_MTIO_FSR },
157 { "NDMP9_MTIO_BSR", NDMP9_MTIO_BSR },
158 { "NDMP9_MTIO_REW", NDMP9_MTIO_REW },
159 { "NDMP9_MTIO_EOF", NDMP9_MTIO_EOF },
160 { "NDMP9_MTIO_OFF", NDMP9_MTIO_OFF },
164 extern struct ndmp_enum_str_table ndmp9_mover_state_table[];
165 extern char * ndmp9_mover_state_to_str (ndmp9_mover_state val);
166 extern int ndmp9_mover_state_from_str (ndmp9_mover_state *valp, char * str);
168 char * ndmp9_mover_state_to_str (ndmp9_mover_state val) {
169 return ndmp_enum_to_str ((int)val, ndmp9_mover_state_table);
172 int ndmp9_mover_state_from_str (ndmp9_mover_state *valp, char * str) {
173 return ndmp_enum_from_str ((int*)valp, str, ndmp9_mover_state_table);
176 struct ndmp_enum_str_table ndmp9_mover_state_table[] = {
177 { "NDMP9_MOVER_STATE_IDLE", NDMP9_MOVER_STATE_IDLE },
178 { "NDMP9_MOVER_STATE_LISTEN", NDMP9_MOVER_STATE_LISTEN },
179 { "NDMP9_MOVER_STATE_ACTIVE", NDMP9_MOVER_STATE_ACTIVE },
180 { "NDMP9_MOVER_STATE_PAUSED", NDMP9_MOVER_STATE_PAUSED },
181 { "NDMP9_MOVER_STATE_HALTED", NDMP9_MOVER_STATE_HALTED },
185 extern struct ndmp_enum_str_table ndmp9_mover_pause_reason_table[];
186 extern char * ndmp9_mover_pause_reason_to_str (ndmp9_mover_pause_reason val);
187 extern int ndmp9_mover_pause_reason_from_str (ndmp9_mover_pause_reason *valp, char * str);
189 char * ndmp9_mover_pause_reason_to_str (ndmp9_mover_pause_reason val) {
190 return ndmp_enum_to_str ((int)val, ndmp9_mover_pause_reason_table);
193 int ndmp9_mover_pause_reason_from_str (ndmp9_mover_pause_reason *valp, char * str) {
194 return ndmp_enum_from_str ((int*)valp, str, ndmp9_mover_pause_reason_table);
197 struct ndmp_enum_str_table ndmp9_mover_pause_reason_table[] = {
198 { "NDMP9_MOVER_PAUSE_NA", NDMP9_MOVER_PAUSE_NA },
199 { "NDMP9_MOVER_PAUSE_EOM", NDMP9_MOVER_PAUSE_EOM },
200 { "NDMP9_MOVER_PAUSE_EOF", NDMP9_MOVER_PAUSE_EOF },
201 { "NDMP9_MOVER_PAUSE_SEEK", NDMP9_MOVER_PAUSE_SEEK },
202 { "NDMP9_MOVER_PAUSE_MEDIA_ERROR", NDMP9_MOVER_PAUSE_MEDIA_ERROR },
203 { "NDMP9_MOVER_PAUSE_EOW", NDMP9_MOVER_PAUSE_EOW },
207 extern struct ndmp_enum_str_table ndmp9_mover_halt_reason_table[];
208 extern char * ndmp9_mover_halt_reason_to_str (ndmp9_mover_halt_reason val);
209 extern int ndmp9_mover_halt_reason_from_str (ndmp9_mover_halt_reason *valp, char * str);
211 char * ndmp9_mover_halt_reason_to_str (ndmp9_mover_halt_reason val) {
212 return ndmp_enum_to_str ((int)val, ndmp9_mover_halt_reason_table);
215 int ndmp9_mover_halt_reason_from_str (ndmp9_mover_halt_reason *valp, char * str) {
216 return ndmp_enum_from_str ((int*)valp, str, ndmp9_mover_halt_reason_table);
219 struct ndmp_enum_str_table ndmp9_mover_halt_reason_table[] = {
220 { "NDMP9_MOVER_HALT_NA", NDMP9_MOVER_HALT_NA },
221 { "NDMP9_MOVER_HALT_CONNECT_CLOSED", NDMP9_MOVER_HALT_CONNECT_CLOSED },
222 { "NDMP9_MOVER_HALT_ABORTED", NDMP9_MOVER_HALT_ABORTED },
223 { "NDMP9_MOVER_HALT_INTERNAL_ERROR", NDMP9_MOVER_HALT_INTERNAL_ERROR },
224 { "NDMP9_MOVER_HALT_CONNECT_ERROR", NDMP9_MOVER_HALT_CONNECT_ERROR },
228 extern struct ndmp_enum_str_table ndmp9_mover_mode_table[];
229 extern char * ndmp9_mover_mode_to_str (ndmp9_mover_mode val);
230 extern int ndmp9_mover_mode_from_str (ndmp9_mover_mode *valp, char * str);
232 char * ndmp9_mover_mode_to_str (ndmp9_mover_mode val) {
233 return ndmp_enum_to_str ((int)val, ndmp9_mover_mode_table);
236 int ndmp9_mover_mode_from_str (ndmp9_mover_mode *valp, char * str) {
237 return ndmp_enum_from_str ((int*)valp, str, ndmp9_mover_mode_table);
240 struct ndmp_enum_str_table ndmp9_mover_mode_table[] = {
241 { "NDMP9_MOVER_MODE_READ", NDMP9_MOVER_MODE_READ },
242 { "NDMP9_MOVER_MODE_WRITE", NDMP9_MOVER_MODE_WRITE },
244 { "NDMP9_MOVER_MODE_DATA", NDMP9_MOVER_MODE_DATA },
249 extern struct ndmp_enum_str_table ndmp9_data_operation_table[];
250 extern char * ndmp9_data_operation_to_str (ndmp9_data_operation val);
251 extern int ndmp9_data_operation_from_str (ndmp9_data_operation *valp, char * str);
253 char * ndmp9_data_operation_to_str (ndmp9_data_operation val) {
254 return ndmp_enum_to_str ((int)val, ndmp9_data_operation_table);
257 int ndmp9_data_operation_from_str (ndmp9_data_operation *valp, char * str) {
258 return ndmp_enum_from_str ((int*)valp, str, ndmp9_data_operation_table);
261 struct ndmp_enum_str_table ndmp9_data_operation_table[] = {
262 { "NDMP9_DATA_OP_NOACTION", NDMP9_DATA_OP_NOACTION },
263 { "NDMP9_DATA_OP_BACKUP", NDMP9_DATA_OP_BACKUP },
264 { "NDMP9_DATA_OP_RECOVER", NDMP9_DATA_OP_RECOVER },
265 { "NDMP9_DATA_OP_RECOVER_FILEHIST", NDMP9_DATA_OP_RECOVER_FILEHIST },
269 extern struct ndmp_enum_str_table ndmp9_data_state_table[];
270 extern char * ndmp9_data_state_to_str (ndmp9_data_state val);
271 extern int ndmp9_data_state_from_str (ndmp9_data_state *valp, char * str);
273 char * ndmp9_data_state_to_str (ndmp9_data_state val) {
274 return ndmp_enum_to_str ((int)val, ndmp9_data_state_table);
277 int ndmp9_data_state_from_str (ndmp9_data_state *valp, char * str) {
278 return ndmp_enum_from_str ((int*)valp, str, ndmp9_data_state_table);
281 struct ndmp_enum_str_table ndmp9_data_state_table[] = {
282 { "NDMP9_DATA_STATE_IDLE", NDMP9_DATA_STATE_IDLE },
283 { "NDMP9_DATA_STATE_ACTIVE", NDMP9_DATA_STATE_ACTIVE },
284 { "NDMP9_DATA_STATE_HALTED", NDMP9_DATA_STATE_HALTED },
288 extern struct ndmp_enum_str_table ndmp9_data_halt_reason_table[];
289 extern char * ndmp9_data_halt_reason_to_str (ndmp9_data_halt_reason val);
290 extern int ndmp9_data_halt_reason_from_str (ndmp9_data_halt_reason *valp, char * str);
292 char * ndmp9_data_halt_reason_to_str (ndmp9_data_halt_reason val) {
293 return ndmp_enum_to_str ((int)val, ndmp9_data_halt_reason_table);
296 int ndmp9_data_halt_reason_from_str (ndmp9_data_halt_reason *valp, char * str) {
297 return ndmp_enum_from_str ((int*)valp, str, ndmp9_data_halt_reason_table);
300 struct ndmp_enum_str_table ndmp9_data_halt_reason_table[] = {
301 { "NDMP9_DATA_HALT_NA", NDMP9_DATA_HALT_NA },
302 { "NDMP9_DATA_HALT_SUCCESSFUL", NDMP9_DATA_HALT_SUCCESSFUL },
303 { "NDMP9_DATA_HALT_ABORTED", NDMP9_DATA_HALT_ABORTED },
304 { "NDMP9_DATA_HALT_INTERNAL_ERROR", NDMP9_DATA_HALT_INTERNAL_ERROR },
305 { "NDMP9_DATA_HALT_CONNECT_ERROR", NDMP9_DATA_HALT_CONNECT_ERROR },
310 extern struct ndmp_enum_str_table ndmp9_file_type_table[];
311 extern char * ndmp9_file_type_to_str (ndmp9_file_type val);
312 extern int ndmp9_file_type_from_str (ndmp9_file_type *valp, char * str);
314 char * ndmp9_file_type_to_str (ndmp9_file_type val) {
315 return ndmp_enum_to_str ((int)val, ndmp9_file_type_table);
318 int ndmp9_file_type_from_str (ndmp9_file_type *valp, char * str) {
319 return ndmp_enum_from_str ((int*)valp, str, ndmp9_file_type_table);
322 struct ndmp_enum_str_table ndmp9_file_type_table[] = {
323 { "NDMP9_FILE_DIR", NDMP9_FILE_DIR },
324 { "NDMP9_FILE_FIFO", NDMP9_FILE_FIFO },
325 { "NDMP9_FILE_CSPEC", NDMP9_FILE_CSPEC },
326 { "NDMP9_FILE_BSPEC", NDMP9_FILE_BSPEC },
327 { "NDMP9_FILE_REG", NDMP9_FILE_REG },
328 { "NDMP9_FILE_SLINK", NDMP9_FILE_SLINK },
329 { "NDMP9_FILE_SOCK", NDMP9_FILE_SOCK },
330 { "NDMP9_FILE_REGISTRY", NDMP9_FILE_REGISTRY },
331 { "NDMP9_FILE_OTHER", NDMP9_FILE_OTHER },