summaryrefslogtreecommitdiff
path: root/yaffs_packedtags1.c
diff options
context:
space:
mode:
authorcharles <charles>2004-11-22 03:22:25 +0000
committercharles <charles>2004-11-22 03:22:25 +0000
commitf216bcabdaf791aa93ad2e58c1d747d2d8bd6617 (patch)
tree4ca3552100a13613ef61da8314466fa204eb7fa6 /yaffs_packedtags1.c
parenta095ce00d3a3102807fe540f77e7ec17daba967f (diff)
*** empty log message ***
Diffstat (limited to 'yaffs_packedtags1.c')
-rw-r--r--yaffs_packedtags1.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/yaffs_packedtags1.c b/yaffs_packedtags1.c
new file mode 100644
index 0000000..018eacf
--- /dev/null
+++ b/yaffs_packedtags1.c
@@ -0,0 +1,42 @@
+#include "yaffs_packedtags1.h"
+#include "yportenv.h"
+
+void yaffs_PackTags1(yaffs_PackedTags1 *pt, yaffs_ExtendedTags *t)
+{
+ pt->chunkId = t->chunkId;
+ pt->serialNumber = t->serialNumber;
+ pt->byteCount = t->byteCount;
+ pt->objectId = t->objectId;
+ pt->ecc = 0;
+ pt->deleted = (t->chunkDeleted) ? 0 : 1;
+ pt->unusedStuff = 0;
+ pt->shouldBeFF = 0xFFFFFFFF;
+
+}
+
+void yaffs_UnpackTags1(yaffs_ExtendedTags *t, yaffs_PackedTags1 *pt)
+{
+ static const __u8 allFF[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff};
+
+ if(memcmp(allFF,pt,sizeof(yaffs_PackedTags1)))
+ {
+ t->blockBad = 0;
+ if(pt->shouldBeFF != 0xFFFFFFFF)
+ {
+ t->blockBad = 1;
+ }
+ t->chunkUsed = 1;
+ t->objectId = pt->objectId;
+ t->chunkId = pt->chunkId;
+ t->byteCount = pt->byteCount;
+ t->eccResult = YAFFS_ECC_RESULT_NO_ERROR;
+ t->chunkDeleted = (pt->deleted) ? 0 : 1;
+ t->serialNumber = pt->serialNumber;
+ }
+ else
+ {
+ memset(t,0,sizeof(yaffs_ExtendedTags));
+
+ }
+}
+