'A' Solaris Access Control List
'E' Solaris Extended Attribute File
'I' Inode only, as in 'star'
+ 'N' Obsolete GNU tar, for file names that do not fit into the main header.
'X' POSIX 1003.1-2001 eXtended (VU version) */
/* This is a dir entry that contains the names of files that were in the
/* This is the continuation of a file that began on another volume. */
#define GNUTYPE_MULTIVOL 'M'
-/* For storing filenames that do not fit into the main header. */
-#define GNUTYPE_NAMES 'N'
-
/* This is for sparse files. */
#define GNUTYPE_SPARSE 'S'
/* Solaris extended header */
#define SOLARIS_XHDTYPE 'X'
-\f
-/* Jörg Schilling star header */
+/* J@"org Schilling star header */
struct star_header
{ /* byte offset */
#define SPARSES_IN_STAR_HEADER 4
#define SPARSES_IN_STAR_EXT_HEADER 21
-struct star_in_header {
+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 xmagic[4]; /* 508 "tar" */
};
-struct star_ext_header {
+struct star_ext_header
+{
struct sparse sp[SPARSES_IN_STAR_EXT_HEADER];
char isextended;
};
+/* END */
\f
/* tar Header Block, overall structure. */
/* Information about a sparse file. */
struct sp_array
- {
- off_t offset;
- size_t numbytes;
- };
+{
+ off_t offset;
+ size_t numbytes;
+};
struct tar_stat_info
{
bool is_sparse; /* Is the file sparse */
/* For sparse files: */
+ unsigned sparse_major;
+ unsigned sparse_minor;
size_t sparse_map_avail; /* Index to the first unused element in
sparse_map array. Zero if the file is
not sparse */
struct star_in_header star_in_header;
struct star_ext_header star_ext_header;
};
-
-/* End of Format description. */