From 99aa8c60282c7b8072eb35eb9ac815702f5bf586 Mon Sep 17 00:00:00 2001 From: "William R. Otte" Date: Tue, 4 Mar 2008 14:51:23 +0000 Subject: undoing accidental deletion --- ACE/ace/Sbrk_Memory_Pool.cpp | 124 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 ACE/ace/Sbrk_Memory_Pool.cpp (limited to 'ACE/ace/Sbrk_Memory_Pool.cpp') diff --git a/ACE/ace/Sbrk_Memory_Pool.cpp b/ACE/ace/Sbrk_Memory_Pool.cpp new file mode 100644 index 00000000000..b747fb9ce15 --- /dev/null +++ b/ACE/ace/Sbrk_Memory_Pool.cpp @@ -0,0 +1,124 @@ +// $Id$ + +#include "ace/OS_NS_unistd.h" +#include "ace/Sbrk_Memory_Pool.h" +#include "ace/Log_Msg.h" + +ACE_RCSID(ace, Sbrk_Memory_Pool, "$Id$") + +#if !defined (ACE_LACKS_SBRK) + +ACE_BEGIN_VERSIONED_NAMESPACE_DECL + +ACE_ALLOC_HOOK_DEFINE(ACE_Sbrk_Memory_Pool) + +// Ask system for more local memory via sbrk(2). + +void * +ACE_Sbrk_Memory_Pool::acquire (size_t nbytes, + size_t &rounded_bytes) +{ + ACE_TRACE ("ACE_Sbrk_Memory_Pool::acquire"); + rounded_bytes = this->round_up (nbytes); + // ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) acquiring more chunks, nbytes = %d, rounded_bytes = %d\n"), nbytes, rounded_bytes)); + void *cp = ACE_OS::sbrk (rounded_bytes); + + if (cp == MAP_FAILED) + ACE_ERROR_RETURN ((LM_ERROR, + "(%P|%t) cp = %u\n", + cp), + 0); + else + // ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) acquired more chunks, nbytes = %d, rounded_bytes = %d, new break = %u\n"), nbytes, rounded_bytes, cp)); + return cp; +} + +/* No-op for now... */ + +int +ACE_Sbrk_Memory_Pool::release (int) +{ + ACE_TRACE ("ACE_Sbrk_Memory_Pool::release"); + return 0; +} + +int +ACE_Sbrk_Memory_Pool::sync (ssize_t, int) +{ + ACE_TRACE ("ACE_Sbrk_Memory_Pool::sync"); + return 0; +} + +int +ACE_Sbrk_Memory_Pool::sync (void *, size_t, int) +{ + ACE_TRACE ("ACE_Sbrk_Memory_Pool::sync"); + return 0; +} + +int +ACE_Sbrk_Memory_Pool::protect (ssize_t, int) +{ + ACE_TRACE ("ACE_Sbrk_Memory_Pool::protect"); + return 0; +} + +int +ACE_Sbrk_Memory_Pool::protect (void *, size_t, int) +{ + ACE_TRACE ("ACE_Sbrk_Memory_Pool::protect"); + return 0; +} + +// Ask system for initial chunk of local memory. + +void * +ACE_Sbrk_Memory_Pool::init_acquire (size_t nbytes, + size_t &rounded_bytes, + int &first_time) +{ + ACE_TRACE ("ACE_Sbrk_Memory_Pool::init_acquire"); + // Note that we assume that when ACE_Sbrk_Memory_Pool is used, + // ACE_Malloc's constructor will only get called once. If this + // assumption doesn't hold, we are in deep trouble! + + first_time = 1; + return this->acquire (nbytes, rounded_bytes); +} + +void +ACE_Sbrk_Memory_Pool::dump (void) const +{ +#if defined (ACE_HAS_DUMP) + ACE_TRACE ("ACE_Sbrk_Memory_Pool::dump"); +#endif /* ACE_HAS_DUMP */ +} + +ACE_Sbrk_Memory_Pool::ACE_Sbrk_Memory_Pool (const ACE_TCHAR *, + const OPTIONS *) +{ + ACE_TRACE ("ACE_Sbrk_Memory_Pool::ACE_Sbrk_Memory_Pool"); +} + +ACE_Sbrk_Memory_Pool::~ACE_Sbrk_Memory_Pool (void) +{ +} + +void * +ACE_Sbrk_Memory_Pool::base_addr (void) const +{ + return 0; +} + +// Round up the request to a multiple of the page size. + +size_t +ACE_Sbrk_Memory_Pool::round_up (size_t nbytes) +{ + ACE_TRACE ("ACE_Sbrk_Memory_Pool::round_up"); + return ACE::round_to_pagesize (nbytes); +} + +ACE_END_VERSIONED_NAMESPACE_DECL + +#endif /* !ACE_LACKS_SBRK */ -- cgit v1.2.1