]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/stored/dev.h
ebl rename faketape to vtape
[bacula/bacula] / bacula / src / stored / dev.h
index 265680f5b77fc151baeffc78af3314751feea377..0bf6682ca01e4272ba2b7b7989a7ebd8721b8307 100644 (file)
@@ -95,7 +95,8 @@ enum {
    B_TAPE_DEV,
    B_DVD_DEV,
    B_FIFO_DEV,
-   B_VTL_DEV 
+   B_VTAPE_DEV,                /* change to B_TAPE_DEV after init */
+   B_VTL_DEV
 };
 
 /* Generic status bits returned from status_dev() */
@@ -307,11 +308,13 @@ public:
    int is_autochanger() const { return capabilities & CAP_AUTOCHANGER; }
    int requires_mount() const { return capabilities & CAP_REQMOUNT; }
    int is_removable() const { return capabilities & CAP_REM; }
-   int is_tape() const { return dev_type == B_TAPE_DEV; }
+   int is_tape() const { return (dev_type == B_TAPE_DEV || 
+                                 dev_type == B_VTAPE_DEV); }
    int is_file() const { return dev_type == B_FILE_DEV; }
    int is_fifo() const { return dev_type == B_FIFO_DEV; }
    int is_dvd() const  { return dev_type == B_DVD_DEV; }
    int is_vtl() const  { return dev_type == B_VTL_DEV; }
+   int is_vtape() const  { return dev_type == B_VTAPE_DEV; }
    int is_open() const { return m_fd >= 0; }
    int is_offline() const { return state & ST_OFFLINE; }
    int is_labeled() const { return state & ST_LABEL; }
@@ -426,6 +429,14 @@ public:
    uint32_t get_block_num() const { return block_num; };
    int fd() const { return m_fd; };
 
+   /* low level operations */
+   void init_backend();
+   int (*d_open)(const char *pathname, int flags, ...);
+   int (*d_read)(int fd, void *buffer, unsigned int count);
+   int (*d_write)(int fd, const void *buffer, unsigned int count);
+   int (*d_close)(int fd);
+   int (*d_ioctl)(int fd, unsigned long int request, ...);
+
    /* 
     * Locking and blocking calls
     */