.\" Automatically generated by Pandoc 2.17.1.1 .\" .TH "VDM_MEMCPY" "3" "2022-09-04" "MINIASYNC - miniasync version 0.2.1" "MINIASYNC Programmer's Manual" .hy .\" SPDX-License-Identifier: BSD-3-Clause .\" Copyright 2020-2022, Intel Corporation .SH NAME .PP \f[B]vdm_memcpy\f[R]() - create a new memcpy virtual data mover operation structure .SH SYNOPSIS .IP .nf \f[C] #include struct vdm_operation_output_memcpy { void *dest; }; FUTURE(vdm_operation_future, struct vdm_operation_data, struct vdm_operation_output); struct vdm_operation_future vdm_memcpy(struct vdm *vdm, void *dest, void *src, size_t n, uint64_t flags); \f[R] .fi .PP For general description of virtual data mover API, see \f[B]miniasync_vdm\f[R](7). .SH DESCRIPTION .PP \f[B]vdm_memcpy\f[R]() initializes and returns a new memcpy future based on the virtual data mover implementation instance \f[I]vdm\f[R]. The parameters: \f[I]dest\f[R], \f[I]src\f[R], \f[I]n\f[R] are standard memcpy parameters. The \f[I]flags\f[R] represents data mover specific flags. For example, \f[B]miniasync_vdm_dml\f[R](7) flag \f[B]VDM_F_MEM_DURABLE\f[R] specifies that the write destination is identified as a write to durable memory. This flag is meant to be used only with the \f[B]miniasync_vdm_dml\f[R](7) data mover implementation, providing it to any other data mover will result in undefined behavior. .PP Memcpy future obtained using \f[B]vdm_memcpy\f[R]() will attempt to copy \f[I]n\f[R] bytes from memory area \f[I]src\f[R] to memory area \f[I]dest\f[R] when its polled. .SS RETURN VALUE .PP The \f[B]vdm_memcpy\f[R]() function returns an initialized \f[I]struct vdm_operation_future\f[R] memcpy future. .SH SEE ALSO .PP \f[B]vdm_flush\f[R](3), \f[B]vdm_memmove\f[R](3), \f[B]vdm_memset\f[R](3), \f[B]miniasync\f[R](7), \f[B]miniasync_vdm\f[R](7), \f[B]miniasync_vdm_dml\f[R](7) and \f[B]\f[R]