From: Charles Manning Date: Fri, 29 Apr 2011 05:08:07 +0000 (+1200) Subject: yaffs: Fix compilation of utils X-Git-Tag: pre-driver-refactoring~41^2~8 X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=commitdiff_plain;h=99b65b5903a088ae36a4fd158606009382d93163 yaffs: Fix compilation of utils Signed-off-by: Charles Manning --- diff --git a/direct/yaffs_hweight.c b/direct/yaffs_hweight.c index c00517e..9851683 100644 --- a/direct/yaffs_hweight.c +++ b/direct/yaffs_hweight.c @@ -45,9 +45,9 @@ int yaffs_hweight8(u8 x) int yaffs_hweight32(u32 x) { - return hweight8(x & 0xff) + - hweight8((x >> 8) & 0xff) + - hweight8((x >> 16) & 0xff) + - hweight8((x >> 24) & 0xff); + return yaffs_hweight8(x & 0xff) + + yaffs_hweight8((x >> 8) & 0xff) + + yaffs_hweight8((x >> 16) & 0xff) + + yaffs_hweight8((x >> 24) & 0xff); } diff --git a/utils/Makefile b/utils/Makefile index 49bf03b..710ebbf 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -16,7 +16,7 @@ #KERNELDIR = /usr/src/kernel-headers-2.4.18 -CFLAGS = -I/usr/include -I.. -O2 -Wall -DCONFIG_YAFFS_UTIL +CFLAGS = -O2 -Wall -DCONFIG_YAFFS_UTIL CFLAGS+= -Wshadow -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations CFLAGS+= -Wmissing-prototypes -Wredundant-decls -Wnested-externs -Winline @@ -25,30 +25,43 @@ MAKETOOLS = CC=$(MAKETOOLS)gcc -COMMONLINKS = yaffs_ecc.c -COMMONOBJS = $(COMMONLINKS:.c=.o) +COMMON_BASE_C_LINKS = yaffs_ecc.c +COMMON_BASE_LINKS = $(COMMON_BASE_C_LINKS) yaffs_ecc.h yaffs_guts.h yaffs_packedtags2.h yaffs_trace.h +COMMON_DIRECT_C_LINKS = yaffs_hweight.c +COMMON_C_LINKS = $(COMMON_DIRECT_C_LINKS) $(COMMON_BASE_C_LINKS) +COMMON_DIRECT_LINKS= $(COMMON_DIRECT_C_LINKS) yportenv.h yaffs_hweight.h yaffs_list.h +COMMONOBJS = $(COMMON_C_LINKS:.c=.o) MKYAFFSSOURCES = mkyaffsimage.c MKYAFFSIMAGEOBJS = $(MKYAFFSSOURCES:.c=.o) MKYAFFS2SOURCES = mkyaffs2image.c -MKYAFFS2LINKS = yaffs_packedtags2.c yaffs_tagsvalidity.c +MKYAFFS2LINKS = yaffs_packedtags2.c MKYAFFS2IMAGEOBJS = $(MKYAFFS2SOURCES:.c=.o) $(MKYAFFS2LINKS:.c=.o) +BASE_LINKS = $(MKYAFFSLINKS) $(MKYAFFS2LINKS) $(COMMON_BASE_LINKS) +DIRECT_LINKS = $(MKYAFFS_DIRECT_LINKS) $(MKYAFFS2_DIRECT_LINKS) $(COMMON_DIRECT_LINKS) +ALL_LINKS = $(BASE_LINKS) $(DIRECT_LINKS) + all: mkyaffsimage mkyaffs2image -$(COMMONLINKS) $(MKYAFFSLINKS) $(MKYAFFS2LINKS): +$(BASE_LINKS): ln -s ../$@ $@ +$(DIRECT_LINKS): + ln -s ../direct/$@ $@ + +$(COMMONOBJS) $(MKYAFFSIMAGEOBJS) $(MKYAFFS2IMAGEOBJS) : $(ALL_LINKS) + $(COMMONOBJS) $(MKYAFFSIMAGEOBJS) $(MKYAFFS2IMAGEOBJS) : %.o: %.c $(CC) -c $(CFLAGS) $< -o $@ -mkyaffsimage: $(COMMONOBJS) $(MKYAFFSIMAGEOBJS) - $(CC) -o $@ $(COMMONOBJS) $(MKYAFFSIMAGEOBJS) +mkyaffsimage: $(MKYAFFSIMAGEOBJS) $(COMMONOBJS) + $(CC) -o $@ $^ -mkyaffs2image: $(COMMONOBJS) $(MKYAFFS2IMAGEOBJS) - $(CC) -o $@ $(COMMONOBJS) $(MKYAFFS2IMAGEOBJS) +mkyaffs2image: $(MKYAFFS2IMAGEOBJS) $(COMMONOBJS) + $(CC) -o $@ $^ clean: - rm -f $(COMMONOBJS) $(MKYAFFSIMAGEOBJS) $(MKYAFFS2IMAGEOBJS) $(COMMONLINKS) $(MKYAFFSLINKS) $(MKYAFFS2LINKS) mkyaffsimage mkyaffs2image core + rm -f $(COMMONOBJS) $(MKYAFFSIMAGEOBJS) $(MKYAFFS2IMAGEOBJS) $(ALL_LINKS) mkyaffsimage mkyaffs2image core diff --git a/utils/mkyaffs2image.c b/utils/mkyaffs2image.c index 2ad8edb..5292b66 100644 --- a/utils/mkyaffs2image.c +++ b/utils/mkyaffs2image.c @@ -34,7 +34,6 @@ #include "yaffs_ecc.h" #include "yaffs_guts.h" -#include "yaffs_tagsvalidity.h" #include "yaffs_packedtags2.h" unsigned yaffs_trace_mask=0; @@ -188,7 +187,7 @@ static int write_chunk(u8 *data, u32 id, u32 chunk_id, u32 n_bytes) if (write(outFile,data,chunkSize) != chunkSize) fatal("write"); - yaffs_init_tags(&t); + memset(&t, 0, sizeof(t)); t.chunk_id = chunk_id; // t.serial_number = 0; @@ -230,52 +229,41 @@ static int write_chunk(u8 *data, u32 id, u32 chunk_id, u32 n_bytes) // This one is easier, since the types are more standard. No funky shifts here. static void object_header_little_to_big_endian(struct yaffs_obj_hdr* oh) { - int i; oh->type = SWAP32(oh->type); // GCC makes enums 32 bits. oh->parent_obj_id = SWAP32(oh->parent_obj_id); // int oh->sum_no_longer_used = SWAP16(oh->sum_no_longer_used); // u16 - Not used, but done for completeness. // name = skip. Char array. Not swapped. oh->yst_mode = SWAP32(oh->yst_mode); -#ifdef CONFIG_YAFFS_WINCE // WinCE doesn't implement this, but we need to just in case. - // In fact, WinCE would be *THE* place where this would be an issue. - // Why? WINCE is little-endian only. - { - int n = sizeof(oh->not_for_wince)/sizeof(oh->not_for_wince[0]); - for(i = 0; i < n; i++) - oh->not_for_wince[i] = SWAP32(oh->not_for_wince[i]); - } -#else // Regular POSIX. oh->yst_uid = SWAP32(oh->yst_uid); oh->yst_gid = SWAP32(oh->yst_gid); oh->yst_atime = SWAP32(oh->yst_atime); oh->yst_mtime = SWAP32(oh->yst_mtime); oh->yst_ctime = SWAP32(oh->yst_ctime); -#endif oh->file_size = SWAP32(oh->file_size); // Aiee. An int... signed, at that! oh->equiv_id = SWAP32(oh->equiv_id); // alias - char array. oh->yst_rdev = SWAP32(oh->yst_rdev); -#ifdef CONFIG_YAFFS_WINCE oh->win_ctime[0] = SWAP32(oh->win_ctime[0]); oh->win_ctime[1] = SWAP32(oh->win_ctime[1]); oh->win_atime[0] = SWAP32(oh->win_atime[0]); oh->win_atime[1] = SWAP32(oh->win_atime[1]); oh->win_mtime[0] = SWAP32(oh->win_mtime[0]); oh->win_mtime[1] = SWAP32(oh->win_mtime[1]); -#else - { - int n = sizeof(oh->room_to_grow)/sizeof(oh->room_to_grow[0]); - for(i=0; i < n; i++) - oh->room_to_grow[i] = SWAP32(oh->room_to_grow[i]); - } -#endif + oh->reserved[0] = SWAP32(oh->reserved[0]); + oh->reserved[1] = SWAP32(oh->reserved[1]); + + oh->inband_shadowed_obj_id = SWAP32(oh->inband_shadowed_obj_id); + oh->inband_is_shrink = SWAP32(oh->inband_is_shrink); + oh->shadows_obj = SWAP32(oh->shadows_obj); + oh->is_shrink = SWAP32(oh->is_shrink); } + static int write_object_header(int id, enum yaffs_obj_type t, struct stat *s, int parent, const char *name, int equivalentObj, const char * alias) { u8 bytes[chunkSize]; diff --git a/utils/mkyaffsimage.c b/utils/mkyaffsimage.c index fd3aad6..49636b1 100644 --- a/utils/mkyaffsimage.c +++ b/utils/mkyaffsimage.c @@ -275,54 +275,33 @@ static void object_header_little_to_big_endian(struct yaffs_obj_hdr* oh) oh->sum_no_longer_used = SWAP16(oh->sum_no_longer_used); // u16 - Not used, but done for completeness. // name = skip. Char array. Not swapped. oh->yst_mode = SWAP32(oh->yst_mode); -#ifdef CONFIG_YAFFS_WINCE // WinCE doesn't implement this, but we need to just in case. - // In fact, WinCE would be *THE* place where this would be an issue! - oh->not_for_wince[0] = SWAP32(oh->not_for_wince[0]); - oh->not_for_wince[1] = SWAP32(oh->not_for_wince[1]); - oh->not_for_wince[2] = SWAP32(oh->not_for_wince[2]); - oh->not_for_wince[3] = SWAP32(oh->not_for_wince[3]); - oh->not_for_wince[4] = SWAP32(oh->not_for_wince[4]); -#else + // Regular POSIX. oh->yst_uid = SWAP32(oh->yst_uid); oh->yst_gid = SWAP32(oh->yst_gid); oh->yst_atime = SWAP32(oh->yst_atime); oh->yst_mtime = SWAP32(oh->yst_mtime); oh->yst_ctime = SWAP32(oh->yst_ctime); -#endif oh->file_size = SWAP32(oh->file_size); // Aiee. An int... signed, at that! oh->equiv_id = SWAP32(oh->equiv_id); // alias - char array. oh->yst_rdev = SWAP32(oh->yst_rdev); -#ifdef CONFIG_YAFFS_WINCE oh->win_ctime[0] = SWAP32(oh->win_ctime[0]); oh->win_ctime[1] = SWAP32(oh->win_ctime[1]); oh->win_atime[0] = SWAP32(oh->win_atime[0]); oh->win_atime[1] = SWAP32(oh->win_atime[1]); oh->win_mtime[0] = SWAP32(oh->win_mtime[0]); oh->win_mtime[1] = SWAP32(oh->win_mtime[1]); - oh->room_to_grow[0] = SWAP32(oh->room_to_grow[0]); - oh->room_to_grow[1] = SWAP32(oh->room_to_grow[1]); - oh->room_to_grow[2] = SWAP32(oh->room_to_grow[2]); - oh->room_to_grow[3] = SWAP32(oh->room_to_grow[3]); - oh->room_to_grow[4] = SWAP32(oh->room_to_grow[4]); - oh->room_to_grow[5] = SWAP32(oh->room_to_grow[5]); -#else - oh->room_to_grow[0] = SWAP32(oh->room_to_grow[0]); - oh->room_to_grow[1] = SWAP32(oh->room_to_grow[1]); - oh->room_to_grow[2] = SWAP32(oh->room_to_grow[2]); - oh->room_to_grow[3] = SWAP32(oh->room_to_grow[3]); - oh->room_to_grow[4] = SWAP32(oh->room_to_grow[4]); - oh->room_to_grow[5] = SWAP32(oh->room_to_grow[5]); - oh->room_to_grow[6] = SWAP32(oh->room_to_grow[6]); - oh->room_to_grow[7] = SWAP32(oh->room_to_grow[7]); - oh->room_to_grow[8] = SWAP32(oh->room_to_grow[8]); - oh->room_to_grow[9] = SWAP32(oh->room_to_grow[9]); - oh->room_to_grow[10] = SWAP32(oh->room_to_grow[10]); - oh->room_to_grow[11] = SWAP32(oh->room_to_grow[11]); -#endif + + oh->reserved[0] = SWAP32(oh->reserved[0]); + oh->reserved[1] = SWAP32(oh->reserved[1]); + + oh->inband_shadowed_obj_id = SWAP32(oh->inband_shadowed_obj_id); + oh->inband_is_shrink = SWAP32(oh->inband_is_shrink); + oh->shadows_obj = SWAP32(oh->shadows_obj); + oh->is_shrink = SWAP32(oh->is_shrink); } static int write_object_header(int obj_id, enum yaffs_obj_type t, struct stat *s, int parent, const char *name, int equivalentObj, const char * alias)