diff --git a/include/internal.h b/include/internal.h index dc0ea3e..549c159 100644 --- a/include/internal.h +++ b/include/internal.h @@ -45,6 +45,8 @@ int32_t decode_ddt_single_level_v2(aaruformatContext *ctx, uint64_t sectorAddr uint64_t *blockOffset, uint8_t *sectorStatus); int32_t decode_ddt_multi_level_v2(aaruformatContext *ctx, uint64_t sectorAddress, uint64_t *offset, 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, uint64_t blockOffset, uint8_t sectorStatus); void set_ddt_multi_level_v2(aaruformatContext *ctx, uint64_t sectorAddress, bool negative, uint64_t offset, diff --git a/src/write.c b/src/write.c index 970b0c4..1bcb2d6 100644 --- a/src/write.c +++ b/src/write.c @@ -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); } - // 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); memcpy(ctx->writingBuffer, data, length); TRACE("Advancing writing buffer position to %zu", ctx->writingBufferPosition + length);