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
38 #include "ndmos.h" /* rpc/rpc.h */
39 #include "ndmprotocol.h"
40
41
42 extern struct ndmp_enum_str_table ndmp9_error_table[];
43 extern char* ndmp9_error_to_str(ndmp9_error val);
44 extern int ndmp9_error_from_str(ndmp9_error* valp, char* str);
45
ndmp9_error_to_str(ndmp9_error val)46 char* ndmp9_error_to_str(ndmp9_error val)
47 {
48 return ndmp_enum_to_str((int)val, ndmp9_error_table);
49 }
50
ndmp9_error_from_str(ndmp9_error * valp,char * str)51 int ndmp9_error_from_str(ndmp9_error* valp, char* str)
52 {
53 return ndmp_enum_from_str((int*)valp, str, ndmp9_error_table);
54 }
55
56 /* clang-format off */
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, },
82 { 0 }
83 };
84 /* clang-format on */
85
86
87 extern struct ndmp_enum_str_table ndmp9_auth_type_table[];
88 extern char* ndmp9_auth_type_to_str(ndmp9_auth_type val);
89 extern int ndmp9_auth_type_from_str(ndmp9_auth_type* valp, char* str);
90
ndmp9_auth_type_to_str(ndmp9_auth_type val)91 char* ndmp9_auth_type_to_str(ndmp9_auth_type val)
92 {
93 return ndmp_enum_to_str((int)val, ndmp9_auth_type_table);
94 }
95
ndmp9_auth_type_from_str(ndmp9_auth_type * valp,char * str)96 int ndmp9_auth_type_from_str(ndmp9_auth_type* valp, char* str)
97 {
98 return ndmp_enum_from_str((int*)valp, str, ndmp9_auth_type_table);
99 }
100
101 /* clang-format off */
102 struct ndmp_enum_str_table ndmp9_auth_type_table[] = {
103 { "NDMP9_AUTH_NONE", NDMP9_AUTH_NONE },
104 { "NDMP9_AUTH_TEXT", NDMP9_AUTH_TEXT },
105 { "NDMP9_AUTH_MD5", NDMP9_AUTH_MD5 },
106 { 0 }
107 };
108 /* clang-format on */
109
110 extern struct ndmp_enum_str_table ndmp9_addr_type_table[];
111 extern char* ndmp9_addr_type_to_str(ndmp9_addr_type val);
112 extern int ndmp9_addr_type_from_str(ndmp9_addr_type* valp, char* str);
113
ndmp9_addr_type_to_str(ndmp9_addr_type val)114 char* ndmp9_addr_type_to_str(ndmp9_addr_type val)
115 {
116 return ndmp_enum_to_str((int)val, ndmp9_addr_type_table);
117 }
118
ndmp9_addr_type_from_str(ndmp9_addr_type * valp,char * str)119 int ndmp9_addr_type_from_str(ndmp9_addr_type* valp, char* str)
120 {
121 return ndmp_enum_from_str((int*)valp, str, ndmp9_addr_type_table);
122 }
123
124 /* clang-format off */
125 struct ndmp_enum_str_table ndmp9_addr_type_table[] = {
126 { "NDMP9_ADDR_LOCAL", NDMP9_ADDR_LOCAL },
127 { "NDMP9_ADDR_TCP", NDMP9_ADDR_TCP },
128 { 0 }
129 };
130 /* clang-format on */
131
132 extern struct ndmp_enum_str_table ndmp9_tape_open_mode_table[];
133 extern char* ndmp9_tape_open_mode_to_str(ndmp9_tape_open_mode val);
134 extern int ndmp9_tape_open_mode_from_str(ndmp9_tape_open_mode* valp, char* str);
135
ndmp9_tape_open_mode_to_str(ndmp9_tape_open_mode val)136 char* ndmp9_tape_open_mode_to_str(ndmp9_tape_open_mode val)
137 {
138 return ndmp_enum_to_str((int)val, ndmp9_tape_open_mode_table);
139 }
140
ndmp9_tape_open_mode_from_str(ndmp9_tape_open_mode * valp,char * str)141 int ndmp9_tape_open_mode_from_str(ndmp9_tape_open_mode* valp, char* str)
142 {
143 return ndmp_enum_from_str((int*)valp, str, ndmp9_tape_open_mode_table);
144 }
145
146 /* clang-format off */
147 struct ndmp_enum_str_table ndmp9_tape_open_mode_table[] = {
148 { "NDMP9_TAPE_READ_MODE", NDMP9_TAPE_READ_MODE },
149 { "NDMP9_TAPE_RDWR_MODE", NDMP9_TAPE_RDWR_MODE },
150 { 0 }
151 };
152 /* clang-format on */
153
154 extern struct ndmp_enum_str_table ndmp9_tape_mtio_op_table[];
155 extern char* ndmp9_tape_mtio_op_to_str(ndmp9_tape_mtio_op val);
156 extern int ndmp9_tape_mtio_op_from_str(ndmp9_tape_mtio_op* valp, char* str);
157
ndmp9_tape_mtio_op_to_str(ndmp9_tape_mtio_op val)158 char* ndmp9_tape_mtio_op_to_str(ndmp9_tape_mtio_op val)
159 {
160 return ndmp_enum_to_str((int)val, ndmp9_tape_mtio_op_table);
161 }
162
ndmp9_tape_mtio_op_from_str(ndmp9_tape_mtio_op * valp,char * str)163 int ndmp9_tape_mtio_op_from_str(ndmp9_tape_mtio_op* valp, char* str)
164 {
165 return ndmp_enum_from_str((int*)valp, str, ndmp9_tape_mtio_op_table);
166 }
167
168 /* clang-format off */
169 struct ndmp_enum_str_table ndmp9_tape_mtio_op_table[] = {
170 { "NDMP9_MTIO_FSF", NDMP9_MTIO_FSF },
171 { "NDMP9_MTIO_BSF", NDMP9_MTIO_BSF },
172 { "NDMP9_MTIO_FSR", NDMP9_MTIO_FSR },
173 { "NDMP9_MTIO_BSR", NDMP9_MTIO_BSR },
174 { "NDMP9_MTIO_REW", NDMP9_MTIO_REW },
175 { "NDMP9_MTIO_EOF", NDMP9_MTIO_EOF },
176 { "NDMP9_MTIO_OFF", NDMP9_MTIO_OFF },
177 { 0 }
178 };
179 /* clang-format on */
180
181 extern struct ndmp_enum_str_table ndmp9_mover_state_table[];
182 extern char* ndmp9_mover_state_to_str(ndmp9_mover_state val);
183 extern int ndmp9_mover_state_from_str(ndmp9_mover_state* valp, char* str);
184
ndmp9_mover_state_to_str(ndmp9_mover_state val)185 char* ndmp9_mover_state_to_str(ndmp9_mover_state val)
186 {
187 return ndmp_enum_to_str((int)val, ndmp9_mover_state_table);
188 }
189
ndmp9_mover_state_from_str(ndmp9_mover_state * valp,char * str)190 int ndmp9_mover_state_from_str(ndmp9_mover_state* valp, char* str)
191 {
192 return ndmp_enum_from_str((int*)valp, str, ndmp9_mover_state_table);
193 }
194
195 /* clang-format off */
196 struct ndmp_enum_str_table ndmp9_mover_state_table[] = {
197 { "NDMP9_MOVER_STATE_IDLE", NDMP9_MOVER_STATE_IDLE },
198 { "NDMP9_MOVER_STATE_LISTEN", NDMP9_MOVER_STATE_LISTEN },
199 { "NDMP9_MOVER_STATE_ACTIVE", NDMP9_MOVER_STATE_ACTIVE },
200 { "NDMP9_MOVER_STATE_PAUSED", NDMP9_MOVER_STATE_PAUSED },
201 { "NDMP9_MOVER_STATE_HALTED", NDMP9_MOVER_STATE_HALTED },
202 { 0 }
203 };
204 /* clang-format on */
205
206 extern struct ndmp_enum_str_table ndmp9_mover_pause_reason_table[];
207 extern char* ndmp9_mover_pause_reason_to_str(ndmp9_mover_pause_reason val);
208 extern int ndmp9_mover_pause_reason_from_str(ndmp9_mover_pause_reason* valp,
209 char* str);
210
ndmp9_mover_pause_reason_to_str(ndmp9_mover_pause_reason val)211 char* ndmp9_mover_pause_reason_to_str(ndmp9_mover_pause_reason val)
212 {
213 return ndmp_enum_to_str((int)val, ndmp9_mover_pause_reason_table);
214 }
215
ndmp9_mover_pause_reason_from_str(ndmp9_mover_pause_reason * valp,char * str)216 int ndmp9_mover_pause_reason_from_str(ndmp9_mover_pause_reason* valp, char* str)
217 {
218 return ndmp_enum_from_str((int*)valp, str, ndmp9_mover_pause_reason_table);
219 }
220
221 /* clang-format off */
222 struct ndmp_enum_str_table ndmp9_mover_pause_reason_table[] = {
223 { "NDMP9_MOVER_PAUSE_NA", NDMP9_MOVER_PAUSE_NA },
224 { "NDMP9_MOVER_PAUSE_EOM", NDMP9_MOVER_PAUSE_EOM },
225 { "NDMP9_MOVER_PAUSE_EOF", NDMP9_MOVER_PAUSE_EOF },
226 { "NDMP9_MOVER_PAUSE_SEEK", NDMP9_MOVER_PAUSE_SEEK },
227 { "NDMP9_MOVER_PAUSE_MEDIA_ERROR", NDMP9_MOVER_PAUSE_MEDIA_ERROR },
228 { "NDMP9_MOVER_PAUSE_EOW", NDMP9_MOVER_PAUSE_EOW },
229 { 0 }
230 };
231 /* clang-format on */
232
233 extern struct ndmp_enum_str_table ndmp9_mover_halt_reason_table[];
234 extern char* ndmp9_mover_halt_reason_to_str(ndmp9_mover_halt_reason val);
235 extern int ndmp9_mover_halt_reason_from_str(ndmp9_mover_halt_reason* valp,
236 char* str);
237
ndmp9_mover_halt_reason_to_str(ndmp9_mover_halt_reason val)238 char* ndmp9_mover_halt_reason_to_str(ndmp9_mover_halt_reason val)
239 {
240 return ndmp_enum_to_str((int)val, ndmp9_mover_halt_reason_table);
241 }
242
ndmp9_mover_halt_reason_from_str(ndmp9_mover_halt_reason * valp,char * str)243 int ndmp9_mover_halt_reason_from_str(ndmp9_mover_halt_reason* valp, char* str)
244 {
245 return ndmp_enum_from_str((int*)valp, str, ndmp9_mover_halt_reason_table);
246 }
247
248 /* clang-format off */
249 struct ndmp_enum_str_table ndmp9_mover_halt_reason_table[] = {
250 { "NDMP9_MOVER_HALT_NA", NDMP9_MOVER_HALT_NA },
251 { "NDMP9_MOVER_HALT_CONNECT_CLOSED", NDMP9_MOVER_HALT_CONNECT_CLOSED },
252 { "NDMP9_MOVER_HALT_ABORTED", NDMP9_MOVER_HALT_ABORTED },
253 { "NDMP9_MOVER_HALT_INTERNAL_ERROR", NDMP9_MOVER_HALT_INTERNAL_ERROR },
254 { "NDMP9_MOVER_HALT_CONNECT_ERROR", NDMP9_MOVER_HALT_CONNECT_ERROR },
255 { 0 }
256 };
257 /* clang-format on */
258
259 extern struct ndmp_enum_str_table ndmp9_mover_mode_table[];
260 extern char* ndmp9_mover_mode_to_str(ndmp9_mover_mode val);
261 extern int ndmp9_mover_mode_from_str(ndmp9_mover_mode* valp, char* str);
262
ndmp9_mover_mode_to_str(ndmp9_mover_mode val)263 char* ndmp9_mover_mode_to_str(ndmp9_mover_mode val)
264 {
265 return ndmp_enum_to_str((int)val, ndmp9_mover_mode_table);
266 }
267
ndmp9_mover_mode_from_str(ndmp9_mover_mode * valp,char * str)268 int ndmp9_mover_mode_from_str(ndmp9_mover_mode* valp, char* str)
269 {
270 return ndmp_enum_from_str((int*)valp, str, ndmp9_mover_mode_table);
271 }
272
273 /* clang-format off */
274 struct ndmp_enum_str_table ndmp9_mover_mode_table[] = {
275 { "NDMP9_MOVER_MODE_READ", NDMP9_MOVER_MODE_READ },
276 { "NDMP9_MOVER_MODE_WRITE", NDMP9_MOVER_MODE_WRITE },
277 { 0 }
278 };
279 /* clang-format on */
280
281 extern struct ndmp_enum_str_table ndmp9_data_operation_table[];
282 extern char* ndmp9_data_operation_to_str(ndmp9_data_operation val);
283 extern int ndmp9_data_operation_from_str(ndmp9_data_operation* valp, char* str);
284
ndmp9_data_operation_to_str(ndmp9_data_operation val)285 char* ndmp9_data_operation_to_str(ndmp9_data_operation val)
286 {
287 return ndmp_enum_to_str((int)val, ndmp9_data_operation_table);
288 }
289
ndmp9_data_operation_from_str(ndmp9_data_operation * valp,char * str)290 int ndmp9_data_operation_from_str(ndmp9_data_operation* valp, char* str)
291 {
292 return ndmp_enum_from_str((int*)valp, str, ndmp9_data_operation_table);
293 }
294
295 /* clang-format off */
296 struct ndmp_enum_str_table ndmp9_data_operation_table[] = {
297 { "NDMP9_DATA_OP_NOACTION", NDMP9_DATA_OP_NOACTION },
298 { "NDMP9_DATA_OP_BACKUP", NDMP9_DATA_OP_BACKUP },
299 { "NDMP9_DATA_OP_RECOVER", NDMP9_DATA_OP_RECOVER },
300 { "NDMP9_DATA_OP_RECOVER_FILEHIST", NDMP9_DATA_OP_RECOVER_FILEHIST },
301 { 0 }
302 };
303 /* clang-format on */
304
305 extern struct ndmp_enum_str_table ndmp9_data_state_table[];
306 extern char* ndmp9_data_state_to_str(ndmp9_data_state val);
307 extern int ndmp9_data_state_from_str(ndmp9_data_state* valp, char* str);
308
ndmp9_data_state_to_str(ndmp9_data_state val)309 char* ndmp9_data_state_to_str(ndmp9_data_state val)
310 {
311 return ndmp_enum_to_str((int)val, ndmp9_data_state_table);
312 }
313
ndmp9_data_state_from_str(ndmp9_data_state * valp,char * str)314 int ndmp9_data_state_from_str(ndmp9_data_state* valp, char* str)
315 {
316 return ndmp_enum_from_str((int*)valp, str, ndmp9_data_state_table);
317 }
318
319 /* clang-format off */
320 struct ndmp_enum_str_table ndmp9_data_state_table[] = {
321 { "NDMP9_DATA_STATE_IDLE", NDMP9_DATA_STATE_IDLE },
322 { "NDMP9_DATA_STATE_ACTIVE", NDMP9_DATA_STATE_ACTIVE },
323 { "NDMP9_DATA_STATE_HALTED", NDMP9_DATA_STATE_HALTED },
324 { 0 }
325 };
326 /* clang-format on */
327
328 extern struct ndmp_enum_str_table ndmp9_data_halt_reason_table[];
329 extern char* ndmp9_data_halt_reason_to_str(ndmp9_data_halt_reason val);
330 extern int ndmp9_data_halt_reason_from_str(ndmp9_data_halt_reason* valp,
331 char* str);
332
ndmp9_data_halt_reason_to_str(ndmp9_data_halt_reason val)333 char* ndmp9_data_halt_reason_to_str(ndmp9_data_halt_reason val)
334 {
335 return ndmp_enum_to_str((int)val, ndmp9_data_halt_reason_table);
336 }
337
ndmp9_data_halt_reason_from_str(ndmp9_data_halt_reason * valp,char * str)338 int ndmp9_data_halt_reason_from_str(ndmp9_data_halt_reason* valp, char* str)
339 {
340 return ndmp_enum_from_str((int*)valp, str, ndmp9_data_halt_reason_table);
341 }
342
343 /* clang-format off */
344 struct ndmp_enum_str_table ndmp9_data_halt_reason_table[] = {
345 { "NDMP9_DATA_HALT_NA", NDMP9_DATA_HALT_NA },
346 { "NDMP9_DATA_HALT_SUCCESSFUL", NDMP9_DATA_HALT_SUCCESSFUL },
347 { "NDMP9_DATA_HALT_ABORTED", NDMP9_DATA_HALT_ABORTED },
348 { "NDMP9_DATA_HALT_INTERNAL_ERROR", NDMP9_DATA_HALT_INTERNAL_ERROR },
349 { "NDMP9_DATA_HALT_CONNECT_ERROR", NDMP9_DATA_HALT_CONNECT_ERROR },
350 { 0 }
351 };
352 /* clang-format on */
353
354
355 extern struct ndmp_enum_str_table ndmp9_file_type_table[];
356 extern char* ndmp9_file_type_to_str(ndmp9_file_type val);
357 extern int ndmp9_file_type_from_str(ndmp9_file_type* valp, char* str);
358
ndmp9_file_type_to_str(ndmp9_file_type val)359 char* ndmp9_file_type_to_str(ndmp9_file_type val)
360 {
361 return ndmp_enum_to_str((int)val, ndmp9_file_type_table);
362 }
363
ndmp9_file_type_from_str(ndmp9_file_type * valp,char * str)364 int ndmp9_file_type_from_str(ndmp9_file_type* valp, char* str)
365 {
366 return ndmp_enum_from_str((int*)valp, str, ndmp9_file_type_table);
367 }
368
369 /* clang-format off */
370 struct ndmp_enum_str_table ndmp9_file_type_table[] = {
371 { "NDMP9_FILE_DIR", NDMP9_FILE_DIR },
372 { "NDMP9_FILE_FIFO", NDMP9_FILE_FIFO },
373 { "NDMP9_FILE_CSPEC", NDMP9_FILE_CSPEC },
374 { "NDMP9_FILE_BSPEC", NDMP9_FILE_BSPEC },
375 { "NDMP9_FILE_REG", NDMP9_FILE_REG },
376 { "NDMP9_FILE_SLINK", NDMP9_FILE_SLINK },
377 { "NDMP9_FILE_SOCK", NDMP9_FILE_SOCK },
378 { "NDMP9_FILE_REGISTRY", NDMP9_FILE_REGISTRY },
379 { "NDMP9_FILE_OTHER", NDMP9_FILE_OTHER },
380 { 0 }
381 };
382 /* clang-format on */
383