diff options
| -rw-r--r-- | llvm/include/llvm/System/Path.h | 23 | ||||
| -rw-r--r-- | llvm/lib/System/Unix/Path.inc | 10 | ||||
| -rw-r--r-- | llvm/lib/System/Win32/Path.inc | 10 | 
3 files changed, 43 insertions, 0 deletions
diff --git a/llvm/include/llvm/System/Path.h b/llvm/include/llvm/System/Path.h index 303235db3ef..1178d689819 100644 --- a/llvm/include/llvm/System/Path.h +++ b/llvm/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/llvm/lib/System/Unix/Path.inc b/llvm/lib/System/Unix/Path.inc index e11213294c6..b0578dcdba4 100644 --- a/llvm/lib/System/Unix/Path.inc +++ b/llvm/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/llvm/lib/System/Win32/Path.inc b/llvm/lib/System/Win32/Path.inc index b25e66140bf..da29cd3596c 100644 --- a/llvm/lib/System/Win32/Path.inc +++ b/llvm/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"); +} +  }  }  | 

