Provided by: libmemkind-dev_1.1.0-0ubuntu1_amd64 

NAME
memkind_arena.h - jemalloc arena allocation memkind operations.
Note: This is EXEPRIMENTAL API. The functionality and the header file itself can be changed (including
non-backward compatible changes), or remove.
SYNOPSIS
#include <memkind/internal/memkind_arena.h>
Link with -lmemkind
int memkind_arena_create(struct memkind *kind, const struct memkind_ops *ops, const char *name);
int memkind_arena_create_map(struct memkind *kind);
int memkind_arena_destroy(struct memkind *kind);
void *memkind_arena_malloc(struct memkind *kind, size_t size);
void *memkind_arena_calloc(struct memkind *kind, size_t num, size_t size);
int memkind_arena_posix_memalign(struct memkind *kind, void **memptr, size_t alignment, size_t size);
void *memkind_arena_realloc(struct memkind *kind, void *ptr, size_t size);
int memkind_thread_get_arena(struct memkind *kind, unsigned int *arena,size_t size");
int memkind_bijective_get_arena(struct memkind *kind, unsigned int *arena,size_t size");
DESCRIPTION
This header file is a collection of functions can be used to populate the memkind operations structure
for memory kinds that use jemalloc.
memkind_arena_create() is an implementation of the memkind "create" operation for memory kinds that use
jemalloc. This calls memkind_default_create() (see memkind_default.h(3)) followed by
memkind_arena_create_map() described below.
memkind_arena_create_map() creates the arena_map array for the memkind structure pointed to by kind which
can be indexed by the ops.get_arena() function from the kind's operations. If get_arena points
memkind_thread_get_arena() then there will be four arenas created for each processor, and if get_arena
points to memkind_bijective_get_arena() then just one arena is created.
memkind_arena_destroy() is an implementation of the memkind "destroy" operation for memory kinds that use
jemalloc. This releases all of the resources allocated by memkind_arena_create().
memkind_arena_malloc() is an implementation of the memkind "malloc" operation for memory kinds that use
jemalloc. This allocates memory using the arenas created by memkind_arena_create() though the jemalloc
jemk_mallocx() interface. It uses the memkind "get_arena" operation to select the arena.
memkind_arena_calloc() is an implementation of the memkind "calloc" operation for memory kinds that use
jemalloc. This allocates memory using the arenas created by memkind_arena_create() though the jemalloc
jemk_mallocx() interface. It uses the memkind "get_arena" operation to select the arena.
memkind_arena_posix_memalign() is an implementation of the memkind "posix_memalign" operation for memory
kinds that use jemalloc. This allocates memory using the arenas created by memkind_arena_create() though
the jemalloc jemk_mallocx() interface. It uses the memkind "get_arena" operation to select the arena.
The POSIX standard requires that posix_memalign(3) may not set errno however the jemk_mallocx() routine
may. In an attempt to abide by the standard errno is recorded before calling jemk_mallocx() and then
reset after the call.
memkind_arena_realloc() is an implementation of the memkind "realloc" operation for memory kinds that use
jemalloc. This allocates memory using the arenas created by memkind_arena_create() though the jemalloc
jemk_mallocx() interface. It uses the memkind "get_arena" operation to select the arena.
memkind_thread_get_arena() Retrieves the arena index that is bound to to the calling thread based on a
hash of its thread ID. The arena index can be used with the MALLOCX_ARENA macro to set flags for
jemk_mallocx().
memkind_bijective_arena_get_arena() Retrieves the arena index to be used with the MALLOCX_ARENA macro to
set flags for jemk_mallocx(). Use of this operation implies that only one arena is used for the kind.
COPYRIGHT
Copyright (C) 2014 - 2016 Intel Corporation. All rights reserved.
SEE ALSO
memkind(3), memkind_default(3), memkind_hbw(3), memkind_hugetlb(3), memkind_gbtlb(3), memkind_pmem(3),
jemalloc(3), mbind(2), mmap(2)
Intel Corporation 2015-04-21 MEMKIND_ARENA(3)