1 /*
2 * Copyright (c) 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 #ifndef NDMOS_OPTION_NO_NDMP3
43
44
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);
48
ndmp3_error_to_str(ndmp3_error val)49 char* ndmp3_error_to_str(ndmp3_error val)
50 {
51 return ndmp_enum_to_str((int)val, ndmp3_error_table);
52 }
53
ndmp3_error_from_str(ndmp3_error * valp,char * str)54 int ndmp3_error_from_str(ndmp3_error* valp, char* str)
55 {
56 return ndmp_enum_from_str((int*)valp, str, ndmp3_error_table);
57 }
58
59 /* clang-format off */
60 struct ndmp_enum_str_table ndmp3_error_table[] = {
61 { "NDMP3_NO_ERR", NDMP3_NO_ERR, },
62 { "NDMP3_NOT_SUPPORTED_ERR", NDMP3_NOT_SUPPORTED_ERR, },
63 { "NDMP3_DEVICE_BUSY_ERR", NDMP3_DEVICE_BUSY_ERR, },
64 { "NDMP3_DEVICE_OPENED_ERR", NDMP3_DEVICE_OPENED_ERR, },
65 { "NDMP3_NOT_AUTHORIZED_ERR", NDMP3_NOT_AUTHORIZED_ERR, },
66 { "NDMP3_PERMISSION_ERR", NDMP3_PERMISSION_ERR, },
67 { "NDMP3_DEV_NOT_OPEN_ERR", NDMP3_DEV_NOT_OPEN_ERR, },
68 { "NDMP3_IO_ERR", NDMP3_IO_ERR, },
69 { "NDMP3_TIMEOUT_ERR", NDMP3_TIMEOUT_ERR, },
70 { "NDMP3_ILLEGAL_ARGS_ERR", NDMP3_ILLEGAL_ARGS_ERR, },
71 { "NDMP3_NO_TAPE_LOADED_ERR", NDMP3_NO_TAPE_LOADED_ERR, },
72 { "NDMP3_WRITE_PROTECT_ERR", NDMP3_WRITE_PROTECT_ERR, },
73 { "NDMP3_EOF_ERR", NDMP3_EOF_ERR, },
74 { "NDMP3_EOM_ERR", NDMP3_EOM_ERR, },
75 { "NDMP3_FILE_NOT_FOUND_ERR", NDMP3_FILE_NOT_FOUND_ERR, },
76 { "NDMP3_BAD_FILE_ERR", NDMP3_BAD_FILE_ERR, },
77 { "NDMP3_NO_DEVICE_ERR", NDMP3_NO_DEVICE_ERR, },
78 { "NDMP3_NO_BUS_ERR", NDMP3_NO_BUS_ERR, },
79 { "NDMP3_XDR_DECODE_ERR", NDMP3_XDR_DECODE_ERR, },
80 { "NDMP3_ILLEGAL_STATE_ERR", NDMP3_ILLEGAL_STATE_ERR, },
81 { "NDMP3_UNDEFINED_ERR", NDMP3_UNDEFINED_ERR, },
82 { "NDMP3_XDR_ENCODE_ERR", NDMP3_XDR_ENCODE_ERR, },
83 { "NDMP3_NO_MEM_ERR", NDMP3_NO_MEM_ERR, },
84 { "NDMP3_CONNECT_ERR", NDMP3_CONNECT_ERR, },
85 { 0 }
86 };
87 /* clang-format on */
88
89
90 extern struct ndmp_enum_str_table ndmp3_header_message_type_table[];
91 extern char* ndmp3_header_message_type_to_str(ndmp3_header_message_type val);
92 extern int ndmp3_header_message_type_from_str(ndmp3_header_message_type* valp,
93 char* str);
94
ndmp3_header_message_type_to_str(ndmp3_header_message_type val)95 char* ndmp3_header_message_type_to_str(ndmp3_header_message_type val)
96 {
97 return ndmp_enum_to_str((int)val, ndmp3_header_message_type_table);
98 }
99
ndmp3_header_message_type_from_str(ndmp3_header_message_type * valp,char * str)100 int ndmp3_header_message_type_from_str(ndmp3_header_message_type* valp,
101 char* str)
102 {
103 return ndmp_enum_from_str((int*)valp, str, ndmp3_header_message_type_table);
104 }
105
106 /* clang-format off */
107 struct ndmp_enum_str_table ndmp3_header_message_type_table[] = {
108 { "NDMP3_MESSAGE_REQUEST", NDMP3_MESSAGE_REQUEST, },
109 { "NDMP3_MESSAGE_REPLY", NDMP3_MESSAGE_REPLY, },
110 { 0 }
111 };
112 /* clang-format on */
113
114
115 extern struct ndmp_enum_str_table ndmp3_message_table[];
116 extern char* ndmp3_message_to_str(ndmp3_message val);
117 extern int ndmp3_message_from_str(ndmp3_message* valp, char* str);
118
ndmp3_message_to_str(ndmp3_message val)119 char* ndmp3_message_to_str(ndmp3_message val)
120 {
121 return ndmp_enum_to_str((int)val, ndmp3_message_table);
122 }
123
ndmp3_message_from_str(ndmp3_message * valp,char * str)124 int ndmp3_message_from_str(ndmp3_message* valp, char* str)
125 {
126 return ndmp_enum_from_str((int*)valp, str, ndmp3_message_table);
127 }
128
129 /* clang-format off */
130 struct ndmp_enum_str_table ndmp3_message_table[] = {
131 { "NDMP3_CONNECT_OPEN", NDMP3_CONNECT_OPEN, },
132 { "NDMP3_CONNECT_CLIENT_AUTH", NDMP3_CONNECT_CLIENT_AUTH, },
133 { "NDMP3_CONNECT_CLOSE", NDMP3_CONNECT_CLOSE, },
134 { "NDMP3_CONNECT_SERVER_AUTH", NDMP3_CONNECT_SERVER_AUTH, },
135 { "NDMP3_CONFIG_GET_HOST_INFO", NDMP3_CONFIG_GET_HOST_INFO, },
136 { "NDMP3_CONFIG_GET_CONNECTION_TYPE",
137 NDMP3_CONFIG_GET_CONNECTION_TYPE, },
138 { "NDMP3_CONFIG_GET_AUTH_ATTR", NDMP3_CONFIG_GET_AUTH_ATTR, },
139 { "NDMP3_CONFIG_GET_BUTYPE_INFO", NDMP3_CONFIG_GET_BUTYPE_INFO, },
140 { "NDMP3_CONFIG_GET_FS_INFO", NDMP3_CONFIG_GET_FS_INFO, },
141 { "NDMP3_CONFIG_GET_TAPE_INFO", NDMP3_CONFIG_GET_TAPE_INFO, },
142 { "NDMP3_CONFIG_GET_SCSI_INFO", NDMP3_CONFIG_GET_SCSI_INFO, },
143 { "NDMP3_CONFIG_GET_SERVER_INFO",NDMP3_CONFIG_GET_SERVER_INFO, },
144 { "NDMP3_SCSI_OPEN", NDMP3_SCSI_OPEN, },
145 { "NDMP3_SCSI_CLOSE", NDMP3_SCSI_CLOSE, },
146 { "NDMP3_SCSI_GET_STATE", NDMP3_SCSI_GET_STATE, },
147 { "NDMP3_SCSI_SET_TARGET", NDMP3_SCSI_SET_TARGET, },
148 { "NDMP3_SCSI_RESET_DEVICE", NDMP3_SCSI_RESET_DEVICE, },
149 { "NDMP3_SCSI_RESET_BUS", NDMP3_SCSI_RESET_BUS, },
150 { "NDMP3_SCSI_EXECUTE_CDB", NDMP3_SCSI_EXECUTE_CDB, },
151 { "NDMP3_TAPE_OPEN", NDMP3_TAPE_OPEN, },
152 { "NDMP3_TAPE_CLOSE", NDMP3_TAPE_CLOSE, },
153 { "NDMP3_TAPE_GET_STATE", NDMP3_TAPE_GET_STATE, },
154 { "NDMP3_TAPE_MTIO", NDMP3_TAPE_MTIO, },
155 { "NDMP3_TAPE_WRITE", NDMP3_TAPE_WRITE, },
156 { "NDMP3_TAPE_READ", NDMP3_TAPE_READ, },
157 { "NDMP3_TAPE_EXECUTE_CDB", NDMP3_TAPE_EXECUTE_CDB, },
158 { "NDMP3_DATA_GET_STATE", NDMP3_DATA_GET_STATE, },
159 { "NDMP3_DATA_START_BACKUP", NDMP3_DATA_START_BACKUP, },
160 { "NDMP3_DATA_START_RECOVER", NDMP3_DATA_START_RECOVER, },
161 { "NDMP3_DATA_START_RECOVER_FILEHIST",
162 NDMP3_DATA_START_RECOVER_FILEHIST, },
163 { "NDMP3_DATA_ABORT", NDMP3_DATA_ABORT, },
164 { "NDMP3_DATA_GET_ENV", NDMP3_DATA_GET_ENV, },
165 { "NDMP3_DATA_STOP", NDMP3_DATA_STOP, },
166 { "NDMP3_DATA_LISTEN", NDMP3_DATA_LISTEN, },
167 { "NDMP3_DATA_CONNECT", NDMP3_DATA_CONNECT, },
168 { "NDMP3_NOTIFY_DATA_HALTED", NDMP3_NOTIFY_DATA_HALTED, },
169 { "NDMP3_NOTIFY_CONNECTED", NDMP3_NOTIFY_CONNECTED, },
170 { "NDMP3_NOTIFY_MOVER_HALTED", NDMP3_NOTIFY_MOVER_HALTED, },
171 { "NDMP3_NOTIFY_MOVER_PAUSED", NDMP3_NOTIFY_MOVER_PAUSED, },
172 { "NDMP3_NOTIFY_DATA_READ", NDMP3_NOTIFY_DATA_READ, },
173 { "NDMP3_LOG_FILE", NDMP3_LOG_FILE, },
174 { "NDMP3_LOG_MESSAGE", NDMP3_LOG_MESSAGE, },
175 { "NDMP3_FH_ADD_FILE", NDMP3_FH_ADD_FILE, },
176 { "NDMP3_FH_ADD_DIR", NDMP3_FH_ADD_DIR, },
177 { "NDMP3_FH_ADD_NODE", NDMP3_FH_ADD_NODE, },
178 { "NDMP3_MOVER_GET_STATE", NDMP3_MOVER_GET_STATE, },
179 { "NDMP3_MOVER_LISTEN", NDMP3_MOVER_LISTEN, },
180 { "NDMP3_MOVER_CONTINUE", NDMP3_MOVER_CONTINUE, },
181 { "NDMP3_MOVER_ABORT", NDMP3_MOVER_ABORT, },
182 { "NDMP3_MOVER_STOP", NDMP3_MOVER_STOP, },
183 { "NDMP3_MOVER_SET_WINDOW", NDMP3_MOVER_SET_WINDOW, },
184 { "NDMP3_MOVER_READ", NDMP3_MOVER_READ, },
185 { "NDMP3_MOVER_CLOSE", NDMP3_MOVER_CLOSE, },
186 { "NDMP3_MOVER_SET_RECORD_SIZE", NDMP3_MOVER_SET_RECORD_SIZE, },
187 { "NDMP3_MOVER_CONNECT", NDMP3_MOVER_CONNECT, },
188 { "NDMP3_VENDORS_BASE", NDMP3_VENDORS_BASE, },
189 { "NDMP3_RESERVED_BASE", NDMP3_RESERVED_BASE, },
190 { 0 }
191 };
192 /* clang-format on */
193
194
195 extern struct ndmp_enum_str_table ndmp3_auth_type_table[];
196 extern char* ndmp3_auth_type_to_str(ndmp3_auth_type val);
197 extern int ndmp3_auth_type_from_str(ndmp3_auth_type* valp, char* str);
198
ndmp3_auth_type_to_str(ndmp3_auth_type val)199 char* ndmp3_auth_type_to_str(ndmp3_auth_type val)
200 {
201 return ndmp_enum_to_str((int)val, ndmp3_auth_type_table);
202 }
203
ndmp3_auth_type_from_str(ndmp3_auth_type * valp,char * str)204 int ndmp3_auth_type_from_str(ndmp3_auth_type* valp, char* str)
205 {
206 return ndmp_enum_from_str((int*)valp, str, ndmp3_auth_type_table);
207 }
208
209 /* clang-format off */
210 struct ndmp_enum_str_table ndmp3_auth_type_table[] = {
211 { "NDMP3_AUTH_NONE", NDMP3_AUTH_NONE, },
212 { "NDMP3_AUTH_TEXT", NDMP3_AUTH_TEXT, },
213 { "NDMP3_AUTH_MD5", NDMP3_AUTH_MD5, },
214 { 0 }
215 };
216 /* clang-format on */
217
218
219 extern struct ndmp_enum_str_table ndmp3_addr_type_table[];
220 extern char* ndmp3_addr_type_to_str(ndmp3_addr_type val);
221 extern int ndmp3_addr_type_from_str(ndmp3_addr_type* valp, char* str);
222
ndmp3_addr_type_to_str(ndmp3_addr_type val)223 char* ndmp3_addr_type_to_str(ndmp3_addr_type val)
224 {
225 return ndmp_enum_to_str((int)val, ndmp3_addr_type_table);
226 }
227
ndmp3_addr_type_from_str(ndmp3_addr_type * valp,char * str)228 int ndmp3_addr_type_from_str(ndmp3_addr_type* valp, char* str)
229 {
230 return ndmp_enum_from_str((int*)valp, str, ndmp3_addr_type_table);
231 }
232
233 /* clang-format off */
234 struct ndmp_enum_str_table ndmp3_addr_type_table[] = {
235 { "NDMP3_ADDR_LOCAL", NDMP3_ADDR_LOCAL, },
236 { "NDMP3_ADDR_TCP", NDMP3_ADDR_TCP, },
237 { "NDMP3_ADDR_FC", NDMP3_ADDR_FC, },
238 { "NDMP3_ADDR_IPC", NDMP3_ADDR_IPC, },
239 { 0 }
240 };
241 /* clang-format on */
242
243
244 extern struct ndmp_enum_str_table ndmp3_tape_open_mode_table[];
245 extern char* ndmp3_tape_open_mode_to_str(ndmp3_tape_open_mode val);
246 extern int ndmp3_tape_open_mode_from_str(ndmp3_tape_open_mode* valp, char* str);
247
ndmp3_tape_open_mode_to_str(ndmp3_tape_open_mode val)248 char* ndmp3_tape_open_mode_to_str(ndmp3_tape_open_mode val)
249 {
250 return ndmp_enum_to_str((int)val, ndmp3_tape_open_mode_table);
251 }
252
ndmp3_tape_open_mode_from_str(ndmp3_tape_open_mode * valp,char * str)253 int ndmp3_tape_open_mode_from_str(ndmp3_tape_open_mode* valp, char* str)
254 {
255 return ndmp_enum_from_str((int*)valp, str, ndmp3_tape_open_mode_table);
256 }
257
258 /* clang-format off */
259 struct ndmp_enum_str_table ndmp3_tape_open_mode_table[] = {
260 { "NDMP3_TAPE_READ_MODE", NDMP3_TAPE_READ_MODE, },
261 { "NDMP3_TAPE_RDWR_MODE", NDMP3_TAPE_RDWR_MODE, },
262 { 0 }
263 };
264 /* clang-format on */
265
266
267 extern struct ndmp_enum_str_table ndmp3_tape_mtio_op_table[];
268 extern char* ndmp3_tape_mtio_op_to_str(ndmp3_tape_mtio_op val);
269 extern int ndmp3_tape_mtio_op_from_str(ndmp3_tape_mtio_op* valp, char* str);
270
ndmp3_tape_mtio_op_to_str(ndmp3_tape_mtio_op val)271 char* ndmp3_tape_mtio_op_to_str(ndmp3_tape_mtio_op val)
272 {
273 return ndmp_enum_to_str((int)val, ndmp3_tape_mtio_op_table);
274 }
275
ndmp3_tape_mtio_op_from_str(ndmp3_tape_mtio_op * valp,char * str)276 int ndmp3_tape_mtio_op_from_str(ndmp3_tape_mtio_op* valp, char* str)
277 {
278 return ndmp_enum_from_str((int*)valp, str, ndmp3_tape_mtio_op_table);
279 }
280
281 /* clang-format off */
282 struct ndmp_enum_str_table ndmp3_tape_mtio_op_table[] = {
283 { "NDMP3_MTIO_FSF", NDMP3_MTIO_FSF, },
284 { "NDMP3_MTIO_BSF", NDMP3_MTIO_BSF, },
285 { "NDMP3_MTIO_FSR", NDMP3_MTIO_FSR, },
286 { "NDMP3_MTIO_BSR", NDMP3_MTIO_BSR, },
287 { "NDMP3_MTIO_REW", NDMP3_MTIO_REW, },
288 { "NDMP3_MTIO_EOF", NDMP3_MTIO_EOF, },
289 { "NDMP3_MTIO_OFF", NDMP3_MTIO_OFF, },
290 { 0 }
291 };
292 /* clang-format on */
293
294
295 extern struct ndmp_enum_str_table ndmp3_mover_state_table[];
296 extern char* ndmp3_mover_state_to_str(ndmp3_mover_state val);
297 extern int ndmp3_mover_state_from_str(ndmp3_mover_state* valp, char* str);
298
ndmp3_mover_state_to_str(ndmp3_mover_state val)299 char* ndmp3_mover_state_to_str(ndmp3_mover_state val)
300 {
301 return ndmp_enum_to_str((int)val, ndmp3_mover_state_table);
302 }
303
ndmp3_mover_state_from_str(ndmp3_mover_state * valp,char * str)304 int ndmp3_mover_state_from_str(ndmp3_mover_state* valp, char* str)
305 {
306 return ndmp_enum_from_str((int*)valp, str, ndmp3_mover_state_table);
307 }
308
309 /* clang-format off */
310 struct ndmp_enum_str_table ndmp3_mover_state_table[] = {
311 { "NDMP3_MOVER_STATE_IDLE", NDMP3_MOVER_STATE_IDLE, },
312 { "NDMP3_MOVER_STATE_LISTEN", NDMP3_MOVER_STATE_LISTEN, },
313 { "NDMP3_MOVER_STATE_ACTIVE", NDMP3_MOVER_STATE_ACTIVE, },
314 { "NDMP3_MOVER_STATE_PAUSED", NDMP3_MOVER_STATE_PAUSED, },
315 { "NDMP3_MOVER_STATE_HALTED", NDMP3_MOVER_STATE_HALTED, },
316 { 0 }
317 };
318 /* clang-format on */
319
320
321 extern struct ndmp_enum_str_table ndmp3_mover_pause_reason_table[];
322 extern char* ndmp3_mover_pause_reason_to_str(ndmp3_mover_pause_reason val);
323 extern int ndmp3_mover_pause_reason_from_str(ndmp3_mover_pause_reason* valp,
324 char* str);
325
ndmp3_mover_pause_reason_to_str(ndmp3_mover_pause_reason val)326 char* ndmp3_mover_pause_reason_to_str(ndmp3_mover_pause_reason val)
327 {
328 return ndmp_enum_to_str((int)val, ndmp3_mover_pause_reason_table);
329 }
330
ndmp3_mover_pause_reason_from_str(ndmp3_mover_pause_reason * valp,char * str)331 int ndmp3_mover_pause_reason_from_str(ndmp3_mover_pause_reason* valp, char* str)
332 {
333 return ndmp_enum_from_str((int*)valp, str, ndmp3_mover_pause_reason_table);
334 }
335
336 /* clang-format off */
337 struct ndmp_enum_str_table ndmp3_mover_pause_reason_table[] = {
338 { "NDMP3_MOVER_PAUSE_NA", NDMP3_MOVER_PAUSE_NA, },
339 { "NDMP3_MOVER_PAUSE_EOM", NDMP3_MOVER_PAUSE_EOM, },
340 { "NDMP3_MOVER_PAUSE_EOF", NDMP3_MOVER_PAUSE_EOF, },
341 { "NDMP3_MOVER_PAUSE_SEEK", NDMP3_MOVER_PAUSE_SEEK, },
342 { "NDMP3_MOVER_PAUSE_MEDIA_ERROR", NDMP3_MOVER_PAUSE_MEDIA_ERROR, },
343 { "NDMP3_MOVER_PAUSE_EOW", NDMP3_MOVER_PAUSE_EOW, },
344 { 0 }
345 };
346 /* clang-format on */
347
348
349 extern struct ndmp_enum_str_table ndmp3_mover_halt_reason_table[];
350 extern char* ndmp3_mover_halt_reason_to_str(ndmp3_mover_halt_reason val);
351 extern int ndmp3_mover_halt_reason_from_str(ndmp3_mover_halt_reason* valp,
352 char* str);
353
ndmp3_mover_halt_reason_to_str(ndmp3_mover_halt_reason val)354 char* ndmp3_mover_halt_reason_to_str(ndmp3_mover_halt_reason val)
355 {
356 return ndmp_enum_to_str((int)val, ndmp3_mover_halt_reason_table);
357 }
358
ndmp3_mover_halt_reason_from_str(ndmp3_mover_halt_reason * valp,char * str)359 int ndmp3_mover_halt_reason_from_str(ndmp3_mover_halt_reason* valp, char* str)
360 {
361 return ndmp_enum_from_str((int*)valp, str, ndmp3_mover_halt_reason_table);
362 }
363
364 /* clang-format off */
365 struct ndmp_enum_str_table ndmp3_mover_halt_reason_table[] = {
366 { "NDMP3_MOVER_HALT_NA", NDMP3_MOVER_HALT_NA, },
367 { "NDMP3_MOVER_HALT_CONNECT_CLOSED",
368 NDMP3_MOVER_HALT_CONNECT_CLOSED, },
369 { "NDMP3_MOVER_HALT_ABORTED", NDMP3_MOVER_HALT_ABORTED, },
370 { "NDMP3_MOVER_HALT_INTERNAL_ERROR",
371 NDMP3_MOVER_HALT_INTERNAL_ERROR, },
372 { "NDMP3_MOVER_HALT_CONNECT_ERROR",
373 NDMP3_MOVER_HALT_CONNECT_ERROR, },
374 { 0 }
375 };
376 /* clang-format on */
377
378
379 extern struct ndmp_enum_str_table ndmp3_mover_mode_table[];
380 extern char* ndmp3_mover_mode_to_str(ndmp3_mover_mode val);
381 extern int ndmp3_mover_mode_from_str(ndmp3_mover_mode* valp, char* str);
382
ndmp3_mover_mode_to_str(ndmp3_mover_mode val)383 char* ndmp3_mover_mode_to_str(ndmp3_mover_mode val)
384 {
385 return ndmp_enum_to_str((int)val, ndmp3_mover_mode_table);
386 }
387
ndmp3_mover_mode_from_str(ndmp3_mover_mode * valp,char * str)388 int ndmp3_mover_mode_from_str(ndmp3_mover_mode* valp, char* str)
389 {
390 return ndmp_enum_from_str((int*)valp, str, ndmp3_mover_mode_table);
391 }
392
393 /* clang-format off */
394 struct ndmp_enum_str_table ndmp3_mover_mode_table[] = {
395 { "NDMP3_MOVER_MODE_READ", NDMP3_MOVER_MODE_READ, },
396 { "NDMP3_MOVER_MODE_WRITE", NDMP3_MOVER_MODE_WRITE, },
397 { 0 }
398 };
399 /* clang-format on */
400
401
402 extern struct ndmp_enum_str_table ndmp3_data_operation_table[];
403 extern char* ndmp3_data_operation_to_str(ndmp3_data_operation val);
404 extern int ndmp3_data_operation_from_str(ndmp3_data_operation* valp, char* str);
405
ndmp3_data_operation_to_str(ndmp3_data_operation val)406 char* ndmp3_data_operation_to_str(ndmp3_data_operation val)
407 {
408 return ndmp_enum_to_str((int)val, ndmp3_data_operation_table);
409 }
410
ndmp3_data_operation_from_str(ndmp3_data_operation * valp,char * str)411 int ndmp3_data_operation_from_str(ndmp3_data_operation* valp, char* str)
412 {
413 return ndmp_enum_from_str((int*)valp, str, ndmp3_data_operation_table);
414 }
415
416 /* clang-format off */
417 struct ndmp_enum_str_table ndmp3_data_operation_table[] = {
418 { "NDMP3_DATA_OP_NOACTION", NDMP3_DATA_OP_NOACTION, },
419 { "NDMP3_DATA_OP_BACKUP", NDMP3_DATA_OP_BACKUP, },
420 { "NDMP3_DATA_OP_RESTORE", NDMP3_DATA_OP_RESTORE, },
421 { "NDMP3_DATA_OP_RESTORE_FILEHIST",
422 NDMP3_DATA_OP_RESTORE_FILEHIST, },
423 { 0 }
424 };
425 /* clang-format on */
426
427
428 extern struct ndmp_enum_str_table ndmp3_data_state_table[];
429 extern char* ndmp3_data_state_to_str(ndmp3_data_state val);
430 extern int ndmp3_data_state_from_str(ndmp3_data_state* valp, char* str);
431
ndmp3_data_state_to_str(ndmp3_data_state val)432 char* ndmp3_data_state_to_str(ndmp3_data_state val)
433 {
434 return ndmp_enum_to_str((int)val, ndmp3_data_state_table);
435 }
436
ndmp3_data_state_from_str(ndmp3_data_state * valp,char * str)437 int ndmp3_data_state_from_str(ndmp3_data_state* valp, char* str)
438 {
439 return ndmp_enum_from_str((int*)valp, str, ndmp3_data_state_table);
440 }
441
442 /* clang-format off */
443 struct ndmp_enum_str_table ndmp3_data_state_table[] = {
444 { "NDMP3_DATA_STATE_IDLE", NDMP3_DATA_STATE_IDLE, },
445 { "NDMP3_DATA_STATE_ACTIVE", NDMP3_DATA_STATE_ACTIVE, },
446 { "NDMP3_DATA_STATE_HALTED", NDMP3_DATA_STATE_HALTED, },
447 { "NDMP3_DATA_STATE_LISTEN", NDMP3_DATA_STATE_LISTEN, },
448 { "NDMP3_DATA_STATE_CONNECTED", NDMP3_DATA_STATE_CONNECTED, },
449 { 0 }
450 };
451 /* clang-format on */
452
453
454 extern struct ndmp_enum_str_table ndmp3_data_halt_reason_table[];
455 extern char* ndmp3_data_halt_reason_to_str(ndmp3_data_halt_reason val);
456 extern int ndmp3_data_halt_reason_from_str(ndmp3_data_halt_reason* valp,
457 char* str);
458
ndmp3_data_halt_reason_to_str(ndmp3_data_halt_reason val)459 char* ndmp3_data_halt_reason_to_str(ndmp3_data_halt_reason val)
460 {
461 return ndmp_enum_to_str((int)val, ndmp3_data_halt_reason_table);
462 }
463
ndmp3_data_halt_reason_from_str(ndmp3_data_halt_reason * valp,char * str)464 int ndmp3_data_halt_reason_from_str(ndmp3_data_halt_reason* valp, char* str)
465 {
466 return ndmp_enum_from_str((int*)valp, str, ndmp3_data_halt_reason_table);
467 }
468
469 /* clang-format off */
470 struct ndmp_enum_str_table ndmp3_data_halt_reason_table[] = {
471 { "NDMP3_DATA_HALT_NA", NDMP3_DATA_HALT_NA, },
472 { "NDMP3_DATA_HALT_SUCCESSFUL", NDMP3_DATA_HALT_SUCCESSFUL, },
473 { "NDMP3_DATA_HALT_ABORTED", NDMP3_DATA_HALT_ABORTED, },
474 { "NDMP3_DATA_HALT_INTERNAL_ERROR", NDMP3_DATA_HALT_INTERNAL_ERROR, },
475 { "NDMP3_DATA_HALT_CONNECT_ERROR", NDMP3_DATA_HALT_CONNECT_ERROR, },
476 { 0 }
477 };
478 /* clang-format on */
479
480
481 extern struct ndmp_enum_str_table ndmp3_connect_reason_table[];
482 extern char* ndmp3_connect_reason_to_str(ndmp3_connect_reason val);
483 extern int ndmp3_connect_reason_from_str(ndmp3_connect_reason* valp, char* str);
484
ndmp3_connect_reason_to_str(ndmp3_connect_reason val)485 char* ndmp3_connect_reason_to_str(ndmp3_connect_reason val)
486 {
487 return ndmp_enum_to_str((int)val, ndmp3_connect_reason_table);
488 }
489
ndmp3_connect_reason_from_str(ndmp3_connect_reason * valp,char * str)490 int ndmp3_connect_reason_from_str(ndmp3_connect_reason* valp, char* str)
491 {
492 return ndmp_enum_from_str((int*)valp, str, ndmp3_connect_reason_table);
493 }
494
495 /* clang-format off */
496 struct ndmp_enum_str_table ndmp3_connect_reason_table[] = {
497 { "NDMP3_CONNECTED", NDMP3_CONNECTED, },
498 { "NDMP3_SHUTDOWN", NDMP3_SHUTDOWN, },
499 { "NDMP3_REFUSED", NDMP3_REFUSED, },
500 { 0 }
501 };
502 /* clang-format on */
503
504
505 extern struct ndmp_enum_str_table ndmp3_log_type_table[];
506 extern char* ndmp3_log_type_to_str(ndmp3_log_type val);
507 extern int ndmp3_log_type_from_str(ndmp3_log_type* valp, char* str);
508
ndmp3_log_type_to_str(ndmp3_log_type val)509 char* ndmp3_log_type_to_str(ndmp3_log_type val)
510 {
511 return ndmp_enum_to_str((int)val, ndmp3_log_type_table);
512 }
513
ndmp3_log_type_from_str(ndmp3_log_type * valp,char * str)514 int ndmp3_log_type_from_str(ndmp3_log_type* valp, char* str)
515 {
516 return ndmp_enum_from_str((int*)valp, str, ndmp3_log_type_table);
517 }
518
519 /* clang-format off */
520 struct ndmp_enum_str_table ndmp3_log_type_table[] = {
521 { "NDMP3_LOG_NORMAL", NDMP3_LOG_NORMAL, },
522 { "NDMP3_LOG_DEBUG", NDMP3_LOG_DEBUG, },
523 { "NDMP3_LOG_ERROR", NDMP3_LOG_ERROR, },
524 { "NDMP3_LOG_WARNING", NDMP3_LOG_WARNING, },
525 { 0 }
526 };
527 /* clang-format on */
528
529
530 extern struct ndmp_enum_str_table ndmp3_fs_type_table[];
531 extern char* ndmp3_fs_type_to_str(ndmp3_fs_type val);
532 extern int ndmp3_fs_type_from_str(ndmp3_fs_type* valp, char* str);
533
ndmp3_fs_type_to_str(ndmp3_fs_type val)534 char* ndmp3_fs_type_to_str(ndmp3_fs_type val)
535 {
536 return ndmp_enum_to_str((int)val, ndmp3_fs_type_table);
537 }
538
ndmp3_fs_type_from_str(ndmp3_fs_type * valp,char * str)539 int ndmp3_fs_type_from_str(ndmp3_fs_type* valp, char* str)
540 {
541 return ndmp_enum_from_str((int*)valp, str, ndmp3_fs_type_table);
542 }
543
544 /* clang-format off */
545 struct ndmp_enum_str_table ndmp3_fs_type_table[] = {
546 { "NDMP3_FS_UNIX", NDMP3_FS_UNIX, },
547 { "NDMP3_FS_NT", NDMP3_FS_NT, },
548 { "NDMP3_FS_OTHER", NDMP3_FS_OTHER, },
549 { 0 }
550 };
551 /* clang-format on */
552
553
554 extern struct ndmp_enum_str_table ndmp3_file_type_table[];
555 extern char* ndmp3_file_type_to_str(ndmp3_file_type val);
556 extern int ndmp3_file_type_from_str(ndmp3_file_type* valp, char* str);
557
ndmp3_file_type_to_str(ndmp3_file_type val)558 char* ndmp3_file_type_to_str(ndmp3_file_type val)
559 {
560 return ndmp_enum_to_str((int)val, ndmp3_file_type_table);
561 }
562
ndmp3_file_type_from_str(ndmp3_file_type * valp,char * str)563 int ndmp3_file_type_from_str(ndmp3_file_type* valp, char* str)
564 {
565 return ndmp_enum_from_str((int*)valp, str, ndmp3_file_type_table);
566 }
567
568 /* clang-format off */
569 struct ndmp_enum_str_table ndmp3_file_type_table[] = {
570 { "NDMP3_FILE_DIR", NDMP3_FILE_DIR, },
571 { "NDMP3_FILE_FIFO", NDMP3_FILE_FIFO, },
572 { "NDMP3_FILE_CSPEC", NDMP3_FILE_CSPEC, },
573 { "NDMP3_FILE_BSPEC", NDMP3_FILE_BSPEC, },
574 { "NDMP3_FILE_REG", NDMP3_FILE_REG, },
575 { "NDMP3_FILE_SLINK", NDMP3_FILE_SLINK, },
576 { "NDMP3_FILE_SOCK", NDMP3_FILE_SOCK, },
577 { "NDMP3_FILE_REGISTRY", NDMP3_FILE_REGISTRY, },
578 { "NDMP3_FILE_OTHER", NDMP3_FILE_OTHER, },
579 { 0 }
580 };
581 /* clang-format on */
582
583 #endif /* !NDMOS_OPTION_NO_NDMP3 */
584