From b2ea91ba57a2c3d57ec3d681b4058b115a0d3e51 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Thu, 14 Nov 2019 12:57:15 -0700 Subject: [PATCH] crc: Fix code style with crc functions Some of these have a space before the bracket. Drop it to fix the style. Add some missing function comments while here. Note that u32 and u8 cannot be used here since crc.h is included on the host side. Signed-off-by: Simon Glass Reviewed-by: Tom Rini --- cmd/i2c.c | 2 +- include/u-boot/crc.h | 75 +++++++++++++++++++++++++++++++++++++++----- lib/crc32.c | 4 +-- tools/envcrc.c | 4 +-- 4 files changed, 73 insertions(+), 12 deletions(-) diff --git a/cmd/i2c.c b/cmd/i2c.c index e0f8ece597..038f97c261 100644 --- a/cmd/i2c.c +++ b/cmd/i2c.c @@ -768,7 +768,7 @@ static int do_i2c_crc (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[] #endif if (ret) err++; - crc = crc32 (crc, &byte, 1); + crc = crc32(crc, &byte, 1); addr++; } if (err > 0) diff --git a/include/u-boot/crc.h b/include/u-boot/crc.h index b42bcda2b3..1086d2168c 100644 --- a/include/u-boot/crc.h +++ b/include/u-boot/crc.h @@ -38,9 +38,47 @@ void crc16_ccitt_wd_buf(const uint8_t *in, uint len, uint8_t *out, uint chunk_sz); /* lib/crc32.c */ -uint32_t crc32 (uint32_t, const unsigned char *, uint); -uint32_t crc32_wd (uint32_t, const unsigned char *, uint, uint); -uint32_t crc32_no_comp (uint32_t, const unsigned char *, uint); + +/** + * crc32 - Calculate the CRC32 for a block of data + * + * @crc: Input crc to chain from a previous calculution (use 0 to start a new + * calculation) + * @buf: Bytes to checksum + * @len: Number of bytes to checksum + * @return checksum value + */ +uint32_t crc32(uint32_t crc, const unsigned char *buf, uint len); + +/** + * crc32_wd - Calculate the CRC32 for a block of data (watchdog version) + * + * This checksums the data @chunk_sz bytes at a time, calling WATCHDOG_RESET() + * after each chunk, to prevent the watchdog from firing. + * + * @crc: Input crc to chain from a previous calculution (use 0 to start a new + * calculation) + * @buf: Bytes to checksum + * @len: Number of bytes to checksum + * @chunk_sz: Chunk size to use between watchdog resets + * @return checksum + */ +uint32_t crc32_wd(uint32_t crc, const unsigned char *buf, uint len, + uint chunk_sz); + +/** + * crc32_no_comp - Calculate the CRC32 for a block of data (no one's compliment) + * + * This version uses a different algorithm which doesn't use one's compliment. + * JFFS2 (and other things?) use this. + * + * @crc: Input crc to chain from a previous calculution (use 0 to start a new + * calculation) + * @buf: Bytes to checksum + * @len: Number of bytes to checksum + * @return checksum value + */ +uint32_t crc32_no_comp(uint32_t crc, const unsigned char *buf, uint len); /** * crc32_wd_buf - Perform CRC32 on a buffer and return result in buffer @@ -50,11 +88,34 @@ uint32_t crc32_no_comp (uint32_t, const unsigned char *, uint); * @output: Place to put checksum result (4 bytes) * @chunk_sz: Trigger watchdog after processing this many bytes */ -void crc32_wd_buf(const unsigned char *input, uint ilen, - unsigned char *output, uint chunk_sz); +void crc32_wd_buf(const uint8_t *input, uint ilen, uint8_t *output, + uint chunk_sz); /* lib/crc32c.c */ -void crc32c_init(uint32_t *, uint32_t); -uint32_t crc32c_cal(uint32_t, const char *, int, uint32_t *); + +/** + * crc32c_init() - Set up a the CRC32 table + * + * This sets up 256-item table to aid in CRC32 calculation + * + * @crc32c_table: Place to put table + * @pol: polynomial to use + */ +void crc32c_init(uint32_t *crc32c_table, uint32_t pol); + +/** + * crc32c_cal() - Perform CRC32 on a buffer given a table + * + * This algorithm uses the table (set up by crc32c_init() to speed up + * processing. + * + * @crc: Previous crc (use 0 at start) + * @data: Data bytes to checksum + * @length: Number of bytes to process + * @crc32c_table:: CRC table + * @return checksum value + */ +uint32_t crc32c_cal(uint32_t crc, const char *data, int length, + uint32_t *crc32c_table); #endif /* _UBOOT_CRC_H */ diff --git a/lib/crc32.c b/lib/crc32.c index eee21f8d73..dc7e183f18 100644 --- a/lib/crc32.c +++ b/lib/crc32.c @@ -244,12 +244,12 @@ uint32_t crc32_wd(uint32_t crc, const unsigned char *buf, uInt len, chunk = end - curr; if (chunk > chunk_sz) chunk = chunk_sz; - crc = crc32 (crc, curr, chunk); + crc = crc32(crc, curr, chunk); curr += chunk; WATCHDOG_RESET (); } #else - crc = crc32 (crc, buf, len); + crc = crc32(crc, buf, len); #endif return crc; diff --git a/tools/envcrc.c b/tools/envcrc.c index 4b3b828af0..6e43608027 100644 --- a/tools/envcrc.c +++ b/tools/envcrc.c @@ -58,7 +58,7 @@ extern unsigned int env_size; extern env_t embedded_environment; #endif /* CONFIG_BUILD_ENVCRC */ -extern uint32_t crc32 (uint32_t, const unsigned char *, unsigned int); +extern uint32_t crc32(uint32_t, const unsigned char *, unsigned int); int main (int argc, char **argv) { @@ -88,7 +88,7 @@ int main (int argc, char **argv) memset(dataptr + eoe, pad, datasize - eoe); } - crc = crc32 (0, dataptr, datasize); + crc = crc32(0, dataptr, datasize); /* Check if verbose mode is activated passing a parameter to the program */ if (argc > 1) { -- 2.39.5