Provided by: libmemkind-dev_1.1.0-0ubuntu1_amd64 bug

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)