X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_tagscompat.c;h=f6c40535088c05a9317c19a8324980ef6d5fa028;hp=3e5e8a40b22cc25c4c962f74cdbe903b779e6005;hb=49942b13d7cfbdba72c18de0f37d16d81b4372a8;hpb=9f0dab8f26ae946761792c1b2de425b3232ee6e1 diff --git a/yaffs_tagscompat.c b/yaffs_tagscompat.c index 3e5e8a4..f6c4053 100644 --- a/yaffs_tagscompat.c +++ b/yaffs_tagscompat.c @@ -418,7 +418,16 @@ int yaffs_TagsCompatabilityWriteChunkWithTagsToNAND(yaffs_Device * dev, } else { tags.objectId = eTags->objectId; tags.chunkId = eTags->chunkId; - tags.byteCount = eTags->byteCount; + + tags.byteCountLSB = eTags->byteCount & 0x3ff; + + if(dev->nDataBytesPerChunk >= 1024){ + tags.byteCountMSB = (eTags->byteCount >> 10) & 3; + } else { + tags.byteCountMSB = 3; + } + + tags.serialNumber = eTags->serialNumber; if (!dev->useNANDECC && data) { @@ -470,7 +479,11 @@ int yaffs_TagsCompatabilityReadChunkWithTagsFromNAND(yaffs_Device * dev, eTags->objectId = tags.objectId; eTags->chunkId = tags.chunkId; - eTags->byteCount = tags.byteCount; + eTags->byteCount = tags.byteCountLSB; + + if(dev->nDataBytesPerChunk >= 1024) + eTags->byteCount |= (((unsigned) tags.byteCountMSB) << 10); + eTags->serialNumber = tags.serialNumber; } }