otrx: make crc32 table global for further optimizations
So far we got only one generic function accessing this table, but implementing optimizations will require calculating crc32 in other code parts as well. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 46077
This commit is contained in:
parent
933b588e25
commit
c13dede6b1
1 changed files with 68 additions and 67 deletions
|
@ -48,8 +48,7 @@ char *partition[TRX_MAX_PARTS] = {};
|
|||
* CRC32
|
||||
**************************************************/
|
||||
|
||||
uint32_t otrx_crc32(uint8_t *buf, size_t len) {
|
||||
static const uint32_t t[] = {
|
||||
static const uint32_t crc32_tbl[] = {
|
||||
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
|
||||
0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
|
||||
0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
|
||||
|
@ -114,11 +113,13 @@ uint32_t otrx_crc32(uint8_t *buf, size_t len) {
|
|||
0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
|
||||
0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
|
||||
0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,
|
||||
};
|
||||
};
|
||||
|
||||
uint32_t otrx_crc32(uint8_t *buf, size_t len) {
|
||||
uint32_t crc = 0xffffffff;
|
||||
|
||||
while (len) {
|
||||
crc = t[(crc ^ *buf) & 0xff] ^ (crc >> 8);
|
||||
crc = crc32_tbl[(crc ^ *buf) & 0xff] ^ (crc >> 8);
|
||||
buf++;
|
||||
len--;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue