xref: /aosp_15_r20/external/lzma/CPP/7zip/PropID.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // PropID.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_7ZIP_PROP_ID_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_7ZIP_PROP_ID_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include "../Common/MyTypes.h"
7*f6dc9357SAndroid Build Coastguard Worker 
8*f6dc9357SAndroid Build Coastguard Worker enum
9*f6dc9357SAndroid Build Coastguard Worker {
10*f6dc9357SAndroid Build Coastguard Worker   kpidNoProperty = 0,
11*f6dc9357SAndroid Build Coastguard Worker   kpidMainSubfile,
12*f6dc9357SAndroid Build Coastguard Worker   kpidHandlerItemIndex,
13*f6dc9357SAndroid Build Coastguard Worker   kpidPath,
14*f6dc9357SAndroid Build Coastguard Worker   kpidName,
15*f6dc9357SAndroid Build Coastguard Worker   kpidExtension,
16*f6dc9357SAndroid Build Coastguard Worker   kpidIsDir,
17*f6dc9357SAndroid Build Coastguard Worker   kpidSize,
18*f6dc9357SAndroid Build Coastguard Worker   kpidPackSize,
19*f6dc9357SAndroid Build Coastguard Worker   kpidAttrib,
20*f6dc9357SAndroid Build Coastguard Worker   kpidCTime,
21*f6dc9357SAndroid Build Coastguard Worker   kpidATime,
22*f6dc9357SAndroid Build Coastguard Worker   kpidMTime,
23*f6dc9357SAndroid Build Coastguard Worker   kpidSolid,
24*f6dc9357SAndroid Build Coastguard Worker   kpidCommented,
25*f6dc9357SAndroid Build Coastguard Worker   kpidEncrypted,
26*f6dc9357SAndroid Build Coastguard Worker   kpidSplitBefore,
27*f6dc9357SAndroid Build Coastguard Worker   kpidSplitAfter,
28*f6dc9357SAndroid Build Coastguard Worker   kpidDictionarySize,
29*f6dc9357SAndroid Build Coastguard Worker   kpidCRC,
30*f6dc9357SAndroid Build Coastguard Worker   kpidType,
31*f6dc9357SAndroid Build Coastguard Worker   kpidIsAnti,
32*f6dc9357SAndroid Build Coastguard Worker   kpidMethod,
33*f6dc9357SAndroid Build Coastguard Worker   kpidHostOS,
34*f6dc9357SAndroid Build Coastguard Worker   kpidFileSystem,
35*f6dc9357SAndroid Build Coastguard Worker   kpidUser,
36*f6dc9357SAndroid Build Coastguard Worker   kpidGroup,
37*f6dc9357SAndroid Build Coastguard Worker   kpidBlock,
38*f6dc9357SAndroid Build Coastguard Worker   kpidComment,
39*f6dc9357SAndroid Build Coastguard Worker   kpidPosition,
40*f6dc9357SAndroid Build Coastguard Worker   kpidPrefix,
41*f6dc9357SAndroid Build Coastguard Worker   kpidNumSubDirs,
42*f6dc9357SAndroid Build Coastguard Worker   kpidNumSubFiles,
43*f6dc9357SAndroid Build Coastguard Worker   kpidUnpackVer,
44*f6dc9357SAndroid Build Coastguard Worker   kpidVolume,
45*f6dc9357SAndroid Build Coastguard Worker   kpidIsVolume,
46*f6dc9357SAndroid Build Coastguard Worker   kpidOffset,
47*f6dc9357SAndroid Build Coastguard Worker   kpidLinks,
48*f6dc9357SAndroid Build Coastguard Worker   kpidNumBlocks,
49*f6dc9357SAndroid Build Coastguard Worker   kpidNumVolumes,
50*f6dc9357SAndroid Build Coastguard Worker   kpidTimeType,
51*f6dc9357SAndroid Build Coastguard Worker   kpidBit64,
52*f6dc9357SAndroid Build Coastguard Worker   kpidBigEndian,
53*f6dc9357SAndroid Build Coastguard Worker   kpidCpu,
54*f6dc9357SAndroid Build Coastguard Worker   kpidPhySize,
55*f6dc9357SAndroid Build Coastguard Worker   kpidHeadersSize,
56*f6dc9357SAndroid Build Coastguard Worker   kpidChecksum,
57*f6dc9357SAndroid Build Coastguard Worker   kpidCharacts,
58*f6dc9357SAndroid Build Coastguard Worker   kpidVa,
59*f6dc9357SAndroid Build Coastguard Worker   kpidId,
60*f6dc9357SAndroid Build Coastguard Worker   kpidShortName,
61*f6dc9357SAndroid Build Coastguard Worker   kpidCreatorApp,
62*f6dc9357SAndroid Build Coastguard Worker   kpidSectorSize,
63*f6dc9357SAndroid Build Coastguard Worker   kpidPosixAttrib,
64*f6dc9357SAndroid Build Coastguard Worker   kpidSymLink,
65*f6dc9357SAndroid Build Coastguard Worker   kpidError,
66*f6dc9357SAndroid Build Coastguard Worker   kpidTotalSize,
67*f6dc9357SAndroid Build Coastguard Worker   kpidFreeSpace,
68*f6dc9357SAndroid Build Coastguard Worker   kpidClusterSize,
69*f6dc9357SAndroid Build Coastguard Worker   kpidVolumeName,
70*f6dc9357SAndroid Build Coastguard Worker   kpidLocalName,
71*f6dc9357SAndroid Build Coastguard Worker   kpidProvider,
72*f6dc9357SAndroid Build Coastguard Worker   kpidNtSecure,
73*f6dc9357SAndroid Build Coastguard Worker   kpidIsAltStream,
74*f6dc9357SAndroid Build Coastguard Worker   kpidIsAux,
75*f6dc9357SAndroid Build Coastguard Worker   kpidIsDeleted,
76*f6dc9357SAndroid Build Coastguard Worker   kpidIsTree,
77*f6dc9357SAndroid Build Coastguard Worker   kpidSha1,
78*f6dc9357SAndroid Build Coastguard Worker   kpidSha256,
79*f6dc9357SAndroid Build Coastguard Worker   kpidErrorType,
80*f6dc9357SAndroid Build Coastguard Worker   kpidNumErrors,
81*f6dc9357SAndroid Build Coastguard Worker   kpidErrorFlags,
82*f6dc9357SAndroid Build Coastguard Worker   kpidWarningFlags,
83*f6dc9357SAndroid Build Coastguard Worker   kpidWarning,
84*f6dc9357SAndroid Build Coastguard Worker   kpidNumStreams,
85*f6dc9357SAndroid Build Coastguard Worker   kpidNumAltStreams,
86*f6dc9357SAndroid Build Coastguard Worker   kpidAltStreamsSize,
87*f6dc9357SAndroid Build Coastguard Worker   kpidVirtualSize,
88*f6dc9357SAndroid Build Coastguard Worker   kpidUnpackSize,
89*f6dc9357SAndroid Build Coastguard Worker   kpidTotalPhySize,
90*f6dc9357SAndroid Build Coastguard Worker   kpidVolumeIndex,
91*f6dc9357SAndroid Build Coastguard Worker   kpidSubType,
92*f6dc9357SAndroid Build Coastguard Worker   kpidShortComment,
93*f6dc9357SAndroid Build Coastguard Worker   kpidCodePage,
94*f6dc9357SAndroid Build Coastguard Worker   kpidIsNotArcType,
95*f6dc9357SAndroid Build Coastguard Worker   kpidPhySizeCantBeDetected,
96*f6dc9357SAndroid Build Coastguard Worker   kpidZerosTailIsAllowed,
97*f6dc9357SAndroid Build Coastguard Worker   kpidTailSize,
98*f6dc9357SAndroid Build Coastguard Worker   kpidEmbeddedStubSize,
99*f6dc9357SAndroid Build Coastguard Worker   kpidNtReparse,
100*f6dc9357SAndroid Build Coastguard Worker   kpidHardLink,
101*f6dc9357SAndroid Build Coastguard Worker   kpidINode,
102*f6dc9357SAndroid Build Coastguard Worker   kpidStreamId,
103*f6dc9357SAndroid Build Coastguard Worker   kpidReadOnly,
104*f6dc9357SAndroid Build Coastguard Worker   kpidOutName,
105*f6dc9357SAndroid Build Coastguard Worker   kpidCopyLink,
106*f6dc9357SAndroid Build Coastguard Worker   kpidArcFileName,
107*f6dc9357SAndroid Build Coastguard Worker   kpidIsHash,
108*f6dc9357SAndroid Build Coastguard Worker   kpidChangeTime,
109*f6dc9357SAndroid Build Coastguard Worker   kpidUserId,
110*f6dc9357SAndroid Build Coastguard Worker   kpidGroupId,
111*f6dc9357SAndroid Build Coastguard Worker   kpidDeviceMajor,
112*f6dc9357SAndroid Build Coastguard Worker   kpidDeviceMinor,
113*f6dc9357SAndroid Build Coastguard Worker   kpidDevMajor,
114*f6dc9357SAndroid Build Coastguard Worker   kpidDevMinor,
115*f6dc9357SAndroid Build Coastguard Worker 
116*f6dc9357SAndroid Build Coastguard Worker   kpid_NUM_DEFINED,
117*f6dc9357SAndroid Build Coastguard Worker 
118*f6dc9357SAndroid Build Coastguard Worker   kpidUserDefined = 0x10000
119*f6dc9357SAndroid Build Coastguard Worker };
120*f6dc9357SAndroid Build Coastguard Worker 
121*f6dc9357SAndroid Build Coastguard Worker extern const Byte k7z_PROPID_To_VARTYPE[kpid_NUM_DEFINED]; // VARTYPE
122*f6dc9357SAndroid Build Coastguard Worker 
123*f6dc9357SAndroid Build Coastguard Worker const UInt32 kpv_ErrorFlags_IsNotArc              = 1 << 0;
124*f6dc9357SAndroid Build Coastguard Worker const UInt32 kpv_ErrorFlags_HeadersError          = 1 << 1;
125*f6dc9357SAndroid Build Coastguard Worker const UInt32 kpv_ErrorFlags_EncryptedHeadersError = 1 << 2;
126*f6dc9357SAndroid Build Coastguard Worker const UInt32 kpv_ErrorFlags_UnavailableStart      = 1 << 3;
127*f6dc9357SAndroid Build Coastguard Worker const UInt32 kpv_ErrorFlags_UnconfirmedStart      = 1 << 4;
128*f6dc9357SAndroid Build Coastguard Worker const UInt32 kpv_ErrorFlags_UnexpectedEnd         = 1 << 5;
129*f6dc9357SAndroid Build Coastguard Worker const UInt32 kpv_ErrorFlags_DataAfterEnd          = 1 << 6;
130*f6dc9357SAndroid Build Coastguard Worker const UInt32 kpv_ErrorFlags_UnsupportedMethod     = 1 << 7;
131*f6dc9357SAndroid Build Coastguard Worker const UInt32 kpv_ErrorFlags_UnsupportedFeature    = 1 << 8;
132*f6dc9357SAndroid Build Coastguard Worker const UInt32 kpv_ErrorFlags_DataError             = 1 << 9;
133*f6dc9357SAndroid Build Coastguard Worker const UInt32 kpv_ErrorFlags_CrcError              = 1 << 10;
134*f6dc9357SAndroid Build Coastguard Worker // const UInt32 kpv_ErrorFlags_Unsupported           = 1 << 11;
135*f6dc9357SAndroid Build Coastguard Worker 
136*f6dc9357SAndroid Build Coastguard Worker /*
137*f6dc9357SAndroid Build Coastguard Worker linux ctime :
138*f6dc9357SAndroid Build Coastguard Worker    file metadata was last changed.
139*f6dc9357SAndroid Build Coastguard Worker    changing the file modification time
140*f6dc9357SAndroid Build Coastguard Worker    counts as a metadata change, so will also have the side effect of updating the ctime.
141*f6dc9357SAndroid Build Coastguard Worker 
142*f6dc9357SAndroid Build Coastguard Worker PROPVARIANT for timestamps in 7-Zip:
143*f6dc9357SAndroid Build Coastguard Worker {
144*f6dc9357SAndroid Build Coastguard Worker   vt = VT_FILETIME
145*f6dc9357SAndroid Build Coastguard Worker   wReserved1: set precision level
146*f6dc9357SAndroid Build Coastguard Worker     0      : base value (backward compatibility value)
147*f6dc9357SAndroid Build Coastguard Worker              only filetime is used (7 digits precision).
148*f6dc9357SAndroid Build Coastguard Worker              wReserved2 and wReserved3 can contain random data
149*f6dc9357SAndroid Build Coastguard Worker     1      : Unix (1 sec)
150*f6dc9357SAndroid Build Coastguard Worker     2      : DOS  (2 sec)
151*f6dc9357SAndroid Build Coastguard Worker     3      : High Precision (1 ns)
152*f6dc9357SAndroid Build Coastguard Worker     16 - 3 : (reserved) = 1 day
153*f6dc9357SAndroid Build Coastguard Worker     16 - 2 : (reserved) = 1 hour
154*f6dc9357SAndroid Build Coastguard Worker     16 - 1 : (reserved) = 1 minute
155*f6dc9357SAndroid Build Coastguard Worker     16 + 0 : 1 sec (0 digits after point)
156*f6dc9357SAndroid Build Coastguard Worker     16 + (1,2,3,4,5,6,7,8,9) : set subsecond precision level :
157*f6dc9357SAndroid Build Coastguard Worker          (number of decimal digits after point)
158*f6dc9357SAndroid Build Coastguard Worker     16 + 9 : 1 ns  (9 digits after point)
159*f6dc9357SAndroid Build Coastguard Worker   wReserved2 = ns % 100 : if     (8 or 9 digits pecision)
160*f6dc9357SAndroid Build Coastguard Worker              = 0        : if not (8 or 9 digits pecision)
161*f6dc9357SAndroid Build Coastguard Worker   wReserved3 = 0;
162*f6dc9357SAndroid Build Coastguard Worker   filetime
163*f6dc9357SAndroid Build Coastguard Worker }
164*f6dc9357SAndroid Build Coastguard Worker 
165*f6dc9357SAndroid Build Coastguard Worker NOTE: TAR-PAX archives created by GNU TAR don't keep
166*f6dc9357SAndroid Build Coastguard Worker   whole information about original level of precision,
167*f6dc9357SAndroid Build Coastguard Worker   and timestamp are stored in reduced form, where tail zero
168*f6dc9357SAndroid Build Coastguard Worker   digits after point are removed.
169*f6dc9357SAndroid Build Coastguard Worker   So 7-Zip can return different precision levels for different items for such TAR archives.
170*f6dc9357SAndroid Build Coastguard Worker */
171*f6dc9357SAndroid Build Coastguard Worker 
172*f6dc9357SAndroid Build Coastguard Worker /*
173*f6dc9357SAndroid Build Coastguard Worker TimePrec returned by IOutArchive::GetFileTimeType()
174*f6dc9357SAndroid Build Coastguard Worker is used only for updating, when we compare MTime timestamp
175*f6dc9357SAndroid Build Coastguard Worker from archive with timestamp from directory.
176*f6dc9357SAndroid Build Coastguard Worker */
177*f6dc9357SAndroid Build Coastguard Worker 
178*f6dc9357SAndroid Build Coastguard Worker #endif
179