85 lines
2.3 KiB
C
85 lines
2.3 KiB
C
|
// Archive/TarHeader.h
|
||
|
|
||
|
#ifndef __ARCHIVE_TAR_HEADER_H
|
||
|
#define __ARCHIVE_TAR_HEADER_H
|
||
|
|
||
|
#include "../../../Common/MyTypes.h"
|
||
|
|
||
|
namespace NArchive {
|
||
|
namespace NTar {
|
||
|
|
||
|
namespace NFileHeader
|
||
|
{
|
||
|
const unsigned kRecordSize = 512;
|
||
|
const unsigned kNameSize = 100;
|
||
|
const unsigned kUserNameSize = 32;
|
||
|
const unsigned kGroupNameSize = 32;
|
||
|
const unsigned kPrefixSize = 155;
|
||
|
|
||
|
const unsigned kUstarMagic_Offset = 257;
|
||
|
|
||
|
/*
|
||
|
struct CHeader
|
||
|
{
|
||
|
char Name[kNameSize];
|
||
|
char Mode[8];
|
||
|
char UID[8];
|
||
|
char GID[8];
|
||
|
char Size[12];
|
||
|
char ModificationTime[12];
|
||
|
char CheckSum[8];
|
||
|
char LinkFlag;
|
||
|
char LinkName[kNameSize];
|
||
|
char Magic[8];
|
||
|
char UserName[kUserNameSize];
|
||
|
char GroupName[kGroupNameSize];
|
||
|
char DeviceMajor[8];
|
||
|
char DeviceMinor[8];
|
||
|
char Prefix[155];
|
||
|
};
|
||
|
union CRecord
|
||
|
{
|
||
|
CHeader Header;
|
||
|
Byte Padding[kRecordSize];
|
||
|
};
|
||
|
*/
|
||
|
|
||
|
namespace NLinkFlag
|
||
|
{
|
||
|
const char kOldNormal = 0; // Normal disk file, Unix compatible
|
||
|
const char kNormal = '0'; // Normal disk file
|
||
|
const char kHardLink = '1'; // Link to previously dumped file
|
||
|
const char kSymLink = '2'; // Symbolic link
|
||
|
const char kCharacter = '3'; // Character special file
|
||
|
const char kBlock = '4'; // Block special file
|
||
|
const char kDirectory = '5'; // Directory
|
||
|
const char kFIFO = '6'; // FIFO special file
|
||
|
const char kContiguous = '7'; // Contiguous file
|
||
|
const char kGnu_LongLink = 'K';
|
||
|
const char kGnu_LongName = 'L';
|
||
|
const char kSparse = 'S';
|
||
|
const char kDumpDir = 'D'; /* GNUTYPE_DUMPDIR.
|
||
|
data: list of files created by the --incremental (-G) option
|
||
|
Each file name is preceded by either
|
||
|
- 'Y' (file should be in this archive)
|
||
|
- 'N' (file is a directory, or is not stored in the archive.)
|
||
|
Each file name is terminated by a null + an additional null after
|
||
|
the last file name. */
|
||
|
}
|
||
|
|
||
|
extern const char *kLongLink; // = "././@LongLink";
|
||
|
extern const char *kLongLink2; // = "@LongLink";
|
||
|
|
||
|
namespace NMagic
|
||
|
{
|
||
|
// extern const char *kUsTar; // = "ustar"; // 5 chars
|
||
|
// extern const char *kGNUTar; // = "GNUtar "; // 7 chars and a null
|
||
|
// extern const char *kEmpty; // = "\0\0\0\0\0\0\0\0"
|
||
|
extern const char kUsTar_00[];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}}
|
||
|
|
||
|
#endif
|