
On 2013-05-09 22:43, Wolfgang Denk wrote:
Dear Adnan Ali,
In message 518BB8C7.3090704@codethink.co.uk you wrote:
- Why do we have to calculate the crc32c_table[] at runtime? Our regular CRC code uses a pre-calculated table; we should do the
same
here.
This is part of the port. But pre-calculated table can be
manually created.
Not manually. It should be done at compile time, suing basically the same code.
- Compare the code for crc32c_cal() in the patch with the
definition
of DO_CRC(x) in "lib/crc32.c" - to me, it appears to be the
same for
little endian code (it is redundant?), but different for big
endian
systems - which raises the question if this code has ever been tested on a BE machine?
My code uses lib/crc32.c and i have only tested it on mx53loco manchine.
I tend to believe thatit will not work on a big endian system, then.
Sorry I meant to say my code uses lib/crc32_c.c. The lib/crc32.c is main line so you think main line code is not for big endian. What can i say.
- The code claims to be derived from "Linux kernel
crypto/crc32c.c";
but I cannot find such code in that file.
I think yes but part of part from syslinux. I have also added SHA1 of commit so don't know.
Please provide an exact reference where this code is coming from.
Just clone syslinux and code is in ~/syslinux/core/fs/btrfs/crc32c.h
- The implementation of crc32c_cal() suffers from a few other
problems
(like not triggering the watchdog, which will cause problems on systems that use one).
I think that is true as its not using main line crc32 code.
We probably should do that, then.
To use that code probably i need to create static crc32 table.
Thanks.
Wolfgang Denk