mirror of
https://github.com/aaru-dps/imhex-patterns.git
synced 2025-12-16 19:24:39 +00:00
Add index v3 to AaruFormat.
This commit is contained in:
@@ -724,7 +724,7 @@ enum BlockType : u32
|
|||||||
DeDuplicationTable2 = 0x32454444,
|
DeDuplicationTable2 = 0x32454444,
|
||||||
Index = 0x58444E49,
|
Index = 0x58444E49,
|
||||||
Index2 = 0x32584449,
|
Index2 = 0x32584449,
|
||||||
IndexContinuation = 0x43584449,
|
Index3 = 0x33584449,
|
||||||
GeometryBlock = 0x4D4F4547,
|
GeometryBlock = 0x4D4F4547,
|
||||||
MetadataBlock = 0x4154454D,
|
MetadataBlock = 0x4154454D,
|
||||||
TracksBlock = 0x534B5254,
|
TracksBlock = 0x534B5254,
|
||||||
@@ -1058,6 +1058,8 @@ struct CompactDiscIndexesBlock
|
|||||||
CompactDiscIndexEntry indexes[entries];
|
CompactDiscIndexEntry indexes[entries];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
using Index;
|
||||||
|
|
||||||
struct IndexEntry
|
struct IndexEntry
|
||||||
{
|
{
|
||||||
BlockType blockType;
|
BlockType blockType;
|
||||||
@@ -1077,6 +1079,7 @@ struct IndexEntry
|
|||||||
(BlockType::TapeFileBlock): TapeFileHeader *tapeFiles : u64 [[inline]];
|
(BlockType::TapeFileBlock): TapeFileHeader *tapeFiles : u64 [[inline]];
|
||||||
(BlockType::TapePartitionBlock): TapePartitionHeader *tapePartitions : u64 [[inline]];
|
(BlockType::TapePartitionBlock): TapePartitionHeader *tapePartitions : u64 [[inline]];
|
||||||
(BlockType::CompactDiscIndexesBlock): CompactDiscIndexesBlock *compactDiscIndexes : u64 [[inline]];
|
(BlockType::CompactDiscIndexesBlock): CompactDiscIndexesBlock *compactDiscIndexes : u64 [[inline]];
|
||||||
|
(BlockType::Index3): Index *index : u64 [[inline]];
|
||||||
(_): BlockType *offset : u64 [[inline]];
|
(_): BlockType *offset : u64 [[inline]];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -1087,12 +1090,14 @@ struct Index
|
|||||||
|
|
||||||
if(identifier == BlockType::Index)
|
if(identifier == BlockType::Index)
|
||||||
u16 entries;
|
u16 entries;
|
||||||
else if(identifier == BlockType::Index2)
|
else if(identifier == BlockType::Index2 || identifier == BlockType::Index3)
|
||||||
u64 entries;
|
u64 entries;
|
||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
type::Hex<u64> crc64;
|
type::Hex<u64> crc64;
|
||||||
|
if(identifier == BlockType::Index3)
|
||||||
|
u64 previous;
|
||||||
IndexEntry items[entries];
|
IndexEntry items[entries];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user