.\" Automatically generated by Pandoc 2.17.1.1 .\" .TH "MINIASYNC_VDM_SYNCHRONOUS" "7" "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]miniasync_vdm_synchronous\f[R] - synchronous implementation of \f[B]miniasync\f[R](7) virtual data mover .SH SYNOPSIS .IP .nf \f[C] #include \f[R] .fi .PP For general description of virtual data mover API, see \f[B]miniasync\f[R](7). .SH DESCRIPTION .PP Synchronous data mover is a synchronous implementation of the virtual data mover interface. .PP When the future is polled for the first time the data mover operation will be executed synchronously on the same thread that polled the future. .PP To create a new synchronous data mover instance, use \f[B]data_mover_sync_new\f[R](3) function. .PP Synchronous data mover supports following operations: .IP \[bu] 2 \f[B]vdm_memcpy\f[R](3) - memory copy operation .IP \[bu] 2 \f[B]vdm_memmove\f[R](3) - memory move operation .IP \[bu] 2 \f[B]vdm_memset\f[R](3) - memory set operation .PP Synchronous data mover does not support notifier feature. For more information about notifiers, see \f[B]miniasync_future\f[R](7). .PP For more information about the usage of thread data mover API, see \f[I]examples\f[R] directory in miniasync repository . .SH EXAMPLE .PP Example usage of synchronous data mover \f[B]vdm_memcpy\f[R](3) operation: .IP .nf \f[C] struct data_mover_sync *dms = data_mover_sync_new(); struct vdm *sync_mover = data_mover_sync_get_vdm(dms); struct vdm_memcpy_future memcpy_fut = vdm_memcpy(sync_mover, dest, src, copy_size, 0); \f[R] .fi .SH SEE ALSO .PP \f[B]data_mover_sync_new\f[R](3), \f[B]data_mover_sync_get_vdm\f[R](3), \f[B]vdm_memcpy\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_future\f[R](7), \f[B]miniasync_vdm\f[R](7) and \f[B]\f[R]