From 2e3d2c6ec83934a2feba64adb71ae07eb0daf545 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 1 Apr 2008 06:00:12 +0000 Subject: [PATCH] Stub out some sys::Path::MapInFilePages/UnMapFilePages methods. llvm-svn: 49030 --- include/llvm/System/Path.h | 23 +++++++++++++++++++++++ lib/System/Unix/Path.inc | 10 ++++++++++ lib/System/Win32/Path.inc | 10 ++++++++++ 3 files changed, 43 insertions(+) diff --git a/include/llvm/System/Path.h b/include/llvm/System/Path.h index 303235db3ef..1178d689819 100644 --- a/include/llvm/System/Path.h +++ b/include/llvm/System/Path.h @@ -544,6 +544,29 @@ namespace sys { /// @brief Removes the file or directory from the filesystem. bool eraseFromDisk(bool destroy_contents = false, std::string *Err = 0) const; + + + /// MapInFilePages - This is a low level system API to map in the file + /// that is currently opened as FD into the current processes' address + /// space for read only access. This function may return null on failure + /// or if the system cannot provide the following constraints: + /// 1) The pages must be valid after the FD is closed, until + /// UnMapFilePages is called. + /// 2) Any padding after the end of the file must be zero filled, if + /// present. + /// 3) The pages must be contiguous. + /// + /// This API is not intended for general use, clients should use + /// MemoryBuffer::getFile instead. + static const char *MapInFilePages(int FD, uint64_t FileSize); + + /// 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); + /// @} /// @name Data /// @{ diff --git a/lib/System/Unix/Path.inc b/lib/System/Unix/Path.inc index e11213294c6..b0578dcdba4 100644 --- a/lib/System/Unix/Path.inc +++ b/lib/System/Unix/Path.inc @@ -745,5 +745,15 @@ Path::makeUnique(bool reuse_current, std::string* ErrMsg) { return false; } +/// MapInFilePages - Not yet implemented on win32. +const char *Path::MapInFilePages(int FD, uint64_t FileSize) { + return 0; +} + +/// MapInFilePages - Not yet implemented on win32. +void Path::UnMapFilePages(const char *Base, uint64_t FileSize) { + assert(0 && "NOT IMPLEMENTED"); +} + } // end llvm namespace diff --git a/lib/System/Win32/Path.inc b/lib/System/Win32/Path.inc index b25e66140bf..da29cd3596c 100644 --- a/lib/System/Win32/Path.inc +++ b/lib/System/Win32/Path.inc @@ -773,5 +773,15 @@ Path::createTemporaryFileOnDisk(bool reuse_current, std::string* ErrMsg) { return false; } +/// MapInFilePages - Not yet implemented on win32. +const char *Path::MapInFilePages(int FD, uint64_t FileSize) { + return 0; +} + +/// MapInFilePages - Not yet implemented on win32. +void Path::UnMapFilePages(const char *Base, uint64_t FileSize) { + assert(0 && "NOT IMPLEMENTED"); +} + } }