xref: /netbsd-src/external/bsd/bzip2/dist/crctable.c (revision c12ab3f1404d3e6320413d6099c78880423d6a49)
1*c12ab3f1Smaya /*	$NetBSD: crctable.c,v 1.1.1.3 2019/07/21 11:35:30 maya Exp $	*/
24f9a1459Swiz 
34f9a1459Swiz 
44f9a1459Swiz /*-------------------------------------------------------------*/
54f9a1459Swiz /*--- Table for doing CRCs                                  ---*/
64f9a1459Swiz /*---                                            crctable.c ---*/
74f9a1459Swiz /*-------------------------------------------------------------*/
84f9a1459Swiz 
94f9a1459Swiz /* ------------------------------------------------------------------
104f9a1459Swiz    This file is part of bzip2/libbzip2, a program and library for
114f9a1459Swiz    lossless, block-sorting data compression.
124f9a1459Swiz 
13*c12ab3f1Smaya    bzip2/libbzip2 version 1.0.8 of 13 July 2019
14*c12ab3f1Smaya    Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
154f9a1459Swiz 
164f9a1459Swiz    Please read the WARNING, DISCLAIMER and PATENTS sections in the
174f9a1459Swiz    README file.
184f9a1459Swiz 
194f9a1459Swiz    This program is released under the terms of the license contained
204f9a1459Swiz    in the file LICENSE.
214f9a1459Swiz    ------------------------------------------------------------------ */
224f9a1459Swiz 
234f9a1459Swiz 
244f9a1459Swiz #include "bzlib_private.h"
254f9a1459Swiz 
264f9a1459Swiz /*--
274f9a1459Swiz   I think this is an implementation of the AUTODIN-II,
284f9a1459Swiz   Ethernet & FDDI 32-bit CRC standard.  Vaguely derived
294f9a1459Swiz   from code by Rob Warnock, in Section 51 of the
304f9a1459Swiz   comp.compression FAQ.
314f9a1459Swiz --*/
324f9a1459Swiz 
334f9a1459Swiz UInt32 BZ2_crc32Table[256] = {
344f9a1459Swiz 
354f9a1459Swiz    /*-- Ugly, innit? --*/
364f9a1459Swiz 
374f9a1459Swiz    0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L,
384f9a1459Swiz    0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L,
394f9a1459Swiz    0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L,
404f9a1459Swiz    0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL,
414f9a1459Swiz    0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L,
424f9a1459Swiz    0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L,
434f9a1459Swiz    0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L,
444f9a1459Swiz    0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL,
454f9a1459Swiz    0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L,
464f9a1459Swiz    0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L,
474f9a1459Swiz    0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L,
484f9a1459Swiz    0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL,
494f9a1459Swiz    0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L,
504f9a1459Swiz    0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L,
514f9a1459Swiz    0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L,
524f9a1459Swiz    0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL,
534f9a1459Swiz    0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL,
544f9a1459Swiz    0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L,
554f9a1459Swiz    0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L,
564f9a1459Swiz    0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL,
574f9a1459Swiz    0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL,
584f9a1459Swiz    0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L,
594f9a1459Swiz    0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L,
604f9a1459Swiz    0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL,
614f9a1459Swiz    0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL,
624f9a1459Swiz    0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L,
634f9a1459Swiz    0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L,
644f9a1459Swiz    0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL,
654f9a1459Swiz    0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL,
664f9a1459Swiz    0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L,
674f9a1459Swiz    0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L,
684f9a1459Swiz    0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL,
694f9a1459Swiz    0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L,
704f9a1459Swiz    0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL,
714f9a1459Swiz    0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL,
724f9a1459Swiz    0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L,
734f9a1459Swiz    0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L,
744f9a1459Swiz    0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL,
754f9a1459Swiz    0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL,
764f9a1459Swiz    0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L,
774f9a1459Swiz    0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L,
784f9a1459Swiz    0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL,
794f9a1459Swiz    0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL,
804f9a1459Swiz    0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L,
814f9a1459Swiz    0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L,
824f9a1459Swiz    0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL,
834f9a1459Swiz    0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL,
844f9a1459Swiz    0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L,
854f9a1459Swiz    0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L,
864f9a1459Swiz    0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL,
874f9a1459Swiz    0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L,
884f9a1459Swiz    0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L,
894f9a1459Swiz    0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L,
904f9a1459Swiz    0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL,
914f9a1459Swiz    0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L,
924f9a1459Swiz    0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L,
934f9a1459Swiz    0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L,
944f9a1459Swiz    0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL,
954f9a1459Swiz    0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L,
964f9a1459Swiz    0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L,
974f9a1459Swiz    0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L,
984f9a1459Swiz    0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL,
994f9a1459Swiz    0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L,
1004f9a1459Swiz    0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L
1014f9a1459Swiz };
1024f9a1459Swiz 
1034f9a1459Swiz 
1044f9a1459Swiz /*-------------------------------------------------------------*/
1054f9a1459Swiz /*--- end                                        crctable.c ---*/
1064f9a1459Swiz /*-------------------------------------------------------------*/
107