Hi All
I have fixed a problem that was being experienced with some compilers
In the definition of yaffs_BlockInfo there's a 4-bit wide field for bolding
the block state. This can be any value from 0..9 which one might hope would
fit into a 4-bit field.
Some compilers (eg. gcc) use unsigned values for enum bitfields unless one or
more of the enum entries are negative, in which case the a signed value is
used.
Some compilers (eg. MS xxx) will always use a signed value for enum bitfields
which
This means that compilations generating signed values would not work properly.
This has since been fixed by using an unsigned field instead of the enum.
diff -r1.27 yaffs_guts.h
274c274
< yaffs_BlockState blockState:4; /* One of the above block states */
---
> __u32 blockState:4; /* One of the above block states. NB use
unsigned because enum is sometimes an int */
-- Charles