1d86ed7fbStbbdev /* 2*b15aabb3Stbbdev Copyright (c) 2005-2021 Intel Corporation 3d86ed7fbStbbdev 4d86ed7fbStbbdev Licensed under the Apache License, Version 2.0 (the "License"); 5d86ed7fbStbbdev you may not use this file except in compliance with the License. 6d86ed7fbStbbdev You may obtain a copy of the License at 7d86ed7fbStbbdev 8d86ed7fbStbbdev http://www.apache.org/licenses/LICENSE-2.0 9d86ed7fbStbbdev 10d86ed7fbStbbdev Unless required by applicable law or agreed to in writing, software 11d86ed7fbStbbdev distributed under the License is distributed on an "AS IS" BASIS, 12d86ed7fbStbbdev WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d86ed7fbStbbdev See the License for the specific language governing permissions and 14d86ed7fbStbbdev limitations under the License. 15d86ed7fbStbbdev */ 16d86ed7fbStbbdev 17d86ed7fbStbbdev /*-------------------------------------------------------------*/ 18d86ed7fbStbbdev /*--- Table for doing CRCs ---*/ 19d86ed7fbStbbdev /*--- crctable.cpp ---*/ 20d86ed7fbStbbdev /*-------------------------------------------------------------*/ 21d86ed7fbStbbdev 22d86ed7fbStbbdev /* ------------------------------------------------------------------ 23d86ed7fbStbbdev The original source for this example: 24d86ed7fbStbbdev This file is part of bzip2/libbzip2, a program and library for 25d86ed7fbStbbdev lossless, block-sorting data compression. 26d86ed7fbStbbdev 27d86ed7fbStbbdev bzip2/libbzip2 version 1.0.6 of 6 September 2010 28d86ed7fbStbbdev Copyright (C) 1996-2010 Julian Seward <[email protected]> 29d86ed7fbStbbdev 30d86ed7fbStbbdev This program, "bzip2", the associated library "libbzip2", and all 31d86ed7fbStbbdev documentation, are copyright (C) 1996-2010 Julian R Seward. All 32d86ed7fbStbbdev rights reserved. 33d86ed7fbStbbdev 34d86ed7fbStbbdev Redistribution and use in source and binary forms, with or without 35d86ed7fbStbbdev modification, are permitted provided that the following conditions 36d86ed7fbStbbdev are met: 37d86ed7fbStbbdev 38d86ed7fbStbbdev 1. Redistributions of source code must retain the above copyright 39d86ed7fbStbbdev notice, this list of conditions and the following disclaimer. 40d86ed7fbStbbdev 41d86ed7fbStbbdev 2. The origin of this software must not be misrepresented; you must 42d86ed7fbStbbdev not claim that you wrote the original software. If you use this 43d86ed7fbStbbdev software in a product, an acknowledgment in the product 44d86ed7fbStbbdev documentation would be appreciated but is not required. 45d86ed7fbStbbdev 46d86ed7fbStbbdev 3. Altered source versions must be plainly marked as such, and must 47d86ed7fbStbbdev not be misrepresented as being the original software. 48d86ed7fbStbbdev 49d86ed7fbStbbdev 4. The name of the author may not be used to endorse or promote 50d86ed7fbStbbdev products derived from this software without specific prior written 51d86ed7fbStbbdev permission. 52d86ed7fbStbbdev 53d86ed7fbStbbdev THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 54d86ed7fbStbbdev OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 55d86ed7fbStbbdev WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 56d86ed7fbStbbdev ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 57d86ed7fbStbbdev DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 58d86ed7fbStbbdev DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 59d86ed7fbStbbdev GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 60d86ed7fbStbbdev INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 61d86ed7fbStbbdev WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 62d86ed7fbStbbdev NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 63d86ed7fbStbbdev SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 64d86ed7fbStbbdev 65d86ed7fbStbbdev Julian Seward, [email protected] 66d86ed7fbStbbdev bzip2/libbzip2 version 1.0.6 of 6 September 2010 67d86ed7fbStbbdev ------------------------------------------------------------------ */ 68d86ed7fbStbbdev 69d86ed7fbStbbdev #include "bzlib_private.hpp" 70d86ed7fbStbbdev 71d86ed7fbStbbdev /*-- 72d86ed7fbStbbdev I think this is an implementation of the AUTODIN-II, 73d86ed7fbStbbdev Ethernet & FDDI 32-bit CRC standard. Vaguely derived 74d86ed7fbStbbdev from code by Rob Warnock, in Section 51 of the 75d86ed7fbStbbdev comp.compression FAQ. 76d86ed7fbStbbdev --*/ 77d86ed7fbStbbdev 78d86ed7fbStbbdev UInt32 BZ2_crc32Table[256] = { 79d86ed7fbStbbdev 80d86ed7fbStbbdev /*-- Ugly, innit? --*/ 81d86ed7fbStbbdev 82d86ed7fbStbbdev 0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L, 0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 83d86ed7fbStbbdev 0x1e475005L, 0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L, 0x350c9b64L, 0x31cd86d3L, 84d86ed7fbStbbdev 0x3c8ea00aL, 0x384fbdbdL, 0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L, 0x5f15adacL, 85d86ed7fbStbbdev 0x5bd4b01bL, 0x569796c2L, 0x52568b75L, 0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L, 86d86ed7fbStbbdev 0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL, 0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 87d86ed7fbStbbdev 0x95609039L, 0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L, 0xbe2b5b58L, 0xbaea46efL, 88d86ed7fbStbbdev 0xb7a96036L, 0xb3687d81L, 0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL, 0xd4326d90L, 89d86ed7fbStbbdev 0xd0f37027L, 0xddb056feL, 0xd9714b49L, 0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L, 90d86ed7fbStbbdev 0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L, 0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 91d86ed7fbStbbdev 0xec7dd02dL, 0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL, 0x278206abL, 0x23431b1cL, 92d86ed7fbStbbdev 0x2e003dc5L, 0x2ac12072L, 0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L, 0x018aeb13L, 93d86ed7fbStbbdev 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL, 0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL, 94d86ed7fbStbbdev 0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L, 0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 95d86ed7fbStbbdev 0x53dc6066L, 0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL, 0xaca5c697L, 0xa864db20L, 96d86ed7fbStbbdev 0xa527fdf9L, 0xa1e6e04eL, 0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L, 0x8aad2b2fL, 97d86ed7fbStbbdev 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L, 0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL, 98d86ed7fbStbbdev 0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL, 0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 99d86ed7fbStbbdev 0xfef34de2L, 0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L, 0xd5b88683L, 0xd1799b34L, 100d86ed7fbStbbdev 0xdc3abdedL, 0xd8fba05aL, 0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L, 0x7a089632L, 101d86ed7fbStbbdev 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL, 0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL, 102d86ed7fbStbbdev 0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L, 0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 103d86ed7fbStbbdev 0x285e1d47L, 0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL, 0x0315d626L, 0x07d4cb91L, 104d86ed7fbStbbdev 0x0a97ed48L, 0x0e56f0ffL, 0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L, 0xf12f560eL, 105d86ed7fbStbbdev 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L, 0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL, 106d86ed7fbStbbdev 0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL, 0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 107d86ed7fbStbbdev 0xc960ebb3L, 0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L, 0xae3afba2L, 0xaafbe615L, 108d86ed7fbStbbdev 0xa7b8c0ccL, 0xa379dd7bL, 0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL, 0x8832161aL, 109d86ed7fbStbbdev 0x8cf30badL, 0x81b02d74L, 0x857130c3L, 0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L, 110d86ed7fbStbbdev 0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL, 0x7b827d21L, 0x7f436096L, 0x7200464fL, 111d86ed7fbStbbdev 0x76c15bf8L, 0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L, 0x119b4be9L, 0x155a565eL, 112d86ed7fbStbbdev 0x18197087L, 0x1cd86d30L, 0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL, 0x3793a651L, 113d86ed7fbStbbdev 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L, 0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L, 114d86ed7fbStbbdev 0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L, 0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 115d86ed7fbStbbdev 0xdbee767cL, 0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L, 0xf0a5bd1dL, 0xf464a0aaL, 116d86ed7fbStbbdev 0xf9278673L, 0xfde69bc4L, 0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L, 0x9abc8bd5L, 117d86ed7fbStbbdev 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL, 0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L, 118d86ed7fbStbbdev 0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L 119d86ed7fbStbbdev }; 120d86ed7fbStbbdev 121d86ed7fbStbbdev /*-------------------------------------------------------------*/ 122d86ed7fbStbbdev /*--- end crctable.c ---*/ 123d86ed7fbStbbdev /*-------------------------------------------------------------*/ 124