diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/protocols/dumprestore.h | 47 |
1 files changed, 39 insertions, 8 deletions
diff --git a/include/protocols/dumprestore.h b/include/protocols/dumprestore.h index ebc700d3d975..6daecc11723a 100644 --- a/include/protocols/dumprestore.h +++ b/include/protocols/dumprestore.h @@ -64,20 +64,48 @@ #define OFS_MAGIC (int)60011 #define NFS_MAGIC (int)60012 +#ifndef FS_UFS2_MAGIC +#define FS_UFS2_MAGIC (int)0x19540119 +#endif #define CHECKSUM (int)84446 union u_spcl { char dummy[TP_BSIZE]; struct s_spcl { 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_old_date; /* date of this dump */ + int32_t c_old_ddate; /* date of previous dump */ int32_t c_volume; /* dump volume number */ - int32_t c_tapea; /* logical block of this record */ + int32_t c_old_tapea; /* logical block of this record */ ino_t c_inumber; /* number of inode */ int32_t c_magic; /* magic number (see above) */ int32_t c_checksum; /* record checksum */ - struct dinode c_dinode; /* ownership and mode of inode */ + /* + * Start old dinode structure, expanded for binary + * compatibility with UFS1. + */ + u_int16_t c_mode; /* file mode */ + int16_t c_spare1[3]; /* old nlink, ids */ + u_int64_t c_size; /* file byte count */ + int32_t c_old_atime; /* old last access time, seconds */ + int32_t c_atimensec; /* last access time, nanoseconds */ + int32_t c_old_mtime; /* old last modified time, secs */ + int32_t c_mtimensec; /* last modified time, nanosecs */ + int32_t c_spare2[2]; /* old ctime */ + int32_t c_rdev; /* for devices, device number */ + int32_t c_createtimensec; /* creation time, nanosecs */ + int64_t c_createtime; /* creation time, seconds */ + int64_t c_atime; /* last access time, seconds */ + int64_t c_mtime; /* last modified time, seconds */ + int32_t c_spare4[7]; /* old block pointers */ + u_int32_t c_file_flags; /* status flags (chflags) */ + int32_t c_spare5[2]; /* old blocks, generation number */ + u_int32_t c_uid; /* file owner */ + u_int32_t c_gid; /* file group */ + int32_t c_spare6[2]; /* previously unused spares */ + /* + * End old dinode structure. + */ 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 */ @@ -86,8 +114,12 @@ union u_spcl { char c_dev[NAMELEN]; /* name of dumpped device */ char c_host[NAMELEN]; /* name of dumpped host */ int32_t c_flags; /* additional information */ - int32_t c_firstrec; /* first record on volume */ - int32_t c_spare[32]; /* reserved for future uses */ + int32_t c_old_firstrec; /* first record on volume */ + int64_t c_date; /* date of this dump */ + int64_t c_ddate; /* date of previous dump */ + int64_t c_tapea; /* logical block of this record */ + int64_t c_firstrec; /* first record on volume */ + int32_t c_spare[24]; /* reserved for future uses */ } s_spcl; } u_spcl; #define spcl u_spcl.s_spcl @@ -104,8 +136,7 @@ union u_spcl { /* * flag values */ -#define DR_NEWHEADER 0x0001 /* new format tape header */ -#define DR_NEWINODEFMT 0x0002 /* new format inodes on tape */ +/* None at the moment */ #define DUMPOUTFMT "%-32s %c %s" /* for printf */ /* name, level, ctime(date) */ |