]> git.wh0rd.org - dump.git/blobdiff - compat/include/protocols/dumprestore.h
Added bzip2 compression to dump.
[dump.git] / compat / include / protocols / dumprestore.h
index ef74c3950a43415c04167c4d92428c8a13d442f9..49e14f1f6bce9651fc4d02c904745804f1efa2a9 100644 (file)
@@ -1,8 +1,11 @@
 /*
  *     Ported to Linux's Second Extended File System as part of the
  *     dump and restore backup suit
- *     Remy Card <card@Linux.EU.Org>, 1994, 1995, 1996
+ *     Remy Card <card@Linux.EU.Org>, 1994-1997
+ *      Stelian Pop <pop@noos.fr>, 1999-2000
+ *     Stelian Pop <pop@noos.fr> - AlcĂ´ve <www.alcove.fr>, 2000
  *
+ *     $Id: dumprestore.h,v 1.14 2001/08/16 15:24:21 stelian Exp $
  */
 
 /*
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- *     @(#)dumprestore.h       8.2 (Berkeley) 1/21/94
  */
 
-#ifndef _DUMPRESTORE_H_
-#define _DUMPRESTORE_H_
+#ifndef _PROTOCOLS_DUMPRESTORE_H_
+#define _PROTOCOLS_DUMPRESTORE_H_
+
+#include <config.h>
 
 /*
  * TP_BSIZE is the size of file blocks on the dump tapes.
 #define NFS_MAGIC      (int)60012
 #define CHECKSUM       (int)84446
 
+typedef u_int32_t      dump_ino_t;
+
 union u_spcl {
        char dummy[TP_BSIZE];
        struct  s_spcl {
-               __s32   c_type;             /* record type (see below) */
-               __u32   c_date;             /* date of this dump */
-               __u32   c_ddate;            /* date of previous dump */
-               __s32   c_volume;           /* dump volume number */
+               int32_t c_type;             /* record type (see below) */
+               int32_t c_date;             /* date of this dump */
+               int32_t c_ddate;            /* date of previous dump */
+               int32_t c_volume;           /* dump volume number */
                daddr_t c_tapea;            /* logical block of this record */
-               ino_t   c_inumber;          /* number of inode */
-               __s32   c_magic;            /* magic number (see above) */
-               __s32   c_checksum;         /* record checksum */
+               dump_ino_t c_inumber;       /* number of inode */
+               int32_t c_magic;            /* magic number (see above) */
+               int32_t c_checksum;         /* record checksum */
 #ifdef __linux__
                struct  new_bsd_inode c_dinode;
 #else
                struct  dinode  c_dinode;   /* ownership and mode of inode */
 #endif
-               __s32   c_count;            /* number of valid c_addr entries */
+               int32_t c_count;            /* number of valid c_addr entries */
                char    c_addr[TP_NINDIR];  /* 1 => data; 0 => hole in inode */
                char    c_label[LBLSIZE];   /* dump label */
-               __s32   c_level;            /* level of this dump */
+               int32_t c_level;            /* level of this dump */
                char    c_filesys[NAMELEN]; /* name of dumpped file system */
                char    c_dev[NAMELEN];     /* name of dumpped device */
                char    c_host[NAMELEN];    /* name of dumpped host */
-               __s32   c_flags;            /* additional information */
-               __s32   c_firstrec;         /* first record on volume */
-               __s32   c_spare[32];        /* reserved for future uses */
+               int32_t c_flags;            /* additional information */
+               int32_t c_firstrec;         /* first record on volume */
+               int32_t c_ntrec;            /* blocksize on volume */
+               int32_t c_spare[31];        /* reserved for future uses */
        } s_spcl;
 } u_spcl;
 #define spcl u_spcl.s_spcl
@@ -115,9 +121,20 @@ union u_spcl {
  */
 #define DR_NEWHEADER   0x0001  /* new format tape header */
 #define DR_NEWINODEFMT 0x0002  /* new format inodes on tape */
+#define DR_COMPRESSED  0x0080  /* dump tape is compressed */
+
+/*
+ * compression flags for the tapebuf header.
+ */
+#define COMPRESS_ZLIB  0
+#define COMPRESS_BZLIB 1
 
-#define        DUMPOUTFMT      "%-16s %c %s"           /* for printf */
-                                               /* name, level, ctime(date) */
-#define        DUMPINFMT       "%16s %c %[^\n]\n"      /* inverse for scanf */
+/* used for compressed dump tapes */
+struct tapebuf {
+       unsigned int    compressed:1;
+       unsigned int    flags:3;
+       unsigned int    length:28;
+       char            buf[0]; /* the data */
+};
 
 #endif /* !_DUMPRESTORE_H_ */