- if (t->extraObjectType == YAFFS_OBJECT_TYPE_HARDLINK) {
- t->extraEquivalentObjectId = pt->t.byteCount;
- } else {
- t->extraFileLength = pt->t.byteCount;
+ if (t->extraObjectType == YAFFS_OBJECT_TYPE_HARDLINK)
+ t->extraEquivalentObjectId = ptt->byteCount;
+ else
+ t->extraFileLength = ptt->byteCount;
+ }
+ }
+
+ yaffs_DumpPackedTags2TagsPart(ptt);
+ yaffs_DumpTags2(t);
+
+}
+
+
+void yaffs_UnpackTags2(yaffs_ExtendedTags *t, yaffs_PackedTags2 *pt)
+{
+
+ yaffs_ECCResult eccResult = YAFFS_ECC_RESULT_NO_ERROR;
+
+ if (pt->t.sequenceNumber != 0xFFFFFFFF) {
+ /* Page is in use */
+#ifndef YAFFS_IGNORE_TAGS_ECC
+ {
+ yaffs_ECCOther ecc;
+ int result;
+ yaffs_ECCCalculateOther((unsigned char *)&pt->t,
+ sizeof
+ (yaffs_PackedTags2TagsPart),
+ &ecc);
+ result =
+ yaffs_ECCCorrectOther((unsigned char *)&pt->t,
+ sizeof
+ (yaffs_PackedTags2TagsPart),
+ &pt->ecc, &ecc);
+ switch (result) {
+ case 0:
+ eccResult = YAFFS_ECC_RESULT_NO_ERROR;
+ break;
+ case 1:
+ eccResult = YAFFS_ECC_RESULT_FIXED;
+ break;
+ case -1:
+ eccResult = YAFFS_ECC_RESULT_UNFIXED;
+ break;
+ default:
+ eccResult = YAFFS_ECC_RESULT_UNKNOWN;