Classes | |
class | mrpt::system::CGenericMemoryPool< DATA_PARAMS, POOLABLE_DATA > |
A generic system for versatile memory pooling. More... | |
Macros | |
#define | mrpt_alloca(nBytes) ::malloc( nBytes ) |
In platforms and compilers with support to "alloca", allocate a memory block on the stack; if alloca is not supported, it is emulated as a normal "malloc" - NOTICE: Since in some platforms alloca will be emulated with malloc, alloca_free MUST BE ALWAYS CALLED to avoid memory leaks. More... | |
#define | mrpt_alloca_free(mem_block) free(mem_block) |
This method must be called to "free" each memory block allocated with "system::alloca": If the block was really allocated in the stack, no operation is actually performed, otherwise it will be freed from the heap. More... | |
Functions | |
unsigned long BASE_IMPEXP | mrpt::system::getMemoryUsage () |
Returns the memory occupied by this process, in bytes. More... | |
void BASE_IMPEXP * | mrpt::system::os::aligned_malloc (size_t bytes, size_t alignment) |
Returns an aligned memory block. More... | |
void * | mrpt::system::os::aligned_calloc (size_t bytes, size_t alignment) |
Identical to aligned_malloc, but it zeroes the reserved memory block. More... | |
void BASE_IMPEXP * | mrpt::system::os::aligned_realloc (void *old_ptr, size_t bytes, size_t alignment) |
Frees a memory block reserved by aligned_malloc. More... | |
void BASE_IMPEXP | mrpt::system::os::aligned_free (void *p) |
Frees a memory block reserved by aligned_malloc. More... | |
template<typename _Tp > | |
_Tp * | mrpt::system::os::align_ptr (_Tp *ptr, int n=(int) sizeof(_Tp)) |
Returns a pointer a bit forward in memory so it's aligned for the given boundary size. More... | |
template<int bytes> | |
bool | mrpt::system::is_aligned (const void *ptr) |
template<> | |
bool | mrpt::system::is_aligned< 8 > (const void *ptr) |
template<> | |
bool | mrpt::system::is_aligned< 16 > (const void *ptr) |
#define mrpt_alloca | ( | nBytes | ) | ::malloc( nBytes ) |
In platforms and compilers with support to "alloca", allocate a memory block on the stack; if alloca is not supported, it is emulated as a normal "malloc" - NOTICE: Since in some platforms alloca will be emulated with malloc, alloca_free MUST BE ALWAYS CALLED to avoid memory leaks.
This method MUST BE a macro rather than a function in order to operate on the caller's stack.
#define mrpt_alloca_free | ( | mem_block | ) | free(mem_block) |
This method must be called to "free" each memory block allocated with "system::alloca": If the block was really allocated in the stack, no operation is actually performed, otherwise it will be freed from the heap.
This method MUST BE a macro rather than a function in order to operate on the caller's stack.
|
inline |
|
inline |
Identical to aligned_malloc, but it zeroes the reserved memory block.
Definition at line 71 of file memory.h.
References mrpt::system::os::aligned_malloc().
Referenced by mrpt::math::CMatrixTemplate< T >::realloc().
void BASE_IMPEXP mrpt::system::os::aligned_free | ( | void * | p | ) |
Frees a memory block reserved by aligned_malloc.
Referenced by mrpt::math::CMatrixTemplate< T >::realloc().
void BASE_IMPEXP * mrpt::system::os::aligned_malloc | ( | size_t | bytes, |
size_t | alignment | ||
) |
Returns an aligned memory block.
alignment | The desired alignment, typ. 8 or 16 bytes. 1 means no alignment required. It must be a power of two. |
Referenced by mrpt::system::os::aligned_calloc().
void BASE_IMPEXP * mrpt::system::os::aligned_realloc | ( | void * | old_ptr, |
size_t | bytes, | ||
size_t | alignment | ||
) |
Frees a memory block reserved by aligned_malloc.
alignment | The desired alignment, typ. 8 or 16 bytes. 1 means no alignment required. If old_ptr is NULL, a new block will be reserved from scratch. |
Referenced by mrpt::math::CMatrixTemplate< T >::realloc().
unsigned long BASE_IMPEXP mrpt::system::getMemoryUsage | ( | ) |
Returns the memory occupied by this process, in bytes.
bool mrpt::system::is_aligned | ( | const void * | ptr | ) |
|
inline |
|
inline |
Page generated by Doxygen 1.9.2 for MRPT 1.4.0 SVN: at Mon Sep 20 00:21:40 UTC 2021 |