mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-25 21:18:19 +00:00
Add basic zlib support to LLVM. This would allow to use compression/uncompression in selected LLVM tools.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180083 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
//===-- llvm/Support/Compression.h ---Compression----------------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file contains basic functions for compression/uncompression.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_SUPPORT_COMPRESSION_H
|
||||
#define LLVM_SUPPORT_COMPRESSION_H
|
||||
|
||||
#include "llvm/Support/DataTypes.h"
|
||||
|
||||
namespace llvm {
|
||||
|
||||
class MemoryBuffer;
|
||||
template<typename T> class OwningPtr;
|
||||
class StringRef;
|
||||
|
||||
namespace zlib {
|
||||
|
||||
enum CompressionLevel {
|
||||
NoCompression,
|
||||
DefaultCompression,
|
||||
BestSpeedCompression,
|
||||
BestSizeCompression
|
||||
};
|
||||
|
||||
enum Status {
|
||||
StatusOK,
|
||||
StatusUnsupported, // zlib is unavaliable
|
||||
StatusOutOfMemory, // there was not enough memory
|
||||
StatusBufferTooShort, // there was not enough room in the output buffer
|
||||
StatusInvalidArg, // invalid input parameter
|
||||
StatusInvalidData // data was corrupted or incomplete
|
||||
};
|
||||
|
||||
bool isAvailable();
|
||||
|
||||
Status compress(StringRef InputBuffer,
|
||||
OwningPtr<MemoryBuffer> &CompressedBuffer,
|
||||
CompressionLevel Level = DefaultCompression);
|
||||
|
||||
Status uncompress(StringRef InputBuffer,
|
||||
OwningPtr<MemoryBuffer> &UncompressedBuffer,
|
||||
size_t UncompressedSize);
|
||||
|
||||
} // End of namespace zlib
|
||||
|
||||
} // End of namespace llvm
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user