xref: /illumos-gate/usr/src/common/bzip2/crctable.c (revision 55fea89d)
1ca3e8d88SDave Plauger 
2ca3e8d88SDave Plauger /*-------------------------------------------------------------*/
3ca3e8d88SDave Plauger /*--- Table for doing CRCs                                  ---*/
4ca3e8d88SDave Plauger /*---                                            crctable.c ---*/
5ca3e8d88SDave Plauger /*-------------------------------------------------------------*/
6ca3e8d88SDave Plauger 
7ca3e8d88SDave Plauger /* ------------------------------------------------------------------
8ca3e8d88SDave Plauger    This file is part of bzip2/libbzip2, a program and library for
9ca3e8d88SDave Plauger    lossless, block-sorting data compression.
10ca3e8d88SDave Plauger 
11b9071c34SGordon Ross    bzip2/libbzip2 version 1.0.6 of 6 September 2010
12b9071c34SGordon Ross    Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
13ca3e8d88SDave Plauger 
14*55fea89dSDan Cross    Please read the WARNING, DISCLAIMER and PATENTS sections in the
15ca3e8d88SDave Plauger    README file.
16ca3e8d88SDave Plauger 
17ca3e8d88SDave Plauger    This program is released under the terms of the license contained
18ca3e8d88SDave Plauger    in the file LICENSE.
19ca3e8d88SDave Plauger    ------------------------------------------------------------------ */
20ca3e8d88SDave Plauger 
21ca3e8d88SDave Plauger 
22ca3e8d88SDave Plauger #include "bzlib_private.h"
23ca3e8d88SDave Plauger 
24ca3e8d88SDave Plauger /*--
25ca3e8d88SDave Plauger   I think this is an implementation of the AUTODIN-II,
26ca3e8d88SDave Plauger   Ethernet & FDDI 32-bit CRC standard.  Vaguely derived
27ca3e8d88SDave Plauger   from code by Rob Warnock, in Section 51 of the
28ca3e8d88SDave Plauger   comp.compression FAQ.
29ca3e8d88SDave Plauger --*/
30ca3e8d88SDave Plauger 
31ca3e8d88SDave Plauger UInt32 BZ2_crc32Table[256] = {
32ca3e8d88SDave Plauger 
33ca3e8d88SDave Plauger    /*-- Ugly, innit? --*/
34ca3e8d88SDave Plauger 
35ca3e8d88SDave Plauger    0x00000000UL, 0x04c11db7UL, 0x09823b6eUL, 0x0d4326d9UL,
36ca3e8d88SDave Plauger    0x130476dcUL, 0x17c56b6bUL, 0x1a864db2UL, 0x1e475005UL,
37ca3e8d88SDave Plauger    0x2608edb8UL, 0x22c9f00fUL, 0x2f8ad6d6UL, 0x2b4bcb61UL,
38ca3e8d88SDave Plauger    0x350c9b64UL, 0x31cd86d3UL, 0x3c8ea00aUL, 0x384fbdbdUL,
39ca3e8d88SDave Plauger    0x4c11db70UL, 0x48d0c6c7UL, 0x4593e01eUL, 0x4152fda9UL,
40ca3e8d88SDave Plauger    0x5f15adacUL, 0x5bd4b01bUL, 0x569796c2UL, 0x52568b75UL,
41ca3e8d88SDave Plauger    0x6a1936c8UL, 0x6ed82b7fUL, 0x639b0da6UL, 0x675a1011UL,
42ca3e8d88SDave Plauger    0x791d4014UL, 0x7ddc5da3UL, 0x709f7b7aUL, 0x745e66cdUL,
43ca3e8d88SDave Plauger    0x9823b6e0UL, 0x9ce2ab57UL, 0x91a18d8eUL, 0x95609039UL,
44ca3e8d88SDave Plauger    0x8b27c03cUL, 0x8fe6dd8bUL, 0x82a5fb52UL, 0x8664e6e5UL,
45ca3e8d88SDave Plauger    0xbe2b5b58UL, 0xbaea46efUL, 0xb7a96036UL, 0xb3687d81UL,
46ca3e8d88SDave Plauger    0xad2f2d84UL, 0xa9ee3033UL, 0xa4ad16eaUL, 0xa06c0b5dUL,
47ca3e8d88SDave Plauger    0xd4326d90UL, 0xd0f37027UL, 0xddb056feUL, 0xd9714b49UL,
48ca3e8d88SDave Plauger    0xc7361b4cUL, 0xc3f706fbUL, 0xceb42022UL, 0xca753d95UL,
49ca3e8d88SDave Plauger    0xf23a8028UL, 0xf6fb9d9fUL, 0xfbb8bb46UL, 0xff79a6f1UL,
50ca3e8d88SDave Plauger    0xe13ef6f4UL, 0xe5ffeb43UL, 0xe8bccd9aUL, 0xec7dd02dUL,
51ca3e8d88SDave Plauger    0x34867077UL, 0x30476dc0UL, 0x3d044b19UL, 0x39c556aeUL,
52ca3e8d88SDave Plauger    0x278206abUL, 0x23431b1cUL, 0x2e003dc5UL, 0x2ac12072UL,
53ca3e8d88SDave Plauger    0x128e9dcfUL, 0x164f8078UL, 0x1b0ca6a1UL, 0x1fcdbb16UL,
54ca3e8d88SDave Plauger    0x018aeb13UL, 0x054bf6a4UL, 0x0808d07dUL, 0x0cc9cdcaUL,
55ca3e8d88SDave Plauger    0x7897ab07UL, 0x7c56b6b0UL, 0x71159069UL, 0x75d48ddeUL,
56ca3e8d88SDave Plauger    0x6b93dddbUL, 0x6f52c06cUL, 0x6211e6b5UL, 0x66d0fb02UL,
57ca3e8d88SDave Plauger    0x5e9f46bfUL, 0x5a5e5b08UL, 0x571d7dd1UL, 0x53dc6066UL,
58ca3e8d88SDave Plauger    0x4d9b3063UL, 0x495a2dd4UL, 0x44190b0dUL, 0x40d816baUL,
59ca3e8d88SDave Plauger    0xaca5c697UL, 0xa864db20UL, 0xa527fdf9UL, 0xa1e6e04eUL,
60ca3e8d88SDave Plauger    0xbfa1b04bUL, 0xbb60adfcUL, 0xb6238b25UL, 0xb2e29692UL,
61ca3e8d88SDave Plauger    0x8aad2b2fUL, 0x8e6c3698UL, 0x832f1041UL, 0x87ee0df6UL,
62ca3e8d88SDave Plauger    0x99a95df3UL, 0x9d684044UL, 0x902b669dUL, 0x94ea7b2aUL,
63ca3e8d88SDave Plauger    0xe0b41de7UL, 0xe4750050UL, 0xe9362689UL, 0xedf73b3eUL,
64ca3e8d88SDave Plauger    0xf3b06b3bUL, 0xf771768cUL, 0xfa325055UL, 0xfef34de2UL,
65ca3e8d88SDave Plauger    0xc6bcf05fUL, 0xc27dede8UL, 0xcf3ecb31UL, 0xcbffd686UL,
66ca3e8d88SDave Plauger    0xd5b88683UL, 0xd1799b34UL, 0xdc3abdedUL, 0xd8fba05aUL,
67ca3e8d88SDave Plauger    0x690ce0eeUL, 0x6dcdfd59UL, 0x608edb80UL, 0x644fc637UL,
68ca3e8d88SDave Plauger    0x7a089632UL, 0x7ec98b85UL, 0x738aad5cUL, 0x774bb0ebUL,
69ca3e8d88SDave Plauger    0x4f040d56UL, 0x4bc510e1UL, 0x46863638UL, 0x42472b8fUL,
70ca3e8d88SDave Plauger    0x5c007b8aUL, 0x58c1663dUL, 0x558240e4UL, 0x51435d53UL,
71ca3e8d88SDave Plauger    0x251d3b9eUL, 0x21dc2629UL, 0x2c9f00f0UL, 0x285e1d47UL,
72ca3e8d88SDave Plauger    0x36194d42UL, 0x32d850f5UL, 0x3f9b762cUL, 0x3b5a6b9bUL,
73ca3e8d88SDave Plauger    0x0315d626UL, 0x07d4cb91UL, 0x0a97ed48UL, 0x0e56f0ffUL,
74ca3e8d88SDave Plauger    0x1011a0faUL, 0x14d0bd4dUL, 0x19939b94UL, 0x1d528623UL,
75ca3e8d88SDave Plauger    0xf12f560eUL, 0xf5ee4bb9UL, 0xf8ad6d60UL, 0xfc6c70d7UL,
76ca3e8d88SDave Plauger    0xe22b20d2UL, 0xe6ea3d65UL, 0xeba91bbcUL, 0xef68060bUL,
77ca3e8d88SDave Plauger    0xd727bbb6UL, 0xd3e6a601UL, 0xdea580d8UL, 0xda649d6fUL,
78ca3e8d88SDave Plauger    0xc423cd6aUL, 0xc0e2d0ddUL, 0xcda1f604UL, 0xc960ebb3UL,
79ca3e8d88SDave Plauger    0xbd3e8d7eUL, 0xb9ff90c9UL, 0xb4bcb610UL, 0xb07daba7UL,
80ca3e8d88SDave Plauger    0xae3afba2UL, 0xaafbe615UL, 0xa7b8c0ccUL, 0xa379dd7bUL,
81ca3e8d88SDave Plauger    0x9b3660c6UL, 0x9ff77d71UL, 0x92b45ba8UL, 0x9675461fUL,
82ca3e8d88SDave Plauger    0x8832161aUL, 0x8cf30badUL, 0x81b02d74UL, 0x857130c3UL,
83ca3e8d88SDave Plauger    0x5d8a9099UL, 0x594b8d2eUL, 0x5408abf7UL, 0x50c9b640UL,
84ca3e8d88SDave Plauger    0x4e8ee645UL, 0x4a4ffbf2UL, 0x470cdd2bUL, 0x43cdc09cUL,
85ca3e8d88SDave Plauger    0x7b827d21UL, 0x7f436096UL, 0x7200464fUL, 0x76c15bf8UL,
86ca3e8d88SDave Plauger    0x68860bfdUL, 0x6c47164aUL, 0x61043093UL, 0x65c52d24UL,
87ca3e8d88SDave Plauger    0x119b4be9UL, 0x155a565eUL, 0x18197087UL, 0x1cd86d30UL,
88ca3e8d88SDave Plauger    0x029f3d35UL, 0x065e2082UL, 0x0b1d065bUL, 0x0fdc1becUL,
89ca3e8d88SDave Plauger    0x3793a651UL, 0x3352bbe6UL, 0x3e119d3fUL, 0x3ad08088UL,
90ca3e8d88SDave Plauger    0x2497d08dUL, 0x2056cd3aUL, 0x2d15ebe3UL, 0x29d4f654UL,
91ca3e8d88SDave Plauger    0xc5a92679UL, 0xc1683bceUL, 0xcc2b1d17UL, 0xc8ea00a0UL,
92ca3e8d88SDave Plauger    0xd6ad50a5UL, 0xd26c4d12UL, 0xdf2f6bcbUL, 0xdbee767cUL,
93ca3e8d88SDave Plauger    0xe3a1cbc1UL, 0xe760d676UL, 0xea23f0afUL, 0xeee2ed18UL,
94ca3e8d88SDave Plauger    0xf0a5bd1dUL, 0xf464a0aaUL, 0xf9278673UL, 0xfde69bc4UL,
95ca3e8d88SDave Plauger    0x89b8fd09UL, 0x8d79e0beUL, 0x803ac667UL, 0x84fbdbd0UL,
96ca3e8d88SDave Plauger    0x9abc8bd5UL, 0x9e7d9662UL, 0x933eb0bbUL, 0x97ffad0cUL,
97ca3e8d88SDave Plauger    0xafb010b1UL, 0xab710d06UL, 0xa6322bdfUL, 0xa2f33668UL,
98ca3e8d88SDave Plauger    0xbcb4666dUL, 0xb8757bdaUL, 0xb5365d03UL, 0xb1f740b4UL
99ca3e8d88SDave Plauger };
100ca3e8d88SDave Plauger 
101ca3e8d88SDave Plauger 
102ca3e8d88SDave Plauger /*-------------------------------------------------------------*/
103ca3e8d88SDave Plauger /*--- end                                        crctable.c ---*/
104ca3e8d88SDave Plauger /*-------------------------------------------------------------*/
105