chromium/third_party/unrar/src/headers5.hpp

#ifndef _RAR_HEADERS5_
#define _RAR_HEADERS5_

#define SIZEOF_MARKHEAD5
#define SIZEOF_SHORTBLOCKHEAD5

// RAR 5.0 block flags common for all blocks.

// Additional extra area is present in the end of block header.
#define HFL_EXTRA
// Additional data area is present in the end of block header.
#define HFL_DATA
// Unknown blocks with this flag must be skipped when updating an archive.
#define HFL_SKIPIFUNKNOWN
// Data area of this block is continuing from previous volume.
#define HFL_SPLITBEFORE
// Data area of this block is continuing in next volume.
#define HFL_SPLITAFTER
// Block depends on preceding file block.
#define HFL_CHILD
// Preserve a child block if host is modified.
#define HFL_INHERITED

// RAR 5.0 main archive header specific flags.
#define MHFL_VOLUME
#define MHFL_VOLNUMBER
#define MHFL_SOLID
#define MHFL_PROTECT
#define MHFL_LOCK

// RAR 5.0 file header specific flags.
#define FHFL_DIRECTORY
#define FHFL_UTIME
#define FHFL_CRC32
#define FHFL_UNPUNKNOWN

// RAR 5.0 end of archive header specific flags.
#define EHFL_NEXTVOLUME

// RAR 5.0 archive encryption header specific flags.
#define CHFL_CRYPT_PSWCHECK


// RAR 5.0 file compression flags.
#define FCI_ALGO_BIT0
#define FCI_ALGO_BIT1
#define FCI_ALGO_BIT2
#define FCI_ALGO_BIT3
#define FCI_ALGO_BIT4
#define FCI_ALGO_BIT5
#define FCI_SOLID
#define FCI_METHOD_BIT0
#define FCI_METHOD_BIT1
#define FCI_METHOD_BIT2
#define FCI_DICT_BIT0
#define FCI_DICT_BIT1
#define FCI_DICT_BIT2
#define FCI_DICT_BIT3
#define FCI_DICT_BIT4
#define FCI_DICT_FRACT0
#define FCI_DICT_FRACT1
#define FCI_DICT_FRACT2
#define FCI_DICT_FRACT3
#define FCI_DICT_FRACT4
#define FCI_RAR5_COMPAT

// Main header extra field values.
#define MHEXTRA_LOCATOR
#define MHEXTRA_METADATA

// Flags for MHEXTRA_LOCATOR.
#define MHEXTRA_LOCATOR_QLIST
#define MHEXTRA_LOCATOR_RR

// Flags for MHEXTRA_METADATA.
#define MHEXTRA_METADATA_NAME
#define MHEXTRA_METADATA_CTIME
#define MHEXTRA_METADATA_UNIXTIME
#define MHEXTRA_METADATA_UNIX_NS

// File and service header extra field values.
#define FHEXTRA_CRYPT
#define FHEXTRA_HASH
#define FHEXTRA_HTIME
#define FHEXTRA_VERSION
#define FHEXTRA_REDIR
#define FHEXTRA_UOWNER
#define FHEXTRA_SUBDATA


// Hash type values for FHEXTRA_HASH.
#define FHEXTRA_HASH_BLAKE2

// Flags for FHEXTRA_HTIME.
#define FHEXTRA_HTIME_UNIXTIME
#define FHEXTRA_HTIME_MTIME
#define FHEXTRA_HTIME_CTIME
#define FHEXTRA_HTIME_ATIME
#define FHEXTRA_HTIME_UNIX_NS

// Flags for FHEXTRA_CRYPT.
#define FHEXTRA_CRYPT_PSWCHECK
#define FHEXTRA_CRYPT_HASHMAC

// Flags for FHEXTRA_REDIR.
#define FHEXTRA_REDIR_DIR

// Flags for FHEXTRA_UOWNER.
#define FHEXTRA_UOWNER_UNAME
#define FHEXTRA_UOWNER_GNAME
#define FHEXTRA_UOWNER_NUMUID
#define FHEXTRA_UOWNER_NUMGID

#endif