]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/stored/dev.h
Make btape fill/unfill work
[bacula/bacula] / bacula / src / stored / dev.h
index ffcd90781ec69e68bab049cd69accae79c49fd44..449fd78994d9ebc8492b7ade521ec422d21a0929 100644 (file)
 #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 {
@@ -121,6 +122,7 @@ 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 */
@@ -137,12 +139,13 @@ typedef struct s_steal_lock {
    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 */
@@ -171,44 +174,15 @@ typedef struct s_device {
    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!