2 * Copyright (c) 2000,2001
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
42 * Description : NDMP protocol rpcgen file.
44 * Copyright (c) 1999 Intelliguard Software, Network Appliance.
45 * All Rights Reserved.
47 * $Id: ndmp.x,v 1.11 1998/05/26 03:52:12 tim Exp $
50 %#ifndef NDMOS_OPTION_NO_NDMP4
53 const NDMP4PORT = 10000;
55 %#define ndmp4_u_quad unsigned long long
56 %extern bool_t xdr_ndmp4_u_quad();
66 enum ndmp4_header_message_type
68 NDMP4_MESSAGE_REQUEST,
72 const NDMP4_MESSAGE_POST = NDMP4_MESSAGE_REQUEST;
75 /* Note: because of extensibility, this is */
76 /* Not a complete list of errors. */
80 NDMP4_NOT_SUPPORTED_ERR = 1,
81 NDMP4_DEVICE_BUSY_ERR = 2,
82 NDMP4_DEVICE_OPENED_ERR = 3,
83 NDMP4_NOT_AUTHORIZED_ERR = 4,
84 NDMP4_PERMISSION_ERR = 5,
85 NDMP4_DEV_NOT_OPEN_ERR = 6,
87 NDMP4_TIMEOUT_ERR = 8,
88 NDMP4_ILLEGAL_ARGS_ERR = 9,
89 NDMP4_NO_TAPE_LOADED_ERR = 10,
90 NDMP4_WRITE_PROTECT_ERR = 11,
93 NDMP4_FILE_NOT_FOUND_ERR = 14,
94 NDMP4_BAD_FILE_ERR = 15,
95 NDMP4_NO_DEVICE_ERR = 16,
96 NDMP4_NO_BUS_ERR = 17,
97 NDMP4_XDR_DECODE_ERR = 18,
98 NDMP4_ILLEGAL_STATE_ERR = 19,
99 NDMP4_UNDEFINED_ERR = 20,
100 NDMP4_XDR_ENCODE_ERR = 21,
101 NDMP4_NO_MEM_ERR = 22,
102 NDMP4_CONNECT_ERR = 23,
103 NDMP4_SEQUENCE_NUM_ERR = 24,
104 NDMP4_READ_IN_PROGRESS_ERR = 25,
105 NDMP4_PRECONDITION_ERR = 26,
106 NDMP4_CLASS_NOT_SUPPORTED = 27,
107 NDMP4_VERSION_NOT_SUPPORTED = 28,
108 NDMP4_EXT_DUPL_CLASSES = 29,
109 NDMP4_EXT_DN_ILLEGAL = 30
114 /* Note: Because of extensibility, this */
115 /* is not a complete list of messages */
119 /* CONNECT INTERFACE */
120 NDMP4_CONNECT_OPEN = 0x900,
121 NDMP4_CONNECT_CLIENT_AUTH = 0x901,
122 NDMP4_CONNECT_CLOSE = 0x902,
123 NDMP4_CONNECT_SERVER_AUTH = 0x903,
125 /* CONFIG INTERFACE */
126 NDMP4_CONFIG_GET_HOST_INFO = 0x100,
127 NDMP4_CONFIG_GET_CONNECTION_TYPE = 0x102,
128 NDMP4_CONFIG_GET_AUTH_ATTR = 0x103,
129 NDMP4_CONFIG_GET_BUTYPE_INFO = 0x104,
130 NDMP4_CONFIG_GET_FS_INFO = 0x105,
131 NDMP4_CONFIG_GET_TAPE_INFO = 0x106,
132 NDMP4_CONFIG_GET_SCSI_INFO = 0x107,
133 NDMP4_CONFIG_GET_SERVER_INFO = 0x108,
134 NDMP4_CONFIG_SET_EXT_LIST = 0x109,
135 NDMP4_CONFIG_GET_EXT_LIST = 0x10A,
138 NDMP4_SCSI_OPEN = 0x200,
139 NDMP4_SCSI_CLOSE = 0x201,
140 NDMP4_SCSI_GET_STATE = 0x202,
141 NDMP4_SCSI_RESET_DEVICE = 0x204,
142 NDMP4_SCSI_EXECUTE_CDB = 0x206,
145 NDMP4_TAPE_OPEN = 0x300,
146 NDMP4_TAPE_CLOSE = 0x301,
147 NDMP4_TAPE_GET_STATE = 0x302,
148 NDMP4_TAPE_MTIO = 0x303,
149 NDMP4_TAPE_WRITE = 0x304,
150 NDMP4_TAPE_READ = 0x305,
151 NDMP4_TAPE_EXECUTE_CDB = 0x307,
154 NDMP4_DATA_GET_STATE = 0x400,
155 NDMP4_DATA_START_BACKUP = 0x401,
156 NDMP4_DATA_START_RECOVER = 0x402,
157 NDMP4_DATA_ABORT = 0x403,
158 NDMP4_DATA_GET_ENV = 0x404,
159 NDMP4_DATA_STOP = 0x407,
160 NDMP4_DATA_LISTEN = 0x409,
161 NDMP4_DATA_CONNECT = 0x40A,
162 NDMP4_DATA_START_RECOVER_FILEHIST = 0x40B,
164 /* NOTIFY INTERFACE */
165 NDMP4_NOTIFY_DATA_HALTED = 0x501,
166 NDMP4_NOTIFY_CONNECTION_STATUS = 0x502,
167 NDMP4_NOTIFY_MOVER_HALTED = 0x503,
168 NDMP4_NOTIFY_MOVER_PAUSED = 0x504,
169 NDMP4_NOTIFY_DATA_READ = 0x505,
171 /* LOGGING INTERFACE */
172 NDMP4_LOG_FILE = 0x602,
173 NDMP4_LOG_MESSAGE = 0x603,
175 /* FILE HISTORY INTERFACE */
176 NDMP4_FH_ADD_FILE = 0x703,
177 NDMP4_FH_ADD_DIR = 0x704,
178 NDMP4_FH_ADD_NODE = 0x705,
180 /* MOVER INTERFACE */
181 NDMP4_MOVER_GET_STATE = 0xA00,
182 NDMP4_MOVER_LISTEN = 0xA01,
183 NDMP4_MOVER_CONTINUE = 0xA02,
184 NDMP4_MOVER_ABORT = 0xA03,
185 NDMP4_MOVER_STOP = 0xA04,
186 NDMP4_MOVER_SET_WINDOW = 0xA05,
187 NDMP4_MOVER_READ = 0xA06,
188 NDMP4_MOVER_CLOSE = 0xA07,
189 NDMP4_MOVER_SET_RECORD_SIZE = 0xA08,
190 NDMP4_MOVER_CONNECT = 0xA09,
194 /* Reserved for Standard extensions */
195 NDMP4_EXT_STANDARD_BASE = 0x10000,
197 /* Reserved for Proprietary extensions */
198 NDMP4_EXT_PROPRIETARY_BASE = 0x20000000
206 ndmp4_header_message_type message_type;
207 ndmp4_message message_code;
208 u_long reply_sequence;
209 ndmp4_error error_code;
219 /* Connect messages */
220 struct ndmp4_connect_open_request
222 u_short protocol_version;
225 struct ndmp4_connect_open_reply
238 struct ndmp4_auth_text
241 string auth_password<>;
244 struct ndmp4_auth_md5
247 opaque auth_digest[16];
250 union ndmp4_auth_data switch (enum ndmp4_auth_type auth_type)
252 case NDMP4_AUTH_NONE:
254 case NDMP4_AUTH_TEXT:
255 struct ndmp4_auth_text auth_text;
257 struct ndmp4_auth_md5 auth_md5;
260 union ndmp4_auth_attr switch (enum ndmp4_auth_type auth_type)
262 case NDMP4_AUTH_NONE:
264 case NDMP4_AUTH_TEXT:
267 opaque challenge[64];
271 struct ndmp4_connect_client_auth_request
273 ndmp4_auth_data auth_data;
276 struct ndmp4_connect_client_auth_reply
282 struct ndmp4_connect_server_auth_request
284 ndmp4_auth_attr client_attr;
287 struct ndmp4_connect_server_auth_reply
290 ndmp4_auth_data server_result;
294 struct ndmp4_config_get_host_info_reply
304 struct ndmp4_config_get_server_info_reply
307 string vendor_name<>;
308 string product_name<>;
309 string revision_number<>;
310 ndmp4_auth_type auth_type<>;
318 NDMP4_ADDR_RESERVED=2,
322 struct ndmp4_config_get_connection_type_reply
325 ndmp4_addr_type addr_types<>;
329 struct ndmp4_config_get_auth_attr_request
331 ndmp4_auth_type auth_type;
336 struct ndmp4_config_get_auth_attr_reply
339 ndmp4_auth_attr server_attr;
343 const NDMP4_BUTYPE_BACKUP_FILELIST = 0x0002;
344 const NDMP4_BUTYPE_RECOVER_FILELIST = 0x0004;
345 const NDMP4_BUTYPE_BACKUP_DIRECT = 0x0008;
346 const NDMP4_BUTYPE_RECOVER_DIRECT = 0x0010;
347 const NDMP4_BUTYPE_BACKUP_INCREMENTAL = 0x0020;
348 const NDMP4_BUTYPE_RECOVER_INCREMENTAL = 0x0040;
349 const NDMP4_BUTYPE_BACKUP_UTF8 = 0x0080;
350 const NDMP4_BUTYPE_RECOVER_UTF8 = 0x0100;
351 const NDMP4_BUTYPE_BACKUP_FH_FILE = 0x0200;
352 const NDMP4_BUTYPE_BACKUP_FH_DIR = 0x0400;
353 const NDMP4_BUTYPE_RECOVER_FILEHIST = 0x0800;
354 const NDMP4_BUTYPE_RECOVER_FH_FILE = 0x1000;
355 const NDMP4_BUTYPE_RECOVER_FH_DIR = 0x2000;
358 struct ndmp4_butype_info
360 string butype_name<>;
361 ndmp4_pval default_env<>;
365 struct ndmp4_config_get_butype_info_reply
368 ndmp4_butype_info butype_info<>;
372 const NDMP4_FS_INFO_TOTAL_SIZE_UNS = 0x00000001;
373 const NDMP4_FS_INFO_USED_SIZE_UNS = 0x00000002;
374 const NDMP4_FS_INFO_AVAIL_SIZE_UNS = 0x00000004;
375 const NDMP4_FS_INFO_TOTAL_INODES_UNS = 0x00000008;
376 const NDMP4_FS_INFO_USED_INODES_UNS = 0x00000010;
382 string fs_logical_device<>;
383 string fs_physical_device<>;
384 ndmp4_u_quad total_size;
385 ndmp4_u_quad used_size;
386 ndmp4_u_quad avail_size;
387 ndmp4_u_quad total_inodes;
388 ndmp4_u_quad used_inodes;
393 struct ndmp4_config_get_fs_info_reply
396 ndmp4_fs_info fs_info<>;
400 const NDMP4_TAPE_ATTR_REWIND = 0x00000001;
401 const NDMP4_TAPE_ATTR_UNLOAD = 0x00000002;
402 const NDMP4_TAPE_ATTR_RAW = 0x00000004;
404 struct ndmp4_device_capability
408 ndmp4_pval capability<>;
411 struct ndmp4_device_info
414 ndmp4_device_capability caplist<>;
417 struct ndmp4_config_get_tape_info_reply
420 ndmp4_device_info tape_info<>;
423 struct ndmp4_config_get_scsi_info_reply
426 ndmp4_device_info scsi_info<>;
429 struct ndmp4_class_list
432 u_short class_version<>;
435 struct ndmp4_class_version
438 u_short class_version;
441 struct ndmp4_config_get_ext_list_reply
444 ndmp4_class_list class_list<>;
447 struct ndmp4_config_set_ext_list_request
450 ndmp4_class_list ndmp4_accepted_ext<>;
453 struct ndmp4_config_set_ext_list_reply
461 struct ndmp4_scsi_open_request
466 struct ndmp4_scsi_open_reply
472 struct ndmp4_scsi_close_reply
478 struct ndmp4_scsi_get_state_reply
481 short target_controller;
487 struct ndmp4_scsi_reset_device_reply
492 const NDMP4_SCSI_DATA_IN = 0x00000001;
493 const NDMP4_SCSI_DATA_OUT = 0x00000002;
495 struct ndmp4_execute_cdb_request
504 struct ndmp4_execute_cdb_reply
513 typedef ndmp4_execute_cdb_request ndmp4_scsi_execute_cdb_request;
514 typedef ndmp4_execute_cdb_reply ndmp4_scsi_execute_cdb_reply;
516 enum ndmp4_tape_open_mode
518 NDMP4_TAPE_READ_MODE = 0,
519 NDMP4_TAPE_RDWR_MODE = 1,
520 NDMP4_TAPE_RAW_MODE = 2
524 struct ndmp4_tape_open_request {
526 ndmp4_tape_open_mode mode;
529 struct ndmp4_tape_open_reply {
534 struct ndmp4_tape_close_reply
541 const NDMP4_TAPE_STATE_NOREWIND = 0x0008; /* non-rewind device */
542 const NDMP4_TAPE_STATE_WR_PROT = 0x0010; /* write-protected */
543 const NDMP4_TAPE_STATE_ERROR = 0x0020; /* media error */
544 const NDMP4_TAPE_STATE_UNLOAD = 0x0040; /* tape unloaded upon
547 /* unsupported bits */
548 const NDMP4_TAPE_STATE_FILE_NUM_UNS = 0x00000001;
549 const NDMP4_TAPE_STATE_SOFT_ERRORS_UNS = 0x00000002;
550 const NDMP4_TAPE_STATE_BLOCK_SIZE_UNS = 0x00000004;
551 const NDMP4_TAPE_STATE_BLOCKNO_UNS = 0x00000008;
552 const NDMP4_TAPE_STATE_TOTAL_SPACE_UNS = 0x00000010;
553 const NDMP4_TAPE_STATE_SPACE_REMAIN_UNS = 0x00000020;
555 struct ndmp4_tape_get_state_reply
565 ndmp4_u_quad total_space;
566 ndmp4_u_quad space_remain;
570 enum ndmp4_tape_mtio_op
582 struct ndmp4_tape_mtio_request
584 ndmp4_tape_mtio_op tape_op;
588 struct ndmp4_tape_mtio_reply
595 struct ndmp4_tape_write_request
600 struct ndmp4_tape_write_reply
607 struct ndmp4_tape_read_request
612 struct ndmp4_tape_read_reply
619 typedef ndmp4_scsi_execute_cdb_request ndmp4_tape_execute_cdb_request;
620 typedef ndmp4_scsi_execute_cdb_reply ndmp4_tape_execute_cdb_reply;
623 enum ndmp4_data_operation
625 NDMP4_DATA_OP_NOACTION = 0,
626 NDMP4_DATA_OP_BACKUP = 1,
627 NDMP4_DATA_OP_RECOVER = 2,
628 NDMP4_DATA_OP_RECOVER_FILEHIST = 3
632 enum ndmp4_data_state
634 NDMP4_DATA_STATE_IDLE=0,
635 NDMP4_DATA_STATE_ACTIVE=1,
636 NDMP4_DATA_STATE_HALTED=2,
637 NDMP4_DATA_STATE_LISTEN=3,
638 NDMP4_DATA_STATE_CONNECTED=4
641 enum ndmp4_data_halt_reason
643 NDMP4_DATA_HALT_NA=0,
644 NDMP4_DATA_HALT_SUCCESSFUL=1,
645 NDMP4_DATA_HALT_ABORTED=2,
646 NDMP4_DATA_HALT_INTERNAL_ERROR=3,
647 NDMP4_DATA_HALT_CONNECT_ERROR=4
651 struct ndmp4_tcp_addr
655 ndmp4_pval addr_env<>;
658 struct ndmp4_ipc_addr
663 union ndmp4_addr switch (ndmp4_addr_type addr_type)
665 case NDMP4_ADDR_LOCAL:
668 ndmp4_tcp_addr tcp_addr<>;
670 ndmp4_ipc_addr ipc_addr;
673 /* unsupported bitmask bits */
674 const NDMP4_DATA_STATE_EST_BYTES_REMAIN_UNS = 0x00000001;
675 const NDMP4_DATA_STATE_EST_TIME_REMAIN_UNS = 0x00000002;
677 struct ndmp4_data_get_state_reply
681 ndmp4_data_operation operation;
682 ndmp4_data_state state;
683 ndmp4_data_halt_reason halt_reason;
684 ndmp4_u_quad bytes_processed;
685 ndmp4_u_quad est_bytes_remain;
686 u_long est_time_remain;
687 ndmp4_addr data_connection_addr;
688 ndmp4_u_quad read_offset;
689 ndmp4_u_quad read_length;
694 struct ndmp4_data_listen_request
696 ndmp4_addr_type addr_type;
699 struct ndmp4_data_listen_reply
702 ndmp4_addr connect_addr;
706 struct ndmp4_data_connect_request
711 struct ndmp4_data_connect_reply
717 struct ndmp4_data_start_backup_request
719 string butype_name<>;
723 struct ndmp4_data_start_backup_reply
731 string original_path<>;
732 string destination_path<>;
736 ndmp4_u_quad fh_info;
739 struct ndmp4_data_start_recover_request
743 string butype_name<>;
746 struct ndmp4_data_start_recover_reply
751 struct ndmp4_data_start_recover_filehist_request
755 string butype_name<>;
758 struct ndmp4_data_start_recover_filehist_reply
765 struct ndmp4_data_abort_reply
771 struct ndmp4_data_stop_reply
777 struct ndmp4_data_get_env_reply
784 enum ndmp4_mover_mode
786 NDMP4_MOVER_MODE_READ = 0,
787 NDMP4_MOVER_MODE_WRITE = 1,
788 NDMP4_MOVER_MODE_NOACTION = 2
791 enum ndmp4_mover_state
793 NDMP4_MOVER_STATE_IDLE,
794 NDMP4_MOVER_STATE_LISTEN,
795 NDMP4_MOVER_STATE_ACTIVE,
796 NDMP4_MOVER_STATE_PAUSED,
797 NDMP4_MOVER_STATE_HALTED
800 enum ndmp4_mover_pause_reason
802 NDMP4_MOVER_PAUSE_NA = 0,
803 NDMP4_MOVER_PAUSE_EOM = 1,
804 NDMP4_MOVER_PAUSE_EOF = 2,
805 NDMP4_MOVER_PAUSE_SEEK = 3,
806 /* NDMPv4 does not have MOVER_PAUSE_MEDIA_ERROR = 4 */
807 NDMP4_MOVER_PAUSE_EOW = 5
810 enum ndmp4_mover_halt_reason
813 NDMP4_MOVER_HALT_CONNECT_CLOSED,
814 NDMP4_MOVER_HALT_ABORTED,
815 NDMP4_MOVER_HALT_INTERNAL_ERROR,
816 NDMP4_MOVER_HALT_CONNECT_ERROR,
817 NDMP4_MOVER_HALT_MEDIA_ERROR
823 struct ndmp4_mover_set_record_size_request
828 struct ndmp4_mover_set_record_size_reply
834 struct ndmp4_mover_set_window_request
841 struct ndmp4_mover_set_window_reply
847 struct ndmp4_mover_connect_request
849 ndmp4_mover_mode mode;
853 struct ndmp4_mover_connect_reply
859 struct ndmp4_mover_listen_request
861 ndmp4_mover_mode mode;
862 ndmp4_addr_type addr_type;
865 struct ndmp4_mover_listen_reply
868 ndmp4_addr connect_addr;
872 struct ndmp4_mover_read_request
878 struct ndmp4_mover_read_reply
885 struct ndmp4_mover_get_state_reply
888 ndmp4_mover_mode mode;
889 ndmp4_mover_state state;
890 ndmp4_mover_pause_reason pause_reason;
891 ndmp4_mover_halt_reason halt_reason;
894 ndmp4_u_quad bytes_moved;
895 ndmp4_u_quad seek_position;
896 ndmp4_u_quad bytes_left_to_read;
897 ndmp4_u_quad window_offset;
898 ndmp4_u_quad window_length;
899 ndmp4_addr data_connection_addr;
903 struct ndmp4_mover_continue_reply
909 struct ndmp4_mover_close_reply
915 struct ndmp4_mover_abort_reply
921 struct ndmp4_mover_stop_reply
927 struct ndmp4_notify_data_halted_post
929 ndmp4_data_halt_reason reason;
933 enum ndmp4_connection_status_reason
940 struct ndmp4_notify_connection_status_post
942 ndmp4_connection_status_reason reason;
943 u_short protocol_version;
944 string text_reason<>;
948 struct ndmp4_notify_mover_halted_post
950 ndmp4_mover_halt_reason reason;
954 struct ndmp4_notify_mover_paused_post
956 ndmp4_mover_pause_reason reason;
957 ndmp4_u_quad seek_position;
961 struct ndmp4_notify_data_read_post
968 enum ndmp4_has_associated_message
970 NDMP4_NO_ASSOCIATED_MESSAGE = 0,
971 NDMP4_HAS_ASSOCIATED_MESSAGE = 1
976 NDMP4_LOG_NORMAL = 0,
979 NDMP4_LOG_WARNING = 3
982 struct ndmp4_log_message_post
984 ndmp4_log_type log_type;
987 ndmp4_has_associated_message associated_message_valid;
988 u_long associated_message_sequence;
992 enum ndmp4_recovery_status
994 NDMP4_RECOVERY_SUCCESSFUL = 0,
995 NDMP4_RECOVERY_FAILED_PERMISSION = 1,
996 NDMP4_RECOVERY_FAILED_NOT_FOUND = 2,
997 NDMP4_RECOVERY_FAILED_NO_DIRECTORY = 3,
998 NDMP4_RECOVERY_FAILED_OUT_OF_MEMORY = 4,
999 NDMP4_RECOVERY_FAILED_IO_ERROR = 5,
1000 NDMP4_RECOVERY_FAILED_UNDEFINED_ERROR = 6
1003 struct ndmp4_log_file_post
1006 ndmp4_recovery_status recovery_status;
1017 typedef string ndmp4_path<>;
1019 struct ndmp4_nt_path
1022 ndmp4_path dos_path;
1025 union ndmp4_file_name switch (ndmp4_fs_type fs_type)
1028 ndmp4_path unix_name;
1030 ndmp4_nt_path nt_name;
1032 ndmp4_path other_name;
1036 enum ndmp4_file_type
1045 NDMP4_FILE_REGISTRY=7,
1050 /* unsupported bitmask */
1051 const NDMP4_FILE_STAT_ATIME_UNS = 0x00000001;
1052 const NDMP4_FILE_STAT_CTIME_UNS = 0x00000002;
1053 const NDMP4_FILE_STAT_GROUP_UNS = 0x00000004;
1055 struct ndmp4_file_stat
1058 ndmp4_fs_type fs_type;
1059 ndmp4_file_type ftype;
1072 ndmp4_file_name names<>;
1073 ndmp4_file_stat stats<>;
1075 ndmp4_u_quad fh_info;
1078 struct ndmp4_fh_add_file_post
1085 ndmp4_file_name names<>;
1087 ndmp4_u_quad parent;
1090 struct ndmp4_fh_add_dir_post
1098 ndmp4_file_stat stats<>;
1100 ndmp4_u_quad fh_info;
1103 struct ndmp4_fh_add_node_post
1108 %#endif /* !NDMOS_OPTION_NO_NDMP4 */