+char *xheader_xhdr_name (struct tar_stat_info *st);
+char *xheader_ghdr_name (void);
+void xheader_set_option (char *string);
+
+/* Module system.c */
+
+void sys_stat_nanoseconds (struct tar_stat_info *stat);
+void sys_detect_dev_null_output (void);
+void sys_save_archive_dev_ino (void);
+void sys_drain_input_pipe (void);
+void sys_wait_for_child (pid_t);
+void sys_spawn_shell (void);
+bool sys_compare_uid (struct stat *a, struct stat *b);
+bool sys_compare_gid (struct stat *a, struct stat *b);
+bool sys_file_is_archive (struct tar_stat_info *p);
+bool sys_compare_links (struct stat *link_data, struct stat *stat_data);
+int sys_truncate (int fd);
+void sys_reset_uid_gid (void);
+pid_t sys_child_open_for_compress (void);
+pid_t sys_child_open_for_uncompress (void);
+ssize_t sys_write_archive_buffer (void);
+bool sys_get_archive_stat (void);
+void sys_reset_uid_gid (void);
+
+/* Module compare.c */
+void report_difference (struct tar_stat_info *st, const char *message, ...);
+
+/* Module sparse.c */
+bool sparse_file_p (struct tar_stat_info *stat);
+bool sparse_member_p (struct tar_stat_info *stat);
+bool sparse_fixup_header (struct tar_stat_info *stat);
+enum dump_status sparse_dump_file (int fd, struct tar_stat_info *stat);
+enum dump_status sparse_extract_file (int fd, struct tar_stat_info *stat, off_t *size);
+enum dump_status sparse_skip_file (struct tar_stat_info *stat);
+bool sparse_diff_file (int fd, struct tar_stat_info *stat);
+
+/* Module utf8.c */
+bool string_ascii_p (const char *str);
+bool utf8_convert(bool to_utf, const char *input, char **output);