#include <common/xroad_common_types.h>
#include <common/xroad_common_fwd.h>
#include <stdlib.h>
#include <stdint.h>
Go to the source code of this file.
|
enum | xroad_mem_pool_flags_t { xroad_mem_pool_lock = 1
, xroad_mem_pool_dont_concat_unused = 2
} |
|
◆ __xroad_mem_pool_dtor__
#define __xroad_mem_pool_dtor__ __dtor__(xroad_mem_pool_destructor) |
◆ xroad_mem_pool_create
#define xroad_mem_pool_create |
( |
|
... | ) |
|
Value:({ \
xroad_mem_pool_create_args_t args = {.page_size = 1024U * 1024U, .num_pages = 1, __VA_ARGS__}; \
xroad_mem_pool_create_ex(args.page_size, args.num_pages, args.flags); \
})
◆ xroad_mem_pool_calloc()
void* xroad_mem_pool_calloc |
( |
xroad_mem_pool_t * |
pool, |
|
|
size_t |
nmemb, |
|
|
size_t |
size |
|
) |
| |
allocate (calloc like) space in memory pool, and zero it
- Parameters
-
[in] | pool | - memory pool |
[in] | nmemb | - number of elements to allocate |
[in] | size | - size of member to allocate |
- Returns
- pointer to allocated memory, else failed
◆ xroad_mem_pool_create_ex()
xroad_mem_pool_t* xroad_mem_pool_create_ex |
( |
uint32_t |
page_size, |
|
|
uint32_t |
num_pages, |
|
|
int32_t |
flags |
|
) |
| |
create new memory pool
- Parameters
-
[in] | page_size | - default size of memory page (default 1MB) |
[in] | num_pages | - number of memory pages to preallocate (default 1) |
[in] | flags | - memory pool flags (default 0) |
- Returns
- pointer to created memory pool
◆ xroad_mem_pool_destroy()
void xroad_mem_pool_destroy |
( |
xroad_mem_pool_t * |
pool | ) |
|
destroy memory pool
- Parameters
-
[in] | pool | - memory pool to destroy |
◆ xroad_mem_pool_free()
void xroad_mem_pool_free |
( |
xroad_mem_pool_t * |
pool, |
|
|
void * |
ptr |
|
) |
| |
free allocated memory in memory pool
- Parameters
-
◆ xroad_mem_pool_get_allocated()
size_t xroad_mem_pool_get_allocated |
( |
xroad_mem_pool_t * |
pool | ) |
|
returns allocated space. For debug purposes only
- Parameters
-
- Returns
- allocated space
◆ xroad_mem_pool_get_err_descr()
xroad_str_t xroad_mem_pool_get_err_descr |
( |
xroad_mem_pool_t * |
pool | ) |
|
gets error description
- Parameters
-
[in] | pool | - memory pool instance |
- Returns
- error description
◆ xroad_mem_pool_get_errno()
xroad_errno_t xroad_mem_pool_get_errno |
( |
xroad_mem_pool_t * |
pool | ) |
|
gets errno, if any
- Parameters
-
[in] | pool | - memory pool instance |
- Returns
- errno value
◆ xroad_mem_pool_get_size()
size_t xroad_mem_pool_get_size |
( |
xroad_mem_pool_t * |
pool | ) |
|
returns pool reserved space size. For debug purposes only
- Parameters
-
- Returns
- reserved space
◆ xroad_mem_pool_malloc()
void* xroad_mem_pool_malloc |
( |
xroad_mem_pool_t * |
pool, |
|
|
size_t |
size |
|
) |
| |
allocate (malloc) space in memory pool
- Parameters
-
[in] | pool | - memory pool |
[in] | size | - memory size to allocate |
- Returns
- pointer to allocated memory, else failed
◆ xroad_mem_pool_realloc()
void* xroad_mem_pool_realloc |
( |
xroad_mem_pool_t * |
pool, |
|
|
void * |
ptr, |
|
|
size_t |
size |
|
) |
| |
realloc memory chunk in memory pool
- Parameters
-
[in] | pool | - memory pool |
[in] | ptr | - memory to realloc |
[in] | size | - new memory chunk size |
- Returns
- reallocated memory chunk