X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_packedtags2.c;h=69d78b2df3dbc5abcac4e5840fd42c9adaba3946;hp=5cc68af9e7f3be9eb277ba981d44487c513fe1e1;hb=a8e9cfa2968a5f16ff9ae578cc1d3202ebef8725;hpb=84699e12e914cb78ae3a1da48c99ed679b934153 diff --git a/yaffs_packedtags2.c b/yaffs_packedtags2.c index 5cc68af..69d78b2 100644 --- a/yaffs_packedtags2.c +++ b/yaffs_packedtags2.c @@ -114,20 +114,34 @@ void yaffs_UnpackTags2(yaffs_ExtendedTags * t, yaffs_PackedTags2 * pt) /* Page is in use */ #ifdef YAFFS_IGNORE_TAGS_ECC { - t->eccResult = 0; + t->eccResult = YAFFS_ECC_RESULT_NO_ERROR; } #else { yaffs_ECCOther ecc; + int result; yaffs_ECCCalculateOther((unsigned char *)&pt->t, sizeof (yaffs_PackedTags2TagsPart), &ecc); - t->eccResult = + result = yaffs_ECCCorrectOther((unsigned char *)&pt->t, sizeof (yaffs_PackedTags2TagsPart), &pt->ecc, &ecc); + switch(result){ + case 0: + t->eccResult = YAFFS_ECC_RESULT_NO_ERROR; + break; + case 1: + t->eccResult = YAFFS_ECC_RESULT_FIXED; + break; + case -1: + t->eccResult = YAFFS_ECC_RESULT_UNFIXED; + break; + default: + t->eccResult = YAFFS_ECC_RESULT_UNKNOWN; + } } #endif t->blockBad = 0;