.po 1i
.TH DUMP 5 Bell
.V 08/15/84 17:34:22
.\"@[$]dump.5	1.5	08/15/84 17:34:22 - Zilog Inc.
.ad
.SH NAME
dump, ddate \- incremental dump format
.SH SYNOPSIS
.B #include <sys/types.h>
.br
.B #include <sys/ino.h>
.br
.B #include <dumprestor.h>
.SH DESCRIPTION
Tapes used by
.B dump
and
.BR restor (M)
contain:
.nf
.RS
.IP "\ \(bu"
a header record
.IP "\ \(bu"
two groups of bit map records
.IP "\ \(bu"
a group of records describing directories
.IP "\ \(bu"
a group of records describing files
.RE
.DT
.fi
.PP
The format of the header record and of the first
record of each description as given in the
include file
.I <dumprestor.h>
is:
.PP
.nf
.ta .5i \w'#define\ TS_INODE\ 'u
#define NTREC   	8
#define MLEN    	16
#define MSIZ    	4096

#define TS_TAPE 	1
#define TS_INODE	2
#define TS_BITS 	3
#define TS_ADDR 	4
#define TS_END  	5
#define TS_CLRI 	6
#define MAGIC   	(int)60011
#define CHECKSUM	(int)84446
struct	spcl
{
	int	c_type;
	time_t	c_date;
	time_t	c_ddate;
	int	c_volume;
	daddr_t	c_tapea;
	ino_t	c_inumber;
	int	c_magic;
	int	c_checksum;
	struct	dinode  c_dinode;
	int	c_count;
	union 
	{
		struct 
		{
			char c_dev[30];
			char c_string[BSIZE-30];
		}	c_dinfo;
		char    c_addr[BSIZE];
	}c_block;
} spcl;

struct	idates
{
	char    id_name[16];
	char    id_incno;
	time_t  id_ddate;
};
.fi
.PP
.I NTREC
is the number of 512 byte records in a physical
tape block.
.I MLEN
is the number of bits in a bit map word.
.I MSIZ 
is the number of bit map words.
.PP
The
.I TS_
entries are used in the
.I c_type
field to indicate header type.
The types and their meanings are as follows:
.TP \w'CHECKSUM\|'u
TS_TAPE
Tape volume label
.PD 0
.TP
TS_INODE
A file or directory follows.
The
.I c_dinode
field is a copy of the disk inode and contains
bits telling file type.
.TP
TS_BITS
A bit map follows.
This bit map has a one bit
for each inode that was dumped.
.TP
TS_ADDR
A subrecord of a file description.
See the following
.I c_addr
entry.
.TP
TS_END
End of tape record.
.TP
TS_CLRI
A bit map follows.
This bit map contains a zero bit for
all inodes that were empty on the file system when dumped.
.TP
MAGIC
All header records have this number in
.I c_magic.
.TP
CHECKSUM
Header records checksum to this value.
.DT
.sp
.PP
The fields of the header structure are as follows:
.sp
.TP \w'TS_INODE\ 'u
c_type
The type of the header.
.PD 0
.TP
c_date
The date the dump was taken.
.TP
c_ddate
The date the file system was dumped from.
.TP
c_volume
The current volume number of the dump.
.TP
c_tapea
The current number of this 512-byte record.
.TP
c_inumber
The number of the inode being dumped if this
is of type
.I TS_INODE.
.TP
c_magic
This contains the value
.I MAGIC
above, truncated as needed.
.TP
c_checksum
This contains whatever value is needed to
make the record sum to 
.I CHECKSUM.
.TP
c_dinode
This is a copy of the inode as it appears on the
file system (\fIfilsys\fR (5)).
.TP
c_count
The count of characters in
.I c_addr.
.TP
c_addr
An array of characters describing the blocks of the
dumped file.
A character is zero if the block associated with that character was not
present on the file system; otherwise, the character is non-zero.
If the block was not present on the file system, no block was dumped;
the block is restored as a hole in the file.
If there is not sufficient space in this record to describe
all of the blocks in a file,
.I TS_ADDR
records are scattered through the file, each one
picking up where the last left off.
.PD
.PP
Each volume except the last ends with a tapemark (read as an end
of file).
The last volume ends with a
.I TS_END
record and then the tapemark.
.PP
The structure
.I idates
describes an entry of the file
.I /etc/ddate
where dump history is kept.
The fields of the structure are:
.TP \w'TS_INODE\ 'u
id_name
The dumped filesystem is
.RI /dev/ id_nam.
.PD 0
.TP
id_incno
The level number of the dump tape;
(\fIdump\fR (M)).
.TP
id_ddate
The date of the incremental dump in system format
(\fItypes\fR (5)).
.PD
.SH FILES
/etc/ddate
.SH SEE ALSO
dump(M),
dumpdir(M),
restor(M),
filsys(5),
types(5).
