summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Manning <cdhmanning@gmail.com>2011-04-29 17:08:07 +1200
committerCharles Manning <cdhmanning@gmail.com>2011-05-19 13:24:32 +1200
commit99b65b5903a088ae36a4fd158606009382d93163 (patch)
tree29087d559f4d1bdf669fdb9913a461a6868ae9e5
parenta608236b1929a912dea67fb2afc92784c4a454e7 (diff)
yaffs: Fix compilation of utils
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
-rw-r--r--direct/yaffs_hweight.c8
-rw-r--r--utils/Makefile33
-rw-r--r--utils/mkyaffs2image.c30
-rw-r--r--utils/mkyaffsimage.c39
4 files changed, 45 insertions, 65 deletions
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)