]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/stored/dev.h
Add address and socket for MySQL
[bacula/bacula] / bacula / src / stored / dev.h
index 10ca3577d636cac4c0317f12eabb8d6d53b78ad5..d2fd63c935af445667a13f37f42b4d0a3f94761d 100644 (file)
@@ -6,7 +6,7 @@
  *
  */
 /*
-   Copyright (C) 2000, 2001, 2002 Kern Sibbald and John Walker
+   Copyright (C) 2000-2003 Kern Sibbald and John Walker
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
@@ -45,6 +45,9 @@
 /* Arguments to open_dev() */
 #define READ_WRITE 0
 #define READ_ONLY  1
+#define OPEN_READ_WRITE 0
+#define OPEN_READ_ONLY  1
+#define OPEN_WRITE_ONLY 2
 
 /* Generic status bits returned from status_dev() */
 #define MT_TAPE      (1<<0)                /* is tape device */
@@ -59,6 +62,9 @@
 #define MT_IM_REP_EN (1<<9)                /* immediate report enabled */
 
 
+/* Test capabilities */
+#define dev_cap(dev, cap) ((dev)->capabilities & (cap))
+
 /* Bits for device capabilities */
 #define CAP_EOF            0x0001     /* has MTWEOF */
 #define CAP_BSR            0x0002     /* has MTBSR */
@@ -76,6 +82,8 @@
 #define CAP_OFFLINEUNMOUNT 0x2000     /* Offline before unmount */
 #define CAP_STREAM         0x4000     /* Stream device */
 
+/* Test state */
+#define dev_state(dev, state) ((dev)->state & (state))
 
 /* Device state bits */
 #define ST_OPENED    0x0001           /* set when device opened */
@@ -132,10 +140,8 @@ typedef struct s_steal_lock {
 /* 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 */
-#ifdef NEW_LOCK
-   brwlock_t lock;                    /* new device locking mechanism */
-#endif
    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 */
@@ -165,7 +171,9 @@ typedef struct s_device {
    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 */
+   btimer_id tid;                     /* timer id */
 
    VOLUME_CAT_INFO VolCatInfo;        /* Volume Catalog Information */
    VOLUME_LABEL VolHdr;               /* Actual volume label */