Added enumerations.

This commit is contained in:
2019-03-16 18:04:41 +00:00
parent 675eed0cfb
commit 5e05135ff4
2 changed files with 258 additions and 1 deletions

View File

@@ -3,6 +3,6 @@ project(libdicformat C)
set(CMAKE_C_STANDARD 99)
add_library(libdicformat SHARED include/dicformat/consts.h)
add_library(libdicformat SHARED include/dicformat/consts.h include/dicformat/enums.h)
include_directories(include include/dicformat)

257
include/dicformat/enums.h Normal file
View File

@@ -0,0 +1,257 @@
// /***************************************************************************
// The Disc Image Chef
// ----------------------------------------------------------------------------
//
// Filename : enums.h
// Author(s) : Natalia Portillo <claunia@claunia.com>
//
// Component : libdicformat.
//
// --[ Description ] ----------------------------------------------------------
//
// Contains enumerations for DiscImageChef format disk images.
//
// --[ License ] --------------------------------------------------------------
//
// This library is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of the
// License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, see <http://www.gnu.org/licenses/>.
//
// ----------------------------------------------------------------------------
// Copyright © 2011-2019 Natalia Portillo
// ****************************************************************************/
#ifndef LIBDICFORMAT_ENUMS_H
#define LIBDICFORMAT_ENUMS_H
/** List of known compression types */
typedef enum
{
/** Not compressed */
None = 0, /** LZMA */
Lzma = 1, /** FLAC */
Flac = 2, /** LZMA in Claunia Subchannel Transform processed data */
LzmaClauniaSubchannelTransform = 3
} CompressionType;
/** List of known data types */
typedef enum
{
/** No data */
NoData = 0,
/** User data */
UserData = 1,
/** CompactDisc partial Table of Contents */
CompactDiscPartialToc = 2,
/** CompactDisc session information */
CompactDiscSessionInfo = 3,
/** CompactDisc Table of Contents */
CompactDiscToc = 4,
/** CompactDisc Power Management Area */
CompactDiscPma = 5,
/** CompactDisc Absolute Time In Pregroove */
CompactDiscAtip = 6,
/** CompactDisc Lead-in's CD-Text */
CompactDiscLeadInCdText = 7,
/** DVD Physical Format Information */
DvdPfi = 8,
/** DVD Lead-in's Copyright Management Information */
DvdLeadInCmi = 9,
/** DVD Disc Key */
DvdDiscKey = 10,
/** DVD Burst Cutting Area */
DvdBca = 11,
/** DVD DMI */
DvdDmi = 12,
/** DVD Media Identifier */
DvdMediaIdentifier = 13,
/** DVD Media Key Block */
DvdMediaKeyBlock = 14,
/** DVD-RAM Disc Definition Structure */
DvdRamDds = 15,
/** DVD-RAM Medium Status */
DvdRamMediumStatus = 16,
/** DVD-RAM Spare Area Information */
DvdRamSpareArea = 17,
/** DVD-R RMD */
DvdRRmd = 18,
/** DVD-R Pre-recorded Information */
DvdRPrerecordedInfo = 19,
/** DVD-R Media Identifier */
DvdRMediaIdentifier = 20,
/** DVD-R Physical Format Information */
DvdRPfi = 21,
/** DVD ADress In Pregroove */
DvdAdip = 22,
/** HD DVD Copy Protection Information */
HdDvdCpi = 23,
/** HD DVD Medium Status */
HdDvdMediumStatus = 24,
/** DVD DL Layer Capacity */
DvdDlLayerCapacity = 25,
/** DVD DL Middle Zone Address */
DvdDlMiddleZoneAddress = 26,
/** DVD DL Jump Interval Size */
DvdDlJumpIntervalSize = 27,
/** DVD DL Manual Layer Jump LBA */
DvdDlManualLayerJumpLba = 28,
/** Bluray Disc Information */
BlurayDi = 29,
/** Bluray Burst Cutting Area */
BlurayBca = 30,
/** Bluray Disc Definition Structure */
BlurayDds = 31,
/** Bluray Cartridge Status */
BlurayCartridgeStatus = 32,
/** Bluray Spare Area Information */
BluraySpareArea = 33,
/** AACS Volume Identifier */
AacsVolumeIdentifier = 34,
/** AACS Serial Number */
AacsSerialNumber = 35,
/** AACS Media Identifier */
AacsMediaIdentifier = 36,
/** AACS Media Key Block */
AacsMediaKeyBlock = 37,
/** AACS Data Keys */
AacsDataKeys = 38,
/** AACS LBA Extents */
AacsLbaExtents = 39,
/** CPRM Media Key Block */
CprmMediaKeyBlock = 40,
/** Recognized Layers */
HybridRecognizedLayers = 41,
/** MMC Write Protection */
ScsiMmcWriteProtection = 42,
/** MMC Disc Information */
ScsiMmcDiscInformation = 43,
/** MMC Track Resources Information */
ScsiMmcTrackResourcesInformation = 44,
/** MMC POW Resources Information */
ScsiMmcPowResourcesInformation = 45,
/** SCSI INQUIRY RESPONSE */
ScsiInquiry = 46,
/** SCSI MODE PAGE 2Ah */
ScsiModePage2A = 47,
/** ATA IDENTIFY response */
AtaIdentify = 48,
/** ATAPI IDENTIFY response */
AtapiIdentify = 49,
/** PCMCIA CIS */
PcmciaCis = 50,
/** SecureDigital CID */
SecureDigitalCid = 51,
/** SecureDigital CSD */
SecureDigitalCsd = 52,
/** SecureDigital SCR */
SecureDigitalScr = 53,
/** SecureDigital OCR */
SecureDigitalOcr = 54,
/** MultiMediaCard CID */
MultiMediaCardCid = 55,
/** MultiMediaCard CSD */
MultiMediaCardCsd = 56,
/** MultiMediaCard OCR */
MultiMediaCardOcr = 57,
/** MultiMediaCard Extended CSD */
MultiMediaCardExtendedCsd = 58,
/** Xbox Security Sector */
XboxSecuritySector = 59,
/** Floppy Lead-out */
FloppyLeadOut = 60,
/** Dvd Disc Control Block */
DvdDiscControlBlock = 61,
/** CompactDisc First track pregap */
CompactDiscFirstTrackPregap = 62,
/** CompactDisc Lead-out */
CompactDiscLeadOut = 63,
/** SCSI MODE SENSE (6) response */
ScsiModeSense6 = 64,
/** SCSI MODE SENSE (10) response */
ScsiModeSense10 = 65,
/** USB descriptors */
UsbDescriptors = 66,
/** Xbox DMI */
XboxDmi = 67,
/** Xbox Physical Format Information */
XboxPfi = 68,
/** CompactDisc sector prefix (sync, header */
CdSectorPrefix = 69,
/** CompactDisc sector suffix (edc, ecc p, ecc q) */
CdSectorSuffix = 70,
/** CompactDisc subchannel */
CdSectorSubchannel = 71,
/** Apple Profile (20 byte) tag */
AppleProfileTag = 72,
/** Apple Sony (12 byte) tag */
AppleSonyTag = 73,
/** Priam Data Tower (24 byte) tag */
PriamDataTowerTag = 74,
/** CompactDisc Media Catalogue Number (as in Lead-in), 13 bytes, ASCII */
CompactDiscMediaCatalogueNumber = 75,
/** CompactDisc sector prefix (sync, header), only incorrect stored */
CdSectorPrefixCorrected = 76,
/** CompactDisc sector suffix (edc, ecc p, ecc q), only incorrect stored */
CdSectorSuffixCorrected = 77,
/** CompactDisc MODE 2 subheader */
CompactDiscMode2Subheader = 78,
/** CompactDisc Lead-in */
CompactDiscLeadIn = 79
} DataType;
/** List of known blocks types */
typedef enum
{
/** Block containing data */
DataBlock = 0x4B4C4244,
/** Block containing a deduplication table */
DeDuplicationTable = 0X2A544444,
/** Block containing the index */
Index = 0X58444E49,
/** Block containing logical geometry */
GeometryBlock = 0x4D4F4547,
/** Block containing metadata */
MetadataBlock = 0x4154454D,
/** Block containing optical disc tracks */
TracksBlock = 0x534B5254,
/** Block containing CICM XML metadata */
CicmBlock = 0x4D434943,
/** Block containing contents checksums */
ChecksumBlock = 0x4D534B43,
/** TODO: Block containing data position measurements */
DataPositionMeasurementBlock = 0x2A4D5044,
/** TODO: Block containing a snapshot index */
SnapshotBlock = 0x50414E53,
/** TODO: Block containing how to locate the parent image */
ParentBlock = 0x50524E54,
/** Block containing an array of hardware used to create the image */
DumpHardwareBlock = 0x2A504D44,
/** TODO: Block containing list of files for a tape image */
TapeFileBlock = 0x454C4654
} BlockType;
typedef enum
{
Invalid = 0, Md5 = 1, Sha1 = 2, Sha256 = 3, SpamSum = 4
} ChecksumAlgorithm;
typedef enum
{
NotDumped = 0x10000000,
Correct = 0x20000000,
Mode2Form1Ok = 0x30000000,
Mode2Form2Ok = 0x40000000,
Mode2Form2NoCrc = 0x50000000
} CdFixFlags;
#endif //LIBDICFORMAT_ENUMS_H