xref: /dflybsd-src/contrib/bzip2/crctable.c (revision d9ad29c0511b752ac1e5cb3f9d537a66f4bfded4)
171e7ee59SPeter Avalos 
271e7ee59SPeter Avalos /*-------------------------------------------------------------*/
371e7ee59SPeter Avalos /*--- Table for doing CRCs                                  ---*/
471e7ee59SPeter Avalos /*---                                            crctable.c ---*/
571e7ee59SPeter Avalos /*-------------------------------------------------------------*/
671e7ee59SPeter Avalos 
771e7ee59SPeter Avalos /* ------------------------------------------------------------------
871e7ee59SPeter Avalos    This file is part of bzip2/libbzip2, a program and library for
971e7ee59SPeter Avalos    lossless, block-sorting data compression.
1071e7ee59SPeter Avalos 
11*86954436SDaniel Fojt    bzip2/libbzip2 version 1.0.8 of 13 July 2019
12*86954436SDaniel Fojt    Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
1371e7ee59SPeter Avalos 
1471e7ee59SPeter Avalos    Please read the WARNING, DISCLAIMER and PATENTS sections in the
1571e7ee59SPeter Avalos    README file.
1671e7ee59SPeter Avalos 
1771e7ee59SPeter Avalos    This program is released under the terms of the license contained
1871e7ee59SPeter Avalos    in the file LICENSE.
1971e7ee59SPeter Avalos    ------------------------------------------------------------------ */
2071e7ee59SPeter Avalos 
2171e7ee59SPeter Avalos 
2271e7ee59SPeter Avalos #include "bzlib_private.h"
2371e7ee59SPeter Avalos 
2471e7ee59SPeter Avalos /*--
2571e7ee59SPeter Avalos   I think this is an implementation of the AUTODIN-II,
2671e7ee59SPeter Avalos   Ethernet & FDDI 32-bit CRC standard.  Vaguely derived
2771e7ee59SPeter Avalos   from code by Rob Warnock, in Section 51 of the
2871e7ee59SPeter Avalos   comp.compression FAQ.
2971e7ee59SPeter Avalos --*/
3071e7ee59SPeter Avalos 
3171e7ee59SPeter Avalos UInt32 BZ2_crc32Table[256] = {
3271e7ee59SPeter Avalos 
3371e7ee59SPeter Avalos    /*-- Ugly, innit? --*/
3471e7ee59SPeter Avalos 
3571e7ee59SPeter Avalos    0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L,
3671e7ee59SPeter Avalos    0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L,
3771e7ee59SPeter Avalos    0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L,
3871e7ee59SPeter Avalos    0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL,
3971e7ee59SPeter Avalos    0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L,
4071e7ee59SPeter Avalos    0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L,
4171e7ee59SPeter Avalos    0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L,
4271e7ee59SPeter Avalos    0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL,
4371e7ee59SPeter Avalos    0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L,
4471e7ee59SPeter Avalos    0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L,
4571e7ee59SPeter Avalos    0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L,
4671e7ee59SPeter Avalos    0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL,
4771e7ee59SPeter Avalos    0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L,
4871e7ee59SPeter Avalos    0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L,
4971e7ee59SPeter Avalos    0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L,
5071e7ee59SPeter Avalos    0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL,
5171e7ee59SPeter Avalos    0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL,
5271e7ee59SPeter Avalos    0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L,
5371e7ee59SPeter Avalos    0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L,
5471e7ee59SPeter Avalos    0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL,
5571e7ee59SPeter Avalos    0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL,
5671e7ee59SPeter Avalos    0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L,
5771e7ee59SPeter Avalos    0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L,
5871e7ee59SPeter Avalos    0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL,
5971e7ee59SPeter Avalos    0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL,
6071e7ee59SPeter Avalos    0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L,
6171e7ee59SPeter Avalos    0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L,
6271e7ee59SPeter Avalos    0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL,
6371e7ee59SPeter Avalos    0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL,
6471e7ee59SPeter Avalos    0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L,
6571e7ee59SPeter Avalos    0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L,
6671e7ee59SPeter Avalos    0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL,
6771e7ee59SPeter Avalos    0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L,
6871e7ee59SPeter Avalos    0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL,
6971e7ee59SPeter Avalos    0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL,
7071e7ee59SPeter Avalos    0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L,
7171e7ee59SPeter Avalos    0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L,
7271e7ee59SPeter Avalos    0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL,
7371e7ee59SPeter Avalos    0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL,
7471e7ee59SPeter Avalos    0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L,
7571e7ee59SPeter Avalos    0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L,
7671e7ee59SPeter Avalos    0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL,
7771e7ee59SPeter Avalos    0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL,
7871e7ee59SPeter Avalos    0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L,
7971e7ee59SPeter Avalos    0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L,
8071e7ee59SPeter Avalos    0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL,
8171e7ee59SPeter Avalos    0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL,
8271e7ee59SPeter Avalos    0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L,
8371e7ee59SPeter Avalos    0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L,
8471e7ee59SPeter Avalos    0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL,
8571e7ee59SPeter Avalos    0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L,
8671e7ee59SPeter Avalos    0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L,
8771e7ee59SPeter Avalos    0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L,
8871e7ee59SPeter Avalos    0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL,
8971e7ee59SPeter Avalos    0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L,
9071e7ee59SPeter Avalos    0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L,
9171e7ee59SPeter Avalos    0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L,
9271e7ee59SPeter Avalos    0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL,
9371e7ee59SPeter Avalos    0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L,
9471e7ee59SPeter Avalos    0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L,
9571e7ee59SPeter Avalos    0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L,
9671e7ee59SPeter Avalos    0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL,
9771e7ee59SPeter Avalos    0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L,
9871e7ee59SPeter Avalos    0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L
9971e7ee59SPeter Avalos };
10071e7ee59SPeter Avalos 
10171e7ee59SPeter Avalos 
10271e7ee59SPeter Avalos /*-------------------------------------------------------------*/
10371e7ee59SPeter Avalos /*--- end                                        crctable.c ---*/
10471e7ee59SPeter Avalos /*-------------------------------------------------------------*/
105