-ssize_t restore(dumpfile_t *file, char *filename, int tapefd, int isafile,
- rst_flags_t *flags);
+void restore(RestoreSource * source, rst_flags_t * flags);
+gboolean restore_holding_disk(FILE * prompt_out,
+ rst_flags_t * flags,
+ am_feature_t * features,
+ tapelist_t * file,
+ seentapes_t ** seen,
+ GSList * dumpspecs,
+ dumpfile_t * this_header,
+ dumpfile_t * last_header);
+
+gboolean search_a_tape(Device * device, FILE *prompt_out, rst_flags_t *flags,
+ am_feature_t *their_features,
+ tapelist_t *desired_tape, GSList *dumpspecs,
+ seentapes_t **tape_seen,
+ dumpfile_t * first_restored_file, int tape_count,
+ FILE * logstream);
+