diff options
author | Steve Reinhardt <steve.reinhardt@amd.com> | 2011-01-03 14:35:45 -0800 |
---|---|---|
committer | Steve Reinhardt <steve.reinhardt@amd.com> | 2011-01-03 14:35:45 -0800 |
commit | 2f4c71968af8e0d2d72f4a2e8699921dcd1e0c77 (patch) | |
tree | 7aa32d8ae4e3722fcc222e452e5937da7c6a25f5 /src/base/compression | |
parent | c69d48f007d2521fdbea52a0a7a95cfc4a547174 (diff) | |
download | gem5-2f4c71968af8e0d2d72f4a2e8699921dcd1e0c77.tar.xz |
Delete unused files from src/base directory.
Diffstat (limited to 'src/base/compression')
-rw-r--r-- | src/base/compression/base.hh | 71 | ||||
-rw-r--r-- | src/base/compression/lzss_compression.cc | 173 | ||||
-rw-r--r-- | src/base/compression/lzss_compression.hh | 103 | ||||
-rw-r--r-- | src/base/compression/null_compression.hh | 63 |
4 files changed, 0 insertions, 410 deletions
diff --git a/src/base/compression/base.hh b/src/base/compression/base.hh deleted file mode 100644 index d80660ac3..000000000 --- a/src/base/compression/base.hh +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2003-2005 The Regents of The University of Michigan - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer; - * redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution; - * neither the name of the copyright holders nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Authors: Erik Hallnor - * Nathan Binkert - */ - -#ifndef __BASE_COMPRESSION_BASE_HH__ -#define __BASE_COMPRESSION_BASE_HH__ - -/** - * @file - * This file defines a base (abstract virtual) compression algorithm object. - */ - -#include "base/types.hh" - -/** - * Abstract virtual compression algorithm object. - */ -class CompressionAlgorithm -{ - public: - virtual ~CompressionAlgorithm() {} - - /** - * Uncompress the data, causes a fatal since no data should be compressed. - * @param dest The output buffer. - * @param src The compressed data. - * @param size The number of bytes in src. - * - * @retval The size of the uncompressed data. - */ - virtual int uncompress(uint8_t * dest, uint8_t *src, int size) = 0; - - /** - * Compress the data, just returns the source data. - * @param dest The output buffer. - * @param src The data to be compressed. - * @param size The number of bytes in src. - * - * @retval The size of the compressed data. - */ - virtual int compress(uint8_t *dest, uint8_t *src, int size) = 0; -}; - -#endif //__BASE_COMPRESSION_BASE_HH__ diff --git a/src/base/compression/lzss_compression.cc b/src/base/compression/lzss_compression.cc deleted file mode 100644 index bd16d82c9..000000000 --- a/src/base/compression/lzss_compression.cc +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright (c) 2003-2005 The Regents of The University of Michigan - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer; - * redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution; - * neither the name of the copyright holders nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Authors: Erik Hallnor - */ - -/** @file - * LZSSCompression definitions. - */ - -#include <cassert> -#include <cstring> -#include "base/compression/lzss_compression.hh" - -#include "base/misc.hh" //for fatal - -void -LZSSCompression::findSubString(uint8_t *src, int back, int size, uint16_t &L, - uint16_t &P) -{ - int front = 0; - int max_length = size - back; - L = 0; - P = back - 1; - while (front < back) { - while (src[front] != src[back] && front < back) ++front; - if (front >= back) { - return; - } - int i = 1; - while (src[front+i] == src[back+i] && i < max_length) ++i; - if (i >= L) { - L = i; - P = front; - } - if (src[front+i] != src[back+i-1]) { - // can't find a longer substring until past this point. - front += i; - } else { - ++front; - } - } -} - -int -LZSSCompression::emitByte(uint8_t *dest, uint8_t byte) -{ - if ((byte >> 5 & 0x7) == 0 || (byte >> 5 & 0x7) == 7) { - // If the top 3 bits are the same, emit 00<6bits> - dest[0] = byte & 0x3f; - return 1; - } else { - // emit 01XXXXXX <8 bits> - dest[0] = 0x40; - dest[1] = byte; - return 2; - } -} - -void -LZSSCompression::emitString(uint8_t *dest, uint16_t P, uint16_t L) -{ - // Emit 1<7P> <5P><3L> <8L> - dest[0] = 1<<7 | (P >> 5 & 0x7f); - dest[1] = ((P & 0x1f) << 3) | (L>>8 & 0x3); - dest[2] = L & 0xFF; -} - -int -LZSSCompression::compress(uint8_t *dest, uint8_t *src, int size) -{ - if (size > 4096) { - fatal("Compression can only handle block sizes of 4096 bytes or less"); - } - - // Encode the first byte. - int dest_index = emitByte(dest, src[0]); - int i = 1; - // A 11 bit field - uint16_t L; - // A 12 bit field - uint16_t P = 0; - - while (i < size && dest_index < size) { - L = 0; - - if (dest_index+3 >= size) { - dest_index = size; - continue; - } - - if (i == size - 1) { - // Output the character - dest_index += emitByte(&dest[dest_index], src[i]); - ++i; - continue; - } - findSubString(src, i, size, L, P); - if (L > 1) { - // Output the string reference - emitString(&dest[dest_index], P, L); - dest_index += 3; - i = i+L; - } else { - // Output the character - dest_index += emitByte(&dest[dest_index], src[i]); - ++i; - } - } - - if (dest_index >= size) { - // Have expansion instead of compression, just copy. - std::memcpy(dest,src,size); - return size; - } - return dest_index; -} - -int -LZSSCompression::uncompress(uint8_t *dest, uint8_t *src, int size) -{ - int index = 0; - int i = 0; - while (i < size) { - if (src[i] & 1<<7 ) { - // We have a string - // Extract P - int start = (src[i] & 0x3f)<<5 | ((src[i+1] >> 3) & 0x1f); - // Extract L - int len = (src[i+1] & 0x07)<<8 | src[i+2]; - i += 3; - for (int j = start; j < start+len; ++j) { - dest[index++] = dest[j]; - } - } else { - // We have a character - if (src[i] & 1<<6) { - // Value is in the next byte - dest[index++] = src[i+1]; - i += 2; - } else { - // just extend the lower 6 bits - dest[index++] = (src[i] & 0x3f) | ((src[i] & 1<<5) ? 0xC0 : 0); - ++i; - } - } - } - return index; -} diff --git a/src/base/compression/lzss_compression.hh b/src/base/compression/lzss_compression.hh deleted file mode 100644 index a23d07ffd..000000000 --- a/src/base/compression/lzss_compression.hh +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (c) 2003-2005 The Regents of The University of Michigan - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer; - * redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution; - * neither the name of the copyright holders nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Authors: Erik Hallnor - */ - -#ifndef __LZSS_COMPRESSION_HH__ -#define __LZSS_COMPRESSION_HH__ - -/** @file - * LZSSCompression declarations. - */ - -#include "base/compression/base.hh" - -/** - * Simple LZSS compression scheme. - */ -class LZSSCompression : public CompressionAlgorithm -{ - /** - * Finds the longest substring for the given offset. - * @param src The source block that we search for substrings. - * @param back The larger offset. - * @param size The size of the source block. - * @param L The length of the largest substring. - * @param P The starting offset of the largest substring. - */ - void findSubString(uint8_t *src, int back, int size, uint16_t &L, - uint16_t &P); - - /** - * Emit an encoded byte to the compressed data array. If the 2 high - * order bits can be signed extended, use 1 byte encoding, if not use 2 - * bytes. - * @param dest The compressed data. - * @param byte The byte to emit. - * @return The number of bytes used to encode. - */ - int emitByte(uint8_t *dest, uint8_t byte); - - /** - * Emit a string reference to the compressed data array. A string reference - * always uses 3 bytes. 1 flag bit, 12 bits for the starting position, and - * 11 bits for the length of the string. This allows compression of 4096 - * byte blocks with string lengths of up to 2048 bytes. - * @param dest The compressed data. - * @param P The starting position in the uncompressed data. - * @param L The length in bytes of the string. - */ - void emitString(uint8_t *dest, uint16_t P, uint16_t L); - - public: - /** - * Compresses the source block and stores it in the destination block. If - * the compressed block grows to larger than the source block, it aborts - * and just performs a copy. - * @param dest The destination block. - * @param src The block to be compressed. - * @param size The size of the source block. - * @return The size of the compressed block. - * - * @pre Destination has enough storage to hold the compressed block. - */ - int compress(uint8_t *dest, uint8_t *src, int size); - - /** - * Unompresses the source block and stores it in the destination block. - * @param dest The destination block. - * @param src The block to be uncompressed. - * @param size The size of the source block. - * @return The size of the uncompressed block. - * - * @pre Destination has enough storage to hold the uncompressed block. - */ - int uncompress(uint8_t *dest, uint8_t *src, int size); -}; - -#endif //__LZSS_COMPRESSION_HH__ diff --git a/src/base/compression/null_compression.hh b/src/base/compression/null_compression.hh deleted file mode 100644 index 798acb77a..000000000 --- a/src/base/compression/null_compression.hh +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2003-2005 The Regents of The University of Michigan - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer; - * redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution; - * neither the name of the copyright holders nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Authors: Erik Hallnor - * Nathan Binkert - */ - -#ifndef __BASE_COMPRESSION_NULL_COMPRESSION_HH__ -#define __BASE_COMPRESSION_NULL_COMPRESSION_HH__ - -/** - * @file - * This file defines a doNothing compression algorithm. - */ - -#include "base/misc.hh" // for fatal() -#include "base/compression/base.hh" - - -/** - * A dummy compression class to use when no data compression is desired. - */ -class NullCompression : public CompressionAlgorithm -{ - public: - int uncompress(uint8_t * dest, uint8_t *src, int size) - { - fatal("Can't uncompress data"); - M5_DUMMY_RETURN - } - - int compress(uint8_t *dest, uint8_t *src, int size) - { - fatal("Can't compress data"); - M5_DUMMY_RETURN - } -}; - -#endif //__BASE_COMPRESSION_NULL_COMPRESSION_HH__ |