pmem2 API version 1.0

The PMDK repository on GitHub is the ultimate source of information on PMDK from release 2.0! For all questions and to submit eventual issues please follow to that repository. The PMDK documentation collected here should be valid up to the 1.13.1 release but is maintained only on a best-effort basis and may not reflect the latest state of the art.

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
ERRORS
SEE ALSO

NAME

pmem2_map_from_existing() - creates a pmem2_map object from an existing mapping

SYNOPSIS

#include <libpmem2.h>

int pmem2_map_from_existing(struct pmem2_map **map, const struct pmem2_source *src,
	void *addr, size_t len, enum pmem2_granularity gran);

DESCRIPTION

The pmem2_map_from_existing() returns a new struct pmem2_map* for mapping provided by the user. This function allows usage of libpmem2(7) API without pmem2_map_new(3) for mapping file. Mapping is defined by addr and len. You have to specify underlying file as a src, and define granularity of this mapping. See pmem2_config_set_required_store_granularity(3) and libpmem2(7) for more details.

For the pmem2_map object created by the pmem2_map_from_existing(3) function, the pmem2_map_delete(3) will only destroy the object, but it won’t unmap the mapping this object describes.

RETURN VALUE

The pmem2_map_from_existing() function returns 0 when it succeeds or a negative error code on failure.

ERRORS

The pmem2_map_from_existing() can fail with the following errors:

PMEM2_E_MAPPING_EXISTS - when contiguous region (addr, addr + len) is already registered by libpmem2

It can also return -ENOMEM from the underlying malloc(2) function.

SEE ALSO

malloc(2), pmem2_map_delete(3), pmem2_map_new(3), pmem2_source_from_fd(3), libpmem2(7) and https://pmem.io

The contents of this web site and the associated GitHub repositories are BSD-licensed open source.