libbb: commonalize a bit of little-endian CRC32 table generation code
No binary (build failed)
—
(log yok)
| @@ -2239,7 +2239,7 @@ int gzip_main(int argc UNUSED_PARAM, char **argv) | |
| ALLOC(ush, G1.prev, 1L << BITS); | |
| /* Initialize the CRC32 table */ | |
| - | global_crc32_table = crc32_filltable(NULL, 0); |
| + | global_crc32_new_table_le(); |
| argv += optind; | |
| return bbunpack(argv, pack_gzip, append_ext, "gz"); | |
| @@ -1000,7 +1000,7 @@ inflate_unzip_internal(STATE_PARAM transformer_state_t *xstate) | |
| gunzip_bb = 0; | |
| /* Create the crc table */ | |
| - | gunzip_crc_table = crc32_filltable(NULL, 0); |
| + | gunzip_crc_table = crc32_new_table_le(); |
| gunzip_crc = ~0; | |
| error_msg = "corrupted data"; | |
| @@ -52,7 +52,7 @@ unpack_xz_stream(transformer_state_t *xstate) | |
| IF_DESKTOP(long long) int total = 0; | |
| if (!global_crc32_table) | |
| - | global_crc32_table = crc32_filltable(NULL, /*endian:*/ 0); |
| + | global_crc32_new_table_le(); |
| memset(&iobuf, 0, sizeof(iobuf)); | |
| membuf = xmalloc(2 * BUFSIZ); | |
| @@ -1148,6 +1148,6 @@ int lzop_main(int argc UNUSED_PARAM, char **argv) | |
| if (ENABLE_UNLZOP && applet_name[4] == 'o') | |
| option_mask32 |= OPT_DECOMPRESS; | |
| - | global_crc32_table = crc32_filltable(NULL, 0); |
| + | global_crc32_new_table_le(); |
| return bbunpack(argv, pack_lzop, make_new_name_lzop, /*unused:*/ NULL); | |
| } | |
| @@ -1928,6 +1928,8 @@ typedef struct md5_ctx_t md5sha_ctx_t; | |
| extern uint32_t *global_crc32_table; | |
| uint32_t *crc32_filltable(uint32_t *tbl256, int endian) FAST_FUNC; | |
| + | uint32_t *crc32_new_table_le(void) FAST_FUNC; |
| + | uint32_t *global_crc32_new_table_le(void) FAST_FUNC; |
| uint32_t crc32_block_endian1(uint32_t val, const void *buf, unsigned len, uint32_t *crc_table) FAST_FUNC; | |
| uint32_t crc32_block_endian0(uint32_t val, const void *buf, unsigned len, uint32_t *crc_table) FAST_FUNC; | |
| @@ -41,6 +41,16 @@ uint32_t* FAST_FUNC crc32_filltable(uint32_t *crc_table, int endian) | |
| return crc_table - 256; | |
| } | |
| + | /* Common uses: */ |
| + | uint32_t* FAST_FUNC crc32_new_table_le(void) |
| + | { |
| + | return crc32_filltable(NULL, 0); |
| + | } |
| + | uint32_t* FAST_FUNC global_crc32_new_table_le(void) |
| + | { |
| + | global_crc32_table = crc32_new_table_le(); |
| + | return global_crc32_table; |
| + | } |
| uint32_t FAST_FUNC crc32_block_endian1(uint32_t val, const void *buf, unsigned len, uint32_t *crc_table) | |
| { | |
| @@ -101,7 +101,7 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) | |
| if (flags & OPTION_J) { | |
| uint32_t *crc32_table; | |
| - | crc32_table = crc32_filltable(NULL, 0); |
| + | crc32_table = crc32_new_table_le(); |
| cleanmarker.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK); | |
| cleanmarker.nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER); | |
| @@ -177,7 +177,7 @@ check_gpt_label(void) | |
| init_unicode(); | |
| if (!global_crc32_table) { | |
| - | global_crc32_table = crc32_filltable(NULL, 0); |
| + | global_crc32_new_table_le(); |
| } | |
| crc = SWAP_LE32(gpt_hdr->hdr_crc32); | |