有关编译yaffs2的问题

有关编译yaffs2的问题

我是2009.10.27号下载的yaffs源代码,我没想到会有这么低级的错误,在yaffs2/utils/mkyaffs2image.c中的write_chunk()调用yaffs_PackTags2()时,yaffs_PackTags2()竟然少一个参数。

我們可使用以下的指令去抓取最新的YAFFS的程式碼:

export CVSROOT=:pserver:[email protected]:/home/aleph1/cvs cvs logon

cvs checkout yaffs2

當我們去compile yaffs2/utils/mkyaffs2image.c 會有error:

mkyaffs2image.c:185: error: too few arguments to function ‘yaffs_PackTags2’

yaffs_PackTags2()宣告在yaffs2/yaffs_packedtags2.h:

void yaffs_PackTags2(yaffs_Device *dev, yaffs_PackedTags2 *pt, const yaffs_ExtendedTags *t);

而yaffs2/utils/mkyaffs2image.c在write_chunk()呼叫他:

static int write_chunk(__u8 *data, __u32 objId, __u32 chunkId, __u32 nBytes){

...

yaffs_PackTags2(&pt,&t);

...

}

yaffs2/yaffs_packedtags2.h並沒定義

void yaffs_PackTags2(yaffs_PackedTags2 *pt, const yaffs_ExtendedTags *t);

yaffs_PackTags2()定義在yaffs2/yaffs_packedtags2.c:

void yaffs_PackTags2(yaffs_Device *dev, yaffs_PackedTags2 *pt, const yaffs_ExtendedTags *t)

{

yaffs_PackTags2TagsPart(&pt->t, t);

if(!dev->noTagsECC)

yaffs_ECCCalculateOther((unsigned char *)&pt->t,

sizeof(yaffs_PackedTags2TagsPart),

&pt->ecc);

}

所以yaffs_Device *dev是用來判斷dev->noTagsECC是否被assign 1,查看yaffs_fs.c

static struct super_block *yaffs_internal_read_super(int yaffsVersion,

struct super_block *sb,

void *data, int silent)

{

....

#ifdef CONFIG_YAFFS_DISABLE_TAGS_ECC

dev->noTagsECC = 1;

#endif

....

}

內定CONFIG_YAFFS_DISABLE_TAGS_ECC不會被定義,所以dev->noTagsECC為0

所以我們在:

1. yaffs2/yaffs_packedtags2.h加入下一行:

void yaffs_PackTags2_without_dev(yaffs_PackedTags2 *pt, const yaffs_ExtendedTags *t);

2. yaffs2/yaffs_packedtags2.c加入:

void yaffs_PackTags2_without_dev(yaffs_PackedTags2 *pt, const yaffs_ExtendedTags *t){

yaffs_PackTags2TagsPart(&pt->t, t);

yaffs_ECCCalculateOther((unsigned char *)&pt->t,

sizeof(yaffs_PackedTags2TagsPart),

&pt->ecc);

}

3.改yaffs2/utils/mkyaffs2image.c的write_chunk()

static int write_chunk(__u8 *data, __u32 objId, __u32 chunkId, __u32 nBytes){

...

yaffs_PackTags2_without_dev(&pt,&t);

...

}

 原文地址 http://203.208.39.132/search?q=cache:yKHyV3C-EfUJ:qustion1234.blogspot.com/+mkyaffs2image.c:+too+few

你可能感兴趣的:(linux&,kernel&,dri)