rpmem API version 1.1

comment: <> (SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT) comment: <> (LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,) comment: <> (DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY) comment: <> (THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT) comment: <> ((INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE) comment: <> (OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.)

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
SEE ALSO

NAME

rpmem_persist(), rpmem_read(), – functions to copy and read remote pools

SYNOPSIS

#include <librpmem.h>

int rpmem_persist(RPMEMpool *rpp, size_t offset,
	size_t length, unsigned lane);
int rpmem_read(RPMEMpool *rpp, void *buff, size_t offset,
	size_t length, unsigned lane);

DESCRIPTION

The rpmem_persist() function copies data of given length at given offset from the associated local memory pool and makes sure the data is persistent on the remote node before the function returns. The remote node is identified by the rpp handle which must be returned from either rpmem_open(3) or rpmem_create(3). The offset is relative to the pool_addr specified in the rpmem_open(3) or rpmem_create(3) call. The offset and length combined must not exceed the pool_size passed to rpmem_open(3) or rpmem_create(3). The rpmem_persist() operation is performed using the given lane number. The lane must be less than the value returned by rpmem_open(3) or rpmem_create(3) through the nlanes argument (so it can take a value from 0 to nlanes - 1).

The rpmem_read() function reads length bytes of data from a remote pool at offset and copies it to the buffer buff. The operation is performed on the specified lane. The lane must be less than the value returned by rpmem_open(3) or rpmem_create(3) through the nlanes argument (so it can take a value from 0 to nlanes - 1). The rpp must point to a remote pool opened or created previously by rpmem_open(3) or rpmem_create(3).

RETURN VALUE

The rpmem_persist() function returns 0 if the entire memory area was made persistent on the remote node. Otherwise it returns a non-zero value and sets errno appropriately.

The rpmem_read() function returns 0 if the data was read entirely. Otherwise it returns a non-zero value and sets errno appropriately.

SEE ALSO

rpmem_create(3), rpmem_open(3), rpmem_persist(3), sysconf(3), limits.conf(5), libpmemobj(7) and http://pmem.io

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