mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
crc: move static table
Move static table upward in the code so it can be shared with another 'crc' implementation.
This commit is contained in:
parent
d07e273aff
commit
f55c949410
@ -18,14 +18,11 @@
|
|||||||
#include "lib/misc/crc.h"
|
#include "lib/misc/crc.h"
|
||||||
#include "lib/mm/xlate.h"
|
#include "lib/mm/xlate.h"
|
||||||
|
|
||||||
/* Calculate an endian-independent CRC of supplied buffer */
|
/*
|
||||||
#ifndef DEBUG_CRC32
|
* CRC-32 byte lookup table generated by crc_gen.c
|
||||||
uint32_t calc_crc(uint32_t initial, const uint8_t *buf, uint32_t size)
|
*
|
||||||
#else
|
* Precomputed lookup table for CRC computed with 0xedb88320 polynomial.
|
||||||
static uint32_t _calc_crc_new(uint32_t initial, const uint8_t *buf, uint32_t size)
|
*/
|
||||||
#endif
|
|
||||||
{
|
|
||||||
/* CRC-32 byte lookup table generated by crc_gen.c */
|
|
||||||
static const uint32_t _crctab[] = {
|
static const uint32_t _crctab[] = {
|
||||||
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
|
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
|
||||||
0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
|
0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
|
||||||
@ -60,6 +57,14 @@ static uint32_t _calc_crc_new(uint32_t initial, const uint8_t *buf, uint32_t siz
|
|||||||
0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
|
0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
|
||||||
0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,
|
0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Calculate an endian-independent CRC of supplied buffer */
|
||||||
|
#ifndef DEBUG_CRC32
|
||||||
|
uint32_t calc_crc(uint32_t initial, const uint8_t *buf, uint32_t size)
|
||||||
|
#else
|
||||||
|
static uint32_t _calc_crc_new(uint32_t initial, const uint8_t *buf, uint32_t size)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
const uint32_t *start = (const uint32_t *) buf;
|
const uint32_t *start = (const uint32_t *) buf;
|
||||||
const uint32_t *end = (const uint32_t *) (buf + (size & 0xfffffffc));
|
const uint32_t *end = (const uint32_t *) (buf + (size & 0xfffffffc));
|
||||||
uint32_t crc = initial;
|
uint32_t crc = initial;
|
||||||
|
Loading…
Reference in New Issue
Block a user