summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2011-03-10 16:10:30 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2011-03-10 16:10:30 +0000
commit7deb187736b09aa0805b7d9902f499e41feefccc (patch)
treee67971dbd1c7736b05ad55d67b4b383c925c090f /include
parentbe2e1b50c427278e45736388a3e7fea0dd825513 (diff)
downloadllvm-7deb187736b09aa0805b7d9902f499e41feefccc.tar.gz
llvm-7deb187736b09aa0805b7d9902f499e41feefccc.tar.bz2
llvm-7deb187736b09aa0805b7d9902f499e41feefccc.tar.xz
Add support for MemoryBuffers that are not null terminated and add
support for creating buffers that cover only a part of a file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127409 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Support/MemoryBuffer.h8
-rw-r--r--include/llvm/Support/PathV1.h5
2 files changed, 9 insertions, 4 deletions
diff --git a/include/llvm/Support/MemoryBuffer.h b/include/llvm/Support/MemoryBuffer.h
index b6243b7b10..a52dc11cff 100644
--- a/include/llvm/Support/MemoryBuffer.h
+++ b/include/llvm/Support/MemoryBuffer.h
@@ -40,7 +40,8 @@ class MemoryBuffer {
MemoryBuffer &operator=(const MemoryBuffer &); // DO NOT IMPLEMENT
protected:
MemoryBuffer() {}
- void init(const char *BufStart, const char *BufEnd);
+ void init(const char *BufStart, const char *BufEnd,
+ bool RequiresNullTerminator);
public:
virtual ~MemoryBuffer();
@@ -72,7 +73,10 @@ public:
/// return a MemoryBuffer.
static error_code getOpenFile(int FD, const char *Filename,
OwningPtr<MemoryBuffer> &result,
- int64_t FileSize = -1);
+ size_t FileSize = -1,
+ size_t MapSize = -1,
+ off_t Offset = 0,
+ bool RequiresNullTerminator = true);
/// getMemBuffer - Open the specified memory range as a MemoryBuffer. Note
/// that InputData must be null terminated.
diff --git a/include/llvm/Support/PathV1.h b/include/llvm/Support/PathV1.h
index d7753a3e71..024bb39ced 100644
--- a/include/llvm/Support/PathV1.h
+++ b/include/llvm/Support/PathV1.h
@@ -608,14 +608,15 @@ namespace sys {
///
/// This API is not intended for general use, clients should use
/// MemoryBuffer::getFile instead.
- static const char *MapInFilePages(int FD, uint64_t FileSize);
+ static const char *MapInFilePages(int FD, size_t FileSize,
+ off_t Offset);
/// UnMapFilePages - Free pages mapped into the current process by
/// MapInFilePages.
///
/// This API is not intended for general use, clients should use
/// MemoryBuffer::getFile instead.
- static void UnMapFilePages(const char *Base, uint64_t FileSize);
+ static void UnMapFilePages(const char *Base, size_t FileSize);
/// @}
/// @name Data