# # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # The source in this directory has been derived from libbzip2 version 1.0.5 downloaded from http://www.bzip.org. In an effort to provide ease of syncing with the upstream code, this source hasn't changed much. The usual Solaris coding standards have been waived. It does not pass cstyle. But, enough modifications were made so that the code does compile and lint cleanly. Some modifications have been made for use in the Solaris kernel: 1) compilation errors were corrected 2) lint complaints were fixed 3) a few utility interfaces were added BZ2_bzCompressInitSize BZ2_bzCompressReset BZ2_bzDecompressReset BZ2_bzErrorString Here is a complete list of changes made by Sun to the original 1.0.5 source: ------------------------ blocksort.c ------------------------ diff bzip2-1.0.5/blocksort.c ./blocksort.c ------------------------ bzlib.c ------------------------ diff bzip2-1.0.5/bzlib.c ./bzlib.c 98a99,116 > /* > * Added for Solaris kernel > */ > #define BZES \ > BZE(BZ_OK) \ > BZE(BZ_RUN_OK) \ > BZE(BZ_FLUSH_OK) \ > BZE(BZ_FINISH_OK) \ > BZE(BZ_STREAM_END) \ > BZE(BZ_SEQUENCE_ERROR) \ > BZE(BZ_PARAM_ERROR) \ > BZE(BZ_MEM_ERROR) \ > BZE(BZ_DATA_ERROR) \ > BZE(BZ_DATA_ERROR_MAGIC) \ > BZE(BZ_IO_ERROR) \ > BZE(BZ_UNEXPECTED_EOF) \ > BZE(BZ_OUTBUFF_FULL) \ > BZE(BZ_CONFIG_ERROR) 99a118,144 > BZ_EXTERN const char * BZ_API(BZ2_bzErrorString) ( > int error_code > ) > { > switch (error_code) > { > #define BZE(x) case x: return (#x); > BZES > #undef BZE > } > return ("BZ_UNKNOWN_ERROR"); > } > > #include > > #ifdef _KERNEL > > #include > #include > #include > > void > bz_internal_error(int errcode) > { > panic("bzip2 internal error: %s\n", BZ2_bzErrorString(errcode)); > } > 100a146,150 > typedef struct { > char *buf; > size_t sz; > } bzap; > 103a154,181 > size_t sz = sizeof (bzap) + BZ2_BZALLOC_ALIGN + (items * size); > uintptr_t p = (uintptr_t)kmem_alloc(sz, KM_SLEEP); > > if (p != NULL) { > bzap *pp = (bzap *)((p + sizeof (bzap) + BZ2_BZALLOC_ALIGN - 1) & > -BZ2_BZALLOC_ALIGN); > pp[-1].buf = (void *)p; > pp[-1].sz = sz; > return (pp); > } > return (NULL); > } > > static > void default_bzfree ( void* opaque, void* addr ) > { > if (addr != NULL) { > bzap *pp = (bzap *)addr - 1; > kmem_free(pp->buf, pp->sz); > } > } > > #else > > /*---------------------------------------------------*/ > static > void* default_bzalloc ( void* opaque, Int32 items, Int32 size ) > { 112a191 > #endif /* _KERNEL */ 114d192 < 212a291,298 > /*---------------------------------------------------*/ > /* > * returns the BZALLOC size needed for bzCompressInit > */ > int BZ_API(BZ2_bzCompressInitSize) ( > int blockSize100k) > { > Int32 n, t; 213a300,312 > n = 100000 * blockSize100k; > t = 0; > t += ( sizeof(EState) ); > t = P2ROUNDUP(t, BZ2_BZALLOC_ALIGN); > t += ( n * sizeof(UInt32) ); > t = P2ROUNDUP(t, BZ2_BZALLOC_ALIGN); > t += ( (n+BZ_N_OVERSHOOT) * sizeof(UInt32) ); > t = P2ROUNDUP(t, BZ2_BZALLOC_ALIGN); > t += ( 65537 * sizeof(UInt32) ); > t = P2ROUNDUP(t, BZ2_BZALLOC_ALIGN); > return (t); > } > 214a314,376 > /* > * added to allow reuse of bz_stream without malloc/free > */ > int BZ_API(BZ2_bzCompressReset) ( bz_stream *strm ) > { > EState* s = strm->state; > > if (!bz_config_ok()) return BZ_CONFIG_ERROR; > > if (s == NULL) return BZ_MEM_ERROR; > s->strm = strm; > > s->blockNo = 0; > s->state = BZ_S_INPUT; > s->mode = BZ_M_RUNNING; > s->combinedCRC = 0; > s->nblockMAX = 100000 * s->blockSize100k - 19; > > s->block = (UChar*)s->arr2; > s->mtfv = (UInt16*)s->arr1; > s->zbits = NULL; > s->ptr = (UInt32*)s->arr1; > > strm->state = s; > strm->total_in_lo32 = 0; > strm->total_in_hi32 = 0; > strm->total_out_lo32 = 0; > strm->total_out_hi32 = 0; > init_RL ( s ); > prepare_new_block ( s ); > return BZ_OK; > } > > int BZ_API(BZ2_bzDecompressReset) ( bz_stream* strm ) > { > DState* s = strm->state; > > if (!bz_config_ok()) return BZ_CONFIG_ERROR; > > if (strm == NULL) return BZ_PARAM_ERROR; > > s->strm = strm; > > s->state = BZ_X_MAGIC_1; > s->bsLive = 0; > s->bsBuff = 0; > s->calculatedCombinedCRC = 0; > strm->total_in_lo32 = 0; > strm->total_in_hi32 = 0; > strm->total_out_lo32 = 0; > strm->total_out_hi32 = 0; > > s->ll4 = NULL; > s->ll16 = NULL; > s->tt = NULL; > s->currBlockNo = 0; > > > return BZ_OK; > } > > > /*---------------------------------------------------*/ 854a1017 > #if 0 857a1021 > #endif 1081c1245 < BZ2_bzCompressEnd ( &(bzf->strm) ); --- > (void) BZ2_bzCompressEnd ( &(bzf->strm) ); 1155c1319 < (void)BZ2_bzDecompressEnd ( &(bzf->strm) ); --- > (void) BZ2_bzDecompressEnd ( &(bzf->strm) ); 1285c1449 < BZ2_bzCompressEnd ( &strm ); --- > (void) BZ2_bzCompressEnd ( &strm ); 1289c1453 < BZ2_bzCompressEnd ( &strm ); --- > (void) BZ2_bzCompressEnd ( &strm ); 1293c1457 < BZ2_bzCompressEnd ( &strm ); --- > (void) BZ2_bzCompressEnd ( &strm ); 1333c1497 < BZ2_bzDecompressEnd ( &strm ); --- > (void) BZ2_bzDecompressEnd ( &strm ); 1338c1502 < BZ2_bzDecompressEnd ( &strm ); --- > (void) BZ2_bzDecompressEnd ( &strm ); 1341c1505 < BZ2_bzDecompressEnd ( &strm ); --- > (void) BZ2_bzDecompressEnd ( &strm ); 1343c1507 < }; --- > } 1346c1510 < BZ2_bzDecompressEnd ( &strm ); --- > (void) BZ2_bzDecompressEnd ( &strm ); ------------------------ bzlib.h ------------------------ diff bzip2-1.0.5/bzlib.h ./bzlib.h 21d20 < 24a24,27 > #ifdef _KERNEL > #define BZ_NO_STDIO > #endif > 99a103,104 > #define BZ2_BZALLOC_ALIGN (64) > 106a112,119 > BZ_EXTERN int BZ_API(BZ2_bzCompressInitSize) ( > int blockSize100k > ); > > BZ_EXTERN int BZ_API(BZ2_bzCompressReset) ( > bz_stream* strm > ); > 121a135,138 > BZ_EXTERN int BZ_API(BZ2_bzDecompressReset) ( > bz_stream* strm > ); > 129a147,149 > BZ_EXTERN const char * BZ_API(BZ2_bzErrorString) ( > int error_code > ); 131a152 > 278,279d298 < #endif < 282a302 > #endif /* _BZLIB_H */ ------------------------ bzlib_private.h ------------------------ diff bzip2-1.0.5/bzlib_private.h ./bzlib_private.h 24a25,27 > #ifdef _KERNEL > #define BZ_NO_STDIO > #else 25a29 > #endif 87a92 > #pragma weak bz_internal_error 90c95 < { if (!(cond)) bz_internal_error ( errcode ); } --- > { if (!(cond) && &bz_internal_error != NULL) bz_internal_error ( errcode ); } 159c164 < crcVar = 0xffffffffL; \ --- > crcVar = 0xffffffffUL; \ 495,497d499 < #endif < < 509a512 > #endif /* _BZLIB_PRIVATE_H */ ------------------------ compress.c ------------------------ diff bzip2-1.0.5/compress.c ./compress.c ------------------------ crctable.c ------------------------ diff bzip2-1.0.5/crctable.c ./crctable.c 35,98c35,98 < 0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L, < 0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L, < 0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L, < 0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL, < 0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L, < 0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L, < 0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L, < 0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL, < 0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L, < 0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L, < 0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L, < 0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL, < 0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L, < 0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L, < 0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L, < 0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL, < 0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL, < 0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L, < 0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L, < 0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL, < 0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL, < 0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L, < 0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L, < 0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL, < 0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL, < 0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L, < 0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L, < 0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL, < 0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL, < 0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L, < 0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L, < 0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL, < 0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L, < 0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL, < 0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL, < 0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L, < 0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L, < 0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL, < 0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL, < 0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L, < 0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L, < 0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL, < 0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL, < 0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L, < 0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L, < 0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL, < 0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL, < 0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L, < 0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L, < 0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL, < 0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L, < 0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L, < 0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L, < 0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL, < 0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L, < 0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L, < 0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L, < 0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL, < 0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L, < 0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L, < 0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L, < 0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL, < 0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L, < 0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L --- > 0x00000000UL, 0x04c11db7UL, 0x09823b6eUL, 0x0d4326d9UL, > 0x130476dcUL, 0x17c56b6bUL, 0x1a864db2UL, 0x1e475005UL, > 0x2608edb8UL, 0x22c9f00fUL, 0x2f8ad6d6UL, 0x2b4bcb61UL, > 0x350c9b64UL, 0x31cd86d3UL, 0x3c8ea00aUL, 0x384fbdbdUL, > 0x4c11db70UL, 0x48d0c6c7UL, 0x4593e01eUL, 0x4152fda9UL, > 0x5f15adacUL, 0x5bd4b01bUL, 0x569796c2UL, 0x52568b75UL, > 0x6a1936c8UL, 0x6ed82b7fUL, 0x639b0da6UL, 0x675a1011UL, > 0x791d4014UL, 0x7ddc5da3UL, 0x709f7b7aUL, 0x745e66cdUL, > 0x9823b6e0UL, 0x9ce2ab57UL, 0x91a18d8eUL, 0x95609039UL, > 0x8b27c03cUL, 0x8fe6dd8bUL, 0x82a5fb52UL, 0x8664e6e5UL, > 0xbe2b5b58UL, 0xbaea46efUL, 0xb7a96036UL, 0xb3687d81UL, > 0xad2f2d84UL, 0xa9ee3033UL, 0xa4ad16eaUL, 0xa06c0b5dUL, > 0xd4326d90UL, 0xd0f37027UL, 0xddb056feUL, 0xd9714b49UL, > 0xc7361b4cUL, 0xc3f706fbUL, 0xceb42022UL, 0xca753d95UL, > 0xf23a8028UL, 0xf6fb9d9fUL, 0xfbb8bb46UL, 0xff79a6f1UL, > 0xe13ef6f4UL, 0xe5ffeb43UL, 0xe8bccd9aUL, 0xec7dd02dUL, > 0x34867077UL, 0x30476dc0UL, 0x3d044b19UL, 0x39c556aeUL, > 0x278206abUL, 0x23431b1cUL, 0x2e003dc5UL, 0x2ac12072UL, > 0x128e9dcfUL, 0x164f8078UL, 0x1b0ca6a1UL, 0x1fcdbb16UL, > 0x018aeb13UL, 0x054bf6a4UL, 0x0808d07dUL, 0x0cc9cdcaUL, > 0x7897ab07UL, 0x7c56b6b0UL, 0x71159069UL, 0x75d48ddeUL, > 0x6b93dddbUL, 0x6f52c06cUL, 0x6211e6b5UL, 0x66d0fb02UL, > 0x5e9f46bfUL, 0x5a5e5b08UL, 0x571d7dd1UL, 0x53dc6066UL, > 0x4d9b3063UL, 0x495a2dd4UL, 0x44190b0dUL, 0x40d816baUL, > 0xaca5c697UL, 0xa864db20UL, 0xa527fdf9UL, 0xa1e6e04eUL, > 0xbfa1b04bUL, 0xbb60adfcUL, 0xb6238b25UL, 0xb2e29692UL, > 0x8aad2b2fUL, 0x8e6c3698UL, 0x832f1041UL, 0x87ee0df6UL, > 0x99a95df3UL, 0x9d684044UL, 0x902b669dUL, 0x94ea7b2aUL, > 0xe0b41de7UL, 0xe4750050UL, 0xe9362689UL, 0xedf73b3eUL, > 0xf3b06b3bUL, 0xf771768cUL, 0xfa325055UL, 0xfef34de2UL, > 0xc6bcf05fUL, 0xc27dede8UL, 0xcf3ecb31UL, 0xcbffd686UL, > 0xd5b88683UL, 0xd1799b34UL, 0xdc3abdedUL, 0xd8fba05aUL, > 0x690ce0eeUL, 0x6dcdfd59UL, 0x608edb80UL, 0x644fc637UL, > 0x7a089632UL, 0x7ec98b85UL, 0x738aad5cUL, 0x774bb0ebUL, > 0x4f040d56UL, 0x4bc510e1UL, 0x46863638UL, 0x42472b8fUL, > 0x5c007b8aUL, 0x58c1663dUL, 0x558240e4UL, 0x51435d53UL, > 0x251d3b9eUL, 0x21dc2629UL, 0x2c9f00f0UL, 0x285e1d47UL, > 0x36194d42UL, 0x32d850f5UL, 0x3f9b762cUL, 0x3b5a6b9bUL, > 0x0315d626UL, 0x07d4cb91UL, 0x0a97ed48UL, 0x0e56f0ffUL, > 0x1011a0faUL, 0x14d0bd4dUL, 0x19939b94UL, 0x1d528623UL, > 0xf12f560eUL, 0xf5ee4bb9UL, 0xf8ad6d60UL, 0xfc6c70d7UL, > 0xe22b20d2UL, 0xe6ea3d65UL, 0xeba91bbcUL, 0xef68060bUL, > 0xd727bbb6UL, 0xd3e6a601UL, 0xdea580d8UL, 0xda649d6fUL, > 0xc423cd6aUL, 0xc0e2d0ddUL, 0xcda1f604UL, 0xc960ebb3UL, > 0xbd3e8d7eUL, 0xb9ff90c9UL, 0xb4bcb610UL, 0xb07daba7UL, > 0xae3afba2UL, 0xaafbe615UL, 0xa7b8c0ccUL, 0xa379dd7bUL, > 0x9b3660c6UL, 0x9ff77d71UL, 0x92b45ba8UL, 0x9675461fUL, > 0x8832161aUL, 0x8cf30badUL, 0x81b02d74UL, 0x857130c3UL, > 0x5d8a9099UL, 0x594b8d2eUL, 0x5408abf7UL, 0x50c9b640UL, > 0x4e8ee645UL, 0x4a4ffbf2UL, 0x470cdd2bUL, 0x43cdc09cUL, > 0x7b827d21UL, 0x7f436096UL, 0x7200464fUL, 0x76c15bf8UL, > 0x68860bfdUL, 0x6c47164aUL, 0x61043093UL, 0x65c52d24UL, > 0x119b4be9UL, 0x155a565eUL, 0x18197087UL, 0x1cd86d30UL, > 0x029f3d35UL, 0x065e2082UL, 0x0b1d065bUL, 0x0fdc1becUL, > 0x3793a651UL, 0x3352bbe6UL, 0x3e119d3fUL, 0x3ad08088UL, > 0x2497d08dUL, 0x2056cd3aUL, 0x2d15ebe3UL, 0x29d4f654UL, > 0xc5a92679UL, 0xc1683bceUL, 0xcc2b1d17UL, 0xc8ea00a0UL, > 0xd6ad50a5UL, 0xd26c4d12UL, 0xdf2f6bcbUL, 0xdbee767cUL, > 0xe3a1cbc1UL, 0xe760d676UL, 0xea23f0afUL, 0xeee2ed18UL, > 0xf0a5bd1dUL, 0xf464a0aaUL, 0xf9278673UL, 0xfde69bc4UL, > 0x89b8fd09UL, 0x8d79e0beUL, 0x803ac667UL, 0x84fbdbd0UL, > 0x9abc8bd5UL, 0x9e7d9662UL, 0x933eb0bbUL, 0x97ffad0cUL, > 0xafb010b1UL, 0xab710d06UL, 0xa6322bdfUL, 0xa2f33668UL, > 0xbcb4666dUL, 0xb8757bdaUL, 0xb5365d03UL, 0xb1f740b4UL ------------------------ decompress.c ------------------------ diff bzip2-1.0.5/decompress.c ./decompress.c 41c41 < { retVal = rrr; goto save_state_and_return; }; --- > { retVal = rrr; goto save_state_and_return; } 494c494 < RETURN(BZ_DATA_ERROR); --- > RETURN(BZ_DATA_ERROR) 558c558 < RETURN(BZ_OK); --- > RETURN(BZ_OK) 586c586 < RETURN(BZ_STREAM_END); --- > RETURN(BZ_STREAM_END) ------------------------ huffman.c ------------------------ diff bzip2-1.0.5/huffman.c ./huffman.c ------------------------ randtable.c ------------------------ diff bzip2-1.0.5/randtable.c ./randtable.c