-int read_records(JCR *jcr, DEVICE *dev,
- int record_cb(JCR *jcr, DEVICE *dev, DEV_BLOCK *block, DEV_RECORD *rec),
- int mount_cb(JCR *jcr, DEVICE *dev, DEV_BLOCK *block));
+bool read_records(DCR *dcr,
+ bool record_cb(DCR *dcr, DEV_RECORD *rec),
+ bool mount_cb(DCR *dcr));
+
+/* From reserve.c */
+void init_reservations_lock();
+void term_reservations_lock();
+void lock_reservations();
+void unlock_reservations();
+void release_volume(DCR *dcr);
+VOLRES *new_volume(DCR *dcr, const char *VolumeName);
+VOLRES *find_volume(const char *VolumeName);
+bool free_volume(DEVICE *dev);
+void free_unused_volume(DCR *dcr);
+void create_volume_list();
+void free_volume_list();
+void list_volumes(void sendit(const char *msg, int len, void *sarg), void *arg);
+bool is_volume_in_use(DCR *dcr);
+void send_drive_reserve_messages(JCR *jcr, void sendit(const char *msg, int len, void *sarg), void *arg);
+bool find_suitable_device_for_job(JCR *jcr, RCTX &rctx);
+int search_res_for_device(RCTX &rctx);
+void release_msgs(JCR *jcr);
+
+
+/* From spool.c */
+bool begin_data_spool (DCR *dcr);
+bool discard_data_spool (DCR *dcr);
+bool commit_data_spool (DCR *dcr);
+bool are_attributes_spooled (JCR *jcr);
+bool begin_attribute_spool (JCR *jcr);
+bool discard_attribute_spool (JCR *jcr);
+bool commit_attribute_spool (JCR *jcr);
+bool write_block_to_spool_file (DCR *dcr);
+void list_spool_stats (void sendit(const char *msg, int len, void *sarg), void *arg);
+
+/* From wait.c */
+int wait_for_sysop(DCR *dcr);
+bool wait_for_device(JCR *jcr, bool first);