|
@@ -42,29 +42,6 @@ struct posix_header
|
|
/* 500 */
|
|
/* 500 */
|
|
};
|
|
};
|
|
|
|
|
|
-struct star_header
|
|
|
|
-{ /* byte offset */
|
|
|
|
- char name[100]; /* 0 */
|
|
|
|
- char mode[8]; /* 100 */
|
|
|
|
- char uid[8]; /* 108 */
|
|
|
|
- char gid[8]; /* 116 */
|
|
|
|
- char size[12]; /* 124 */
|
|
|
|
- char mtime[12]; /* 136 */
|
|
|
|
- char chksum[8]; /* 148 */
|
|
|
|
- char typeflag; /* 156 */
|
|
|
|
- char linkname[100]; /* 157 */
|
|
|
|
- char magic[6]; /* 257 */
|
|
|
|
- char version[2]; /* 263 */
|
|
|
|
- char uname[32]; /* 265 */
|
|
|
|
- char gname[32]; /* 297 */
|
|
|
|
- char devmajor[8]; /* 329 */
|
|
|
|
- char devminor[8]; /* 337 */
|
|
|
|
- char prefix[131]; /* 345 */
|
|
|
|
- char atime[12]; /* 476 */
|
|
|
|
- char ctime[12]; /* 488 */
|
|
|
|
- /* 500 */
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
#define TMAGIC "ustar" /* ustar and a null */
|
|
#define TMAGIC "ustar" /* ustar and a null */
|
|
#define TMAGLEN 6
|
|
#define TMAGLEN 6
|
|
#define TVERSION "00" /* 00 and no null */
|
|
#define TVERSION "00" /* 00 and no null */
|
|
@@ -212,6 +189,57 @@ struct oldgnu_header
|
|
/* This file is a tape/volume header. Ignore it on extraction. */
|
|
/* This file is a tape/volume header. Ignore it on extraction. */
|
|
#define GNUTYPE_VOLHDR 'V'
|
|
#define GNUTYPE_VOLHDR 'V'
|
|
|
|
|
|
|
|
+
|
|
|
|
+/* Jörg Schilling star header */
|
|
|
|
+
|
|
|
|
+struct star_header
|
|
|
|
+{ /* byte offset */
|
|
|
|
+ char name[100]; /* 0 */
|
|
|
|
+ char mode[8]; /* 100 */
|
|
|
|
+ char uid[8]; /* 108 */
|
|
|
|
+ char gid[8]; /* 116 */
|
|
|
|
+ char size[12]; /* 124 */
|
|
|
|
+ char mtime[12]; /* 136 */
|
|
|
|
+ char chksum[8]; /* 148 */
|
|
|
|
+ char typeflag; /* 156 */
|
|
|
|
+ char linkname[100]; /* 157 */
|
|
|
|
+ char magic[6]; /* 257 */
|
|
|
|
+ char version[2]; /* 263 */
|
|
|
|
+ char uname[32]; /* 265 */
|
|
|
|
+ char gname[32]; /* 297 */
|
|
|
|
+ char devmajor[8]; /* 329 */
|
|
|
|
+ char devminor[8]; /* 337 */
|
|
|
|
+ char prefix[131]; /* 345 */
|
|
|
|
+ char atime[12]; /* 476 */
|
|
|
|
+ char ctime[12]; /* 488 */
|
|
|
|
+ /* 500 */
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+#define SPARSES_IN_STAR_HEADER 4
|
|
|
|
+#define SPARSES_IN_STAR_EXT_HEADER 21
|
|
|
|
+
|
|
|
|
+struct star_in_header {
|
|
|
|
+ char fill[345]; /* 0 Everything that is before t_prefix */
|
|
|
|
+ char prefix[1]; /* 345 t_name prefix */
|
|
|
|
+ char fill2; /* 346 */
|
|
|
|
+ char fill3[8]; /* 347 */
|
|
|
|
+ char isextended; /* 355 */
|
|
|
|
+ struct sparse sp[SPARSES_IN_STAR_HEADER]; /* 356 */
|
|
|
|
+ char realsize[12]; /* 452 Actual size of the file */
|
|
|
|
+ char offset[12]; /* 464 Offset of multivolume contents */
|
|
|
|
+ char atime[12]; /* 476 */
|
|
|
|
+ char ctime[12]; /* 488 */
|
|
|
|
+ char mfill[8]; /* 500 */
|
|
|
|
+ char xmagic[4]; /* 508 "tar" */
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+struct star_ext_header {
|
|
|
|
+ struct sparse sp[SPARSES_IN_STAR_EXT_HEADER];
|
|
|
|
+ char isextended;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
/* tar Header Block, overall structure. */
|
|
/* tar Header Block, overall structure. */
|
|
|
|
|
|
/* tar files are made in basic blocks of this size. */
|
|
/* tar files are made in basic blocks of this size. */
|
|
@@ -267,6 +295,8 @@ union block
|
|
struct star_header star_header;
|
|
struct star_header star_header;
|
|
struct oldgnu_header oldgnu_header;
|
|
struct oldgnu_header oldgnu_header;
|
|
struct sparse_header sparse_header;
|
|
struct sparse_header sparse_header;
|
|
|
|
+ struct star_in_header star_in_header;
|
|
|
|
+ struct star_ext_header star_ext_header;
|
|
};
|
|
};
|
|
|
|
|
|
/* End of Format description. */
|
|
/* End of Format description. */
|