int dev_prev_blocked; /* previous blocked state */
} bsteal_lock_t;
-struct DEVRES; /* Device resource defined in stored_conf.h */
-int weof_dev(DEVICE *dev, int num);
-bool rewind_dev(DEVICE *dev);
+class DEVRES; /* Device resource defined in stored_conf.h */
class DCR; /* forward reference */
/*
(dev_blocked == BST_UNMOUNTED ||
dev_blocked == BST_WAITING_FOR_SYSOP ||
dev_blocked == BST_UNMOUNTED_WAITING_FOR_SYSOP); };
- bool weof() { return !weof_dev(this, 1); };
const char *strerror() const;
const char *archive_name() const;
const char *name() const;
void clear_mounted() { state &= ~ST_MOUNTED; };
void clear_media() { state &= ~ST_MEDIA; };
void clear_short_block() { state &= ~ST_SHORT; };
- void clear_freespace_ok() { state &= ~ST_FREESPACE_OK; }
+ void clear_freespace_ok() { state &= ~ST_FREESPACE_OK; };
+ char *bstrerror(void) { return errmsg; };
void block(int why); /* in dev.c */
void unblock(); /* in dev.c */
void close(); /* in dev.c */
bool truncate(DCR *dcr); /* in dev.c */
int open(DCR *dcr, int mode); /* in dev.c */
+ void term(void); /* in dev.c */
bool rewind(DCR *dcr); /* in dev.c */
bool mount(int timeout); /* in dev.c */
bool unmount(int timeout); /* in dev.c */
bool eod(); /* in dev.c */
bool fsr(int num); /* in dev.c */
bool fsf(int num); /* in dev.c */
+ bool bsr(int num); /* in dev.c */
+ bool weof(int num); /* in dev.c */
bool scan_dir_for_volume(DCR *dcr); /* in scan.c */
+ bool reposition(uint32_t rfile, uint32_t rblock); /* in dev.c */
+ void clrerror(int func); /* in dev.c */
void set_blocked(int block) { dev_blocked = block; };
int get_blocked() const { return dev_blocked; };
int spool_fd; /* fd if spooling */
bool spool_data; /* set to spool data */
bool spooling; /* set when actually spooling */
+ bool despooling; /* set when despooling */
+ bool despool_wait; /* waiting for despooling */
bool dev_locked; /* set if dev already locked */
bool NewVol; /* set if new Volume mounted */
bool WroteVol; /* set if Volume written */