int release_device(JCR *jcr, DEVICE *dev);
/* From askdir.c */
-int dir_get_volume_info(JCR *jcr, int writing);
+enum get_vol_info_rw {
+ GET_VOL_INFO_FOR_WRITE,
+ GET_VOL_INFO_FOR_READ
+};
+int dir_get_volume_info(JCR *jcr, enum get_vol_info_rw);
int dir_find_next_appendable_volume(JCR *jcr);
int dir_update_volume_info(JCR *jcr, VOLUME_CAT_INFO *vol, int relabel);
int dir_ask_sysop_to_mount_next_volume(JCR *jcr, DEVICE *dev);
void detach_jcr_from_device(DEVICE *dev, JCR *jcr);
JCR *next_attached_jcr(DEVICE *dev, JCR *jcr);
int dev_can_write(DEVICE *dev);
+int offline_or_rewind_dev(DEVICE *dev);
/* Get info about device */
void _block_device(char *file, int line, DEVICE *dev, int state);
void _unblock_device(char *file, int line, DEVICE *dev);
void _steal_device_lock(char *file, int line, DEVICE *dev, bsteal_lock_t *hold, int state);
-void _return_device_lock(char *file, int line, DEVICE *dev, bsteal_lock_t *hold);
-
-/* don't use */
-void _new_lock_device(char *file, int line, DEVICE *dev);
-void _new_lock_device(char *file, int line, DEVICE *dev, int state);
-void _new_unlock_device(char *file, int line, DEVICE *dev);
-void new_steal_device_lock(DEVICE *dev, brwsteal_t *hold, int state);
-void new_return_device_lock(DEVICE *dev, brwsteal_t *hold);
+void _give_back_device_lock(char *file, int line, DEVICE *dev, bsteal_lock_t *hold);
+void set_new_volume_parameters(JCR *jcr, DEVICE *dev);
/* From dircmd.c */
void *connection_request(void *arg);
/* From match_bsr.c */
int match_bsr(BSR *bsr, DEV_RECORD *rec, VOLUME_LABEL *volrec,
SESSION_LABEL *sesrec);
+int match_bsr_block(BSR *bsr, DEV_BLOCK *block);
+void position_bsr_block(BSR *bsr, DEV_BLOCK *block);
/* From mount.c */
int mount_next_write_volume(JCR *jcr, DEVICE *dev, DEV_BLOCK *block, int release);
int mount_next_read_volume(JCR *jcr, DEVICE *dev, DEV_BLOCK *block);
+void release_volume(JCR *jcr, DEVICE *dev);
/* From autochanger.c */
int autoload_device(JCR *jcr, DEVICE *dev, int writing, BSOCK *dir);