summaryrefslogtreecommitdiff
path: root/src/base/compression
diff options
context:
space:
mode:
authorSteve Reinhardt <steve.reinhardt@amd.com>2011-01-03 14:35:45 -0800
committerSteve Reinhardt <steve.reinhardt@amd.com>2011-01-03 14:35:45 -0800
commit2f4c71968af8e0d2d72f4a2e8699921dcd1e0c77 (patch)
tree7aa32d8ae4e3722fcc222e452e5937da7c6a25f5 /src/base/compression
parentc69d48f007d2521fdbea52a0a7a95cfc4a547174 (diff)
downloadgem5-2f4c71968af8e0d2d72f4a2e8699921dcd1e0c77.tar.xz
Delete unused files from src/base directory.
Diffstat (limited to 'src/base/compression')
-rw-r--r--src/base/compression/base.hh71
-rw-r--r--src/base/compression/lzss_compression.cc173
-rw-r--r--src/base/compression/lzss_compression.hh103
-rw-r--r--src/base/compression/null_compression.hh63
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__