mirror of
https://github.com/aaru-dps/libaaruformat.git
synced 2025-12-16 19:24:40 +00:00
Add DDT entry setting function and integrate it into write process
This commit is contained in:
@@ -45,6 +45,8 @@ int32_t decode_ddt_single_level_v2(aaruformatContext *ctx, uint64_t sectorAddr
|
|||||||
uint64_t *blockOffset, uint8_t *sectorStatus);
|
uint64_t *blockOffset, uint8_t *sectorStatus);
|
||||||
int32_t decode_ddt_multi_level_v2(aaruformatContext *ctx, uint64_t sectorAddress, uint64_t *offset,
|
int32_t decode_ddt_multi_level_v2(aaruformatContext *ctx, uint64_t sectorAddress, uint64_t *offset,
|
||||||
uint64_t *blockOffset, uint8_t *sectorStatus);
|
uint64_t *blockOffset, uint8_t *sectorStatus);
|
||||||
|
void set_ddt_entry_v2(aaruformatContext *ctx, uint64_t sectorAddress, uint64_t offset, uint64_t blockOffset,
|
||||||
|
uint8_t sectorStatus);
|
||||||
void set_ddt_single_level_v2(aaruformatContext *ctx, uint64_t sectorAddress, bool negative, uint64_t offset,
|
void set_ddt_single_level_v2(aaruformatContext *ctx, uint64_t sectorAddress, bool negative, uint64_t offset,
|
||||||
uint64_t blockOffset, uint8_t sectorStatus);
|
uint64_t blockOffset, uint8_t sectorStatus);
|
||||||
void set_ddt_multi_level_v2(aaruformatContext *ctx, uint64_t sectorAddress, bool negative, uint64_t offset,
|
void set_ddt_multi_level_v2(aaruformatContext *ctx, uint64_t sectorAddress, bool negative, uint64_t offset,
|
||||||
|
|||||||
@@ -120,8 +120,7 @@ int32_t aaruf_write_sector(void *context, uint64_t sectorAddress, uint8_t *data,
|
|||||||
pos / (1 << ctx->userDataDdtHeader.blockAlignmentShift) * (1 << ctx->userDataDdtHeader.blockAlignmentShift);
|
pos / (1 << ctx->userDataDdtHeader.blockAlignmentShift) * (1 << ctx->userDataDdtHeader.blockAlignmentShift);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: DDT entry
|
set_ddt_entry_v2(ctx, sectorAddress, ctx->currentBlockOffset, ctx->nextBlockPosition, sectorStatus);
|
||||||
|
|
||||||
TRACE("Copying data to writing buffer at position %zu", ctx->writingBufferPosition);
|
TRACE("Copying data to writing buffer at position %zu", ctx->writingBufferPosition);
|
||||||
memcpy(ctx->writingBuffer, data, length);
|
memcpy(ctx->writingBuffer, data, length);
|
||||||
TRACE("Advancing writing buffer position to %zu", ctx->writingBufferPosition + length);
|
TRACE("Advancing writing buffer position to %zu", ctx->writingBufferPosition + length);
|
||||||
|
|||||||
Reference in New Issue
Block a user