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

NAME

       memkind_pmem.h - file-backed memory 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_pmem.h>

       Link with -lmemkind

       int memkind_pmem_create(struct memkind *kind, const struct memkind_ops *ops, const char *name);
       int memkind_pmem_destroy(struct memkind *kind);
       void *memkind_pmem_mmap(struct memkind *kind, void *addr, size_t size);
       int memkind_pmem_get_mmap_flags(struct memkind *kind, int *flags);
       int memkind_pmem_get_size(struct memkind *kind, size_t *total, size_t *free);

DESCRIPTION

       The pmem memory memkind operations enable  memory  kinds  built  on  memory-mapped  files.
       These  support  traditional  volatile memory allocation in a fashion similar to libvmem(3)
       library.  It uses the mmap(2) system call to create  a  pool  of  volatile  memory.   Such
       memory  may have different attributes, depending on the file system containing the memory-
       mapped files.  (See also http://pmem.io/nvml/libvmem).

       The pmem memkinds are most useful when used with Direct Access  storage  (DAX),  which  is
       memory-addressable  persistent storage that supports load/store access without being paged
       via the system page cache.  A Persistent Memory-aware file system  is  typically  used  to
       provide this type of access.

       The  most  convenient  way  to  create  pmem memkinds is to use memkind_create_pmem() (see
       memkind(3)).

       memkind_pmem_create() is an implementation of the memkind  "create"  operation  for  file-
       backed  memory  kinds.  This allocates a space for some pmem-specific metadata, then calls
       memkind_arena_create() (see memkind_arena(3))

       memkind_pmem_destroy() is an implementation of the memkind "destroy" operation  for  file-
       backed    memory   kinds.    This   releases   all   of   the   resources   allocated   by
       memkind_pmem_create() and allows the file system space to be reclaimed.

       memkind_pmem_mmap() allocates the file system space for a  block  of  size  bytes  in  the
       memory-mapped  file  associated  with  given  kind.  The addr hint is ignored.  The return
       value is the address of mapped memory region or MAP_FAILED in the case of an error.

       memkind_pmem_get_mmap_flags() sets flags to MAP_SHARED.  See mmap(2) for more  information
       about these flags.

       memkind_pmem_get_size()  sets  total  to the number of bytes of the entire usable space in
       the memory-mapped file associated with the specified kind, and sets free to the number  of
       unused bytes available in the memory-mapped file.

       MEMKIND_PMEM_MIN_SIZE
              The minimum size of the file-backed memory partition.

COPYRIGHT

       Copyright (C) 2015 - 2016 Intel Corporation. All rights reserved.

SEE ALSO

       memkind(3),   memkind_arena(3),   memkind_default(3),   memkind_gbtlb(3),  memkind_hbw(3),
       memkind_hugetlb(3), libvmem(3), jemalloc(3), mbind(2), mmap(2)