#define OPEN_WRITE_ONLY 2
/* Generic status bits returned from status_dev() */
-#define MT_TAPE (1<<0) /* is tape device */
-#define MT_EOF (1<<1) /* just read EOF */
-#define MT_BOT (1<<2) /* at beginning of tape */
-#define MT_EOT (1<<3) /* end of tape reached */
-#define MT_SM (1<<4) /* DDS setmark */
-#define MT_EOD (1<<5) /* DDS at end of data */
-#define MT_WR_PROT (1<<6) /* tape write protected */
-#define MT_ONLINE (1<<7) /* tape online */
-#define MT_DR_OPEN (1<<8) /* tape door open */
-#define MT_IM_REP_EN (1<<9) /* immediate report enabled */
+#define BMT_TAPE (1<<0) /* is tape device */
+#define BMT_EOF (1<<1) /* just read EOF */
+#define BMT_BOT (1<<2) /* at beginning of tape */
+#define BMT_EOT (1<<3) /* end of tape reached */
+#define BMT_SM (1<<4) /* DDS setmark */
+#define BMT_EOD (1<<5) /* DDS at end of data */
+#define BMT_WR_PROT (1<<6) /* tape write protected */
+#define BMT_ONLINE (1<<7) /* tape online */
+#define BMT_DR_OPEN (1<<8) /* tape door open */
+#define BMT_IM_REP_EN (1<<9) /* immediate report enabled */
/* Test capabilities */
#define BST_DOING_ACQUIRE 3 /* Opening/validating/moving tape */
#define BST_WRITING_LABEL 4 /* Labeling a tape */
#define BST_UNMOUNTED_WAITING_FOR_SYSOP 5 /* Closed by user during mount request */
+#define BST_MOUNT 6 /* Mount request */
/* Volume Catalog Information structure definition */
typedef struct s_volume_catalog_info {
uint32_t VolCatErrors; /* Number of errors this volume */
uint32_t VolCatWrites; /* Number of writes this volume */
uint32_t VolCatReads; /* Number of reads this volume */
+ uint64_t VolCatRBytes; /* Number of bytes read */
uint32_t VolCatRecycles; /* Number of recycles this volume */
int32_t Slot; /* Slot in changer */
uint32_t VolCatMaxJobs; /* Maximum Jobs to write to volume */
int dev_blocked; /* state */
} bsteal_lock_t;
+struct DEVRES; /* Device resource defined in stored_conf.h */
/* Device structure definition */
-typedef struct s_device {
- struct s_device *next; /* pointer to next open device */
- struct s_device *prev; /* pointer to prev open device */
- void *attached_jcrs; /* attached JCR list */
+struct DEVICE {
+ DEVICE *next; /* pointer to next open device */
+ DEVICE *prev; /* pointer to prev open device */
+ JCR *attached_jcrs; /* attached JCR list */
pthread_mutex_t mutex; /* access control */
pthread_cond_t wait; /* thread wait variable */
pthread_cond_t wait_next_vol; /* wait for tape to be mounted */
uint32_t EndFile; /* last file written */
uint32_t min_block_size; /* min block size */
uint32_t max_block_size; /* max block size */
- uint32_t max_volume_jobs; /* max jobs to put on one volume */
- uint64_t max_volume_files; /* max files to put on one volume */
uint64_t max_volume_size; /* max bytes to put on one volume */
uint64_t max_file_size; /* max file size to put in one file on volume */
uint64_t volume_capacity; /* advisory capacity */
uint32_t max_rewind_wait; /* max secs to allow for rewind */
uint32_t max_open_wait; /* max secs to allow for open */
uint32_t max_open_vols; /* max simultaneous open volumes */
- void *device; /* pointer to Device Resource */
+ DEVRES *device; /* pointer to Device Resource */
btimer_id tid; /* timer id */
VOLUME_CAT_INFO VolCatInfo; /* Volume Catalog Information */
VOLUME_LABEL VolHdr; /* Actual volume label */
-} DEVICE;
+};
-
-
-#ifdef SunOS
-#define DEFAULT_TAPE_DRIVE "/dev/rmt/0cbn"
-#endif
-#ifdef AIX
-#define DEFAULT_TAPE_DRIVE "/dev/rmt0.1"
-#endif
-#ifdef SGI
-#define DEFAULT_TAPE_DRIVE "/dev/tps0d4nr"
-#endif
-#ifdef Linux
-#define DEFAULT_TAPE_DRIVE "/dev/nst0"
-#endif
-#ifdef OSF
-#define DEFAULT_TAPE_DRIVE "/dev/nrmt0"
-#endif
-#ifdef HPUX
-#define DEFAULT_TAPE_DRIVE "/dev/rmt/0hnb"
-#endif
-#ifdef FreeBSD
-#define DEFAULT_TAPE_DRIVE "/dev/nrst0"
-#endif
-
-/* Default default */
-#ifndef DEFAULT_TAPE_DRIVE
-#define DEFAULT_TAPE_DRIVE "/dev/nst0"
-#endif
-
/* Get some definition of function to position
* to the end of the medium in MTEOM. System
* dependent. Arrgggg!