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_vm_reservation_map_find(), pmem2_vm_reservation_map_find_prev(), pmem2_vm_reservation_map_find_next(), pmem2_vm_reservation_map_find_first() and pmem2_vm_reservation_map_find_last() - search for the mapping located at the desirable location

SYNOPSIS

#include <libpmem2.h>

struct pmem2_map;
struct pmem2_vm_reservation;
int pmem2_vm_reservation_map_find(struct pmem2_vm_reservation *rsv,
		size_t reserv_offset, size_t len, struct pmem2_map **map_ptr);
int pmem2_vm_reservation_map_find_prev(struct pmem2_vm_reservation *rsv,
		struct pmem2_map *map, struct pmem2_map **prev_map);
int pmem2_vm_reservation_map_find_next(struct pmem2_vm_reservation *rsv,
		struct pmem2_map *map, struct pmem2_map **next_map);
int pmem2_vm_reservation_map_find_first(struct pmem2_vm_reservation *rsv,
		struct pmem2_map **first_map);
int pmem2_vm_reservation_map_find_last(struct pmem2_vm_reservation *rsv,
		struct pmem2_map **last_map);

DESCRIPTION

Mappings are inserted to the virtual memory reservation in the order of their virtual address space location. First mapping represents the earliest mapping in the virtual address space contained in a reservation, whereas the last mapping represents the last one.

The pmem2_vm_reservation_map_find() function searches for the earliest mapping, stored in the virtual memory reservation, intersecting with the interval defined by reserv_offset and len variables and returns it via map_ptr variable.

pmem2_vm_reservation_map_find_prev() function searches for the map previous to the provided map and returns it via provided prev_map variable.

pmem2_vm_reservation_map_find_next() function searches for the map next after the provided map and returns it via next_map variable.

pmem2_vm_reservation_map_find_first() function searches for the first map in the reservation and returns it via provided first_map variable.

pmem2_vm_reservation_map_find_last() function searches for the last map in the reservation and returns it via provided last_map variable.

RETURN VALUE

The pmem2_vm_reservation_map_find(), pmem2_vm_reservation_map_find_prev(), pmem2_vm_reservation_map_find_next(), pmem2_vm_reservation_map_find_first() and pmem2_vm_reservation_map_find_last() return 0 on success or a negative error on failure.

It passes an address to the found mapping via user provided map pointer variable on success, otherwise it passes NULL value when no mapping was found.

ERRORS

The pmem2_vm_reservation_map_find(), pmem2_vm_reservation_map_find_prev(), pmem2_vm_reservation_map_find_next(), pmem2_vm_reservation_map_find_first() and pmem2_vm_reservation_map_find_last() can fail with the following errors:

  • PMEM2_E_MAPPING_NOT_FOUND - no mapping found at the desirable location of the reservation

SEE ALSO

libpmem2(7), and https://pmem.io

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