| 162 |
struct oldgnu_header |
struct oldgnu_header |
| 163 |
{ /* byte offset */ |
{ /* byte offset */ |
| 164 |
char unused_pad1[345]; /* 0 */ |
char unused_pad1[345]; /* 0 */ |
| 165 |
char atime[12]; /* 345 */ |
char atime[12]; /* 345 Incr. archive: atime of the file */ |
| 166 |
char ctime[12]; /* 357 */ |
char ctime[12]; /* 357 Incr. archive: ctime of the file */ |
| 167 |
char offset[12]; /* 369 */ |
char offset[12]; /* 369 Multivolume archive: the offset of |
| 168 |
char longnames[4]; /* 381 */ |
the start of this volume */ |
| 169 |
|
char longnames[4]; /* 381 Not used */ |
| 170 |
char unused_pad2; /* 385 */ |
char unused_pad2; /* 385 */ |
| 171 |
struct sparse sp[SPARSES_IN_OLDGNU_HEADER]; |
struct sparse sp[SPARSES_IN_OLDGNU_HEADER]; |
| 172 |
/* 386 */ |
/* 386 */ |
| 173 |
char isextended; /* 482 */ |
char isextended; /* 482 Sparse file: Extension sparse header |
| 174 |
char realsize[12]; /* 483 */ |
follows */ |
| 175 |
|
char realsize[12]; /* 483 Sparse file: Real size*/ |
| 176 |
/* 495 */ |
/* 495 */ |
| 177 |
}; |
}; |
| 178 |
|
|
| 228 |
GNU_FORMAT /* POSIX format with GNU extensions */ |
GNU_FORMAT /* POSIX format with GNU extensions */ |
| 229 |
}; |
}; |
| 230 |
|
|
| 231 |
|
/* Information about a sparse file. */ |
| 232 |
|
struct sp_array |
| 233 |
|
{ |
| 234 |
|
off_t offset; |
| 235 |
|
size_t numbytes; |
| 236 |
|
}; |
| 237 |
|
|
| 238 |
struct tar_stat_info |
struct tar_stat_info |
| 239 |
{ |
{ |
| 240 |
char *orig_file_name; /* name of file read from the archive header */ |
char *orig_file_name; /* name of file read from the archive header */ |
| 248 |
unsigned int devmajor; /* device major number */ |
unsigned int devmajor; /* device major number */ |
| 249 |
char *uname; /* user name of owner */ |
char *uname; /* user name of owner */ |
| 250 |
char *gname; /* group name of owner */ |
char *gname; /* group name of owner */ |
| 251 |
struct stat stat; /* regular filesystem stat */ |
struct stat stat; /* regular filesystem stat */ |
| 252 |
|
|
| 253 |
|
off_t archive_file_size; /* Size of file as stored in the archive. |
| 254 |
|
Equals stat.st_size for non-sparse files */ |
| 255 |
|
|
| 256 |
|
size_t sparse_map_avail; /* Index to the first unused element in |
| 257 |
|
sparse_map array. Zero if the file is |
| 258 |
|
not sparse */ |
| 259 |
|
size_t sparse_map_size; /* Size of the sparse map */ |
| 260 |
|
struct sp_array *sparse_map; |
| 261 |
}; |
}; |
| 262 |
|
|
| 263 |
union block |
union block |