diff options
author | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-02-19 18:52:34 +0000 |
---|---|---|
committer | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-02-19 18:52:34 +0000 |
commit | e2608a967f730f3f2372bda4530235c6604139d7 (patch) | |
tree | 965993ff631bbcf0a8accd0182b8c6f26c2d3325 /ace/Mem_Map.i | |
parent | 9cf80f9de4604004951879e2c249c05ed1b1f098 (diff) | |
download | ATCD-TAO-1_3_1.tar.gz |
This commit was manufactured by cvs2svn to create tag 'TAO-1_3_1'.TAO-1_3_1
Diffstat (limited to 'ace/Mem_Map.i')
-rw-r--r-- | ace/Mem_Map.i | 249 |
1 files changed, 0 insertions, 249 deletions
diff --git a/ace/Mem_Map.i b/ace/Mem_Map.i deleted file mode 100644 index 85495a13dd5..00000000000 --- a/ace/Mem_Map.i +++ /dev/null @@ -1,249 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -ACE_INLINE ACE_HANDLE -ACE_Mem_Map::handle (void) const -{ - ACE_TRACE ("ACE_Mem_Map::handle"); - return this->handle_; -} - -// Return the name of file that is mapped (if any). - -ACE_INLINE const ACE_TCHAR * -ACE_Mem_Map::filename (void) const -{ - return this->filename_; -} - -ACE_INLINE int -ACE_Mem_Map::map (ACE_HANDLE handle, - int len, - int prot, - int share, - void *addr, - off_t offset, - LPSECURITY_ATTRIBUTES sa) -{ - ACE_TRACE ("ACE_Mem_Map::map"); - return this->map_it (handle, len, prot, share, addr, offset, sa); -} - -// Remap the file associated with <this->handle_>. - -ACE_INLINE int -ACE_Mem_Map::map (int len, - int prot, - int share, - void *addr, - off_t offset, - LPSECURITY_ATTRIBUTES sa) -{ - ACE_TRACE ("ACE_Mem_Map::map"); - // If we're already mapped at a particular location then try to - // remap the file using the same base address. - if (addr == 0 && this->base_addr_ != 0 && this->base_addr_ != MAP_FAILED) - { - share |= MAP_FIXED; - addr = this->base_addr_; - } - return this->map_it (this->handle (), len, prot, - share, addr, offset, sa); -} - -// This operator passes back the starting address of the mapped file. - -ACE_INLINE int -ACE_Mem_Map::operator () (void *&addr) -{ - ACE_TRACE ("ACE_Mem_Map::operator"); - - if (this->base_addr_ == MAP_FAILED) - return -1; - else - { - addr = this->base_addr_; - return 0; - } -} - -// Return the base address. - -ACE_INLINE void * -ACE_Mem_Map::addr (void) const -{ - ACE_TRACE ("ACE_Mem_Map::addr"); - - return this->base_addr_; -} - -// This function returns the number of bytes currently mapped in the -// file. - -ACE_INLINE size_t -ACE_Mem_Map::size (void) const -{ - ACE_TRACE ("ACE_Mem_Map::size"); - return this->length_; -} - -ACE_INLINE int -ACE_Mem_Map::close_filemapping_handle (void) -{ - int result = 0; - - if (this->file_mapping_ != this->handle_ - && this->file_mapping_ != ACE_INVALID_HANDLE) - { - // On LynxOS, this will result in unlinking of the (hidden) - // shared memory file if there are no more references to it. - result = ACE_OS::close (this->file_mapping_); - this->file_mapping_ = ACE_INVALID_HANDLE; - } - - return result; -} - -// Unmap the region starting at <this->base_addr_>. - -ACE_INLINE int -ACE_Mem_Map::unmap (int len) -{ - ACE_TRACE ("ACE_Mem_Map::unmap"); - - this->close_filemapping_handle (); - -#if defined (__Lynx__) - int writeback_result = 0; - if (write_enabled_) - { - // Write back the contents of the shared memory object to the - // file. - const off_t filesize = ACE_OS::filesize (handle_); - writeback_result = - ACE_OS::lseek (handle_, 0, 0) != -1 - && ACE_OS::write (handle_, - base_addr_, - (int) filesize) == filesize ? 0 : -1; - } -#endif /* __Lynx__ */ - if (this->base_addr_ != MAP_FAILED) - { - int result = ACE_OS::munmap (this->base_addr_, - len < 0 ? this->length_ : len); - this->base_addr_ = MAP_FAILED; - return result; - } - else -#if defined (__Lynx__) - return writeback_result; -#else /* ! __Lynx__ */ - return 0; -#endif /* ! __Lynx__ */ -} - -// Unmap the region starting at <addr_>. - -ACE_INLINE int -ACE_Mem_Map::unmap (void *addr, int len) -{ - ACE_TRACE ("ACE_Mem_Map::unmap"); - - this->close_filemapping_handle (); - -#if defined (__Lynx__) - int writeback_result = 0; - if (write_enabled_) - { - // Write back the contents of the shared memory object to the file. - const off_t filesize = ACE_OS::filesize (handle_); - writeback_result = - ACE_OS::lseek (handle_, 0, 0) != -1 - && ACE_OS::write (handle_, - base_addr_, - (int) filesize) == filesize ? 0 : -1; - } -#endif /* __Lynx__ */ - -#if defined (__Lynx__) - return ACE_OS::munmap (addr, - len < 0 ? this->length_ : len) - | writeback_result;; -#else /* ! __Lynx__ */ - return ACE_OS::munmap (addr, - len < 0 ? this->length_ : len); -#endif /* ! __Lynx__ */ -} - -// Sync <len> bytes of the memory region to the backing store starting -// at <this->base_addr_>. If <len> == -1 then sync the whole mapped -// region. - -ACE_INLINE int -ACE_Mem_Map::sync (ssize_t len, int flags) -{ - ACE_TRACE ("ACE_Mem_Map::sync"); - return ACE_OS::msync (this->base_addr_, - len < 0 ? this->length_ : len, - flags); -} - -// Sync <len> bytes of the memory region to the backing store starting -// at <addr_>. - -ACE_INLINE int -ACE_Mem_Map::sync (void *addr, size_t len, int flags) -{ - ACE_TRACE ("ACE_Mem_Map::sync"); - return ACE_OS::msync (addr, len, flags); -} - -// Change the protection of the pages of the mapped region to <prot> -// starting at <this->base_addr_> up to <len> bytes. If <len> == -1 -// then change protection of all pages in the mapped region. - -ACE_INLINE int -ACE_Mem_Map::protect (ssize_t len, int prot) -{ - ACE_TRACE ("ACE_Mem_Map::protect"); - if (len < 0) - len = this->length_; - return ACE_OS::mprotect (this->base_addr_, len, prot); -} - -// Change the protection of the pages of the mapped region to <prot> -// starting at <addr> up to <len> bytes. - -ACE_INLINE int -ACE_Mem_Map::protect (void *addr, size_t len, int prot) -{ - ACE_TRACE ("ACE_Mem_Map::protect"); - return ACE_OS::mprotect (addr, len, prot); -} - -// Hook into the underlying VM system. - -ACE_INLINE int -ACE_Mem_Map::advise (int behavior, int len) -{ - ACE_TRACE ("ACE_Mem_Map::advise"); - size_t advise_len = len < 0 ? this->length_ : ACE_static_cast (size_t, len); - return ACE_OS::madvise ((caddr_t) this->base_addr_, - advise_len, - behavior); -} - -ACE_INLINE int -ACE_Mem_Map::close_handle (void) -{ - int result = 0; - - if (this->close_handle_) - { - this->close_handle_ = 0; - result = ACE_OS::close (this->handle_); - this->handle_ = ACE_INVALID_HANDLE; - } - - return result; -} |