编译make2yaffsimage
时间:2010-12-01 来源:chenzhufly
编译make2yaffsimage
最近弄yaffs,但是CVS上下的无法编译make2yaffsimage,提示yaffs_PackTags2()函数传入的参数不对,看源代码发现,传入的参数少一个,google了一下,解决了问题,详见以下patch: diff --git a/utils/mkyaffs2image.c b/utils/mkyaffs2image.c index 9939658..5b6c0c6 100644 --- a/utils/mkyaffs2image.c +++ b/utils/mkyaffs2image.c @@ -182,7 +182,7 @@ static int write_chunk(__u8 *data, __u32 objId, __u32 chunkId, __u32 nBytes) nPages++; - yaffs_PackTags2(&pt,&t); + yaffs_PackTags2_no_dev(&pt,&t); // return write(outFile,&pt,sizeof(yaffs_PackedTags2)); return write(outFile,&pt,spareSize); diff --git a/yaffs_packedtags2.c b/yaffs_packedtags2.c index e33e8a3..e8d94dc 100644 --- a/yaffs_packedtags2.c +++ b/yaffs_packedtags2.c @@ -107,6 +107,15 @@ void yaffs_PackTags2(yaffs_Device *dev, yaffs_PackedTags2 *pt, const yaffs_Exten &pt->ecc); } +void yaffs_PackTags2_no_dev(yaffs_PackedTags2 *pt, const yaffs_ExtendedTags *t){ + + yaffs_PackTags2TagsPart(&pt->t, t); + yaffs_ECCCalculateOther((unsigned char *)&pt->t, + sizeof(yaffs_PackedTags2TagsPart), + &pt->ecc); +} + + void yaffs_UnpackTags2TagsPart(yaffs_ExtendedTags *t, yaffs_PackedTags2TagsPart *ptt) diff --git a/yaffs_packedtags2.h b/yaffs_packedtags2.h index d90c6cb..fb1d49b 100644 --- a/yaffs_packedtags2.h +++ b/yaffs_packedtags2.h @@ -37,6 +37,8 @@ typedef struct { void yaffs_PackTags2(yaffs_Device *dev, yaffs_PackedTags2 *pt, const yaffs_ExtendedTags *t); void yaffs_UnpackTags2(yaffs_Device *dev, yaffs_ExtendedTags *t, yaffs_PackedTags2 *pt); +void yaffs_PackTags2_no_dev(yaffs_PackedTags2 *pt, const yaffs_ExtendedTags *t); + /* Only the tags part (no ECC for use with inband tags */ void yaffs_PackTags2TagsPart(yaffs_PackedTags2TagsPart *pt, const yaffs_ExtendedTags *t); void yaffs_UnpackTags2TagsPart(yaffs_ExtendedTags *t, yaffs_PackedTags2TagsPart *pt); 相关阅读 更多 +