Provided by: liblibrecast-dev_0.8.0-1.1build1_amd64 bug

NAME

       lc_memsync - synchronize two memory areas

LIBRARY

       Librecast library (liblibrecast, -llibrecast)

SYNOPSIS

       #include <librecast/sync.h>

       int lc_memsync(void *dst, void *src, const size_t n, q_t *q
                      lc_stat_t *stats, lc_sync_options_t *opt, int flags);

       Compile and link with -llibrecast.

DESCRIPTION

       The  lc_memsync  function  synchronizes  two  non-overlapping memory areas of size n bytes
       using merkle tree comparison, overwriting dst with bytes from src.

       If q is not NULL, it must point to a  queue  q_t  structure  previously  initialized  with
       q_init(3).   This  queue will have jobs enqueued to build the trees. This is normally used
       in conjunction with a threadpool created with q_pool_create(3) with  threads  all  calling
       q_job_seek(3).

       If  q  is  NULL,  the  creation  and destruction of a queue and threadpool will be handled
       automatically.

       If stats is not NULL, transfer statistics will be returned in this structure.

       opt is not used, at present, and must be NULL for compatibility with future versions.

       flags is not used, at present, and must be zero for compatibility with future versions.

RETURN VALUE

       lc_memsync() returns zero on success.  On error, -1 is  returned,  and  errno  is  set  to
       indicate the error.

ERRORS

       EINVAL Invalid argument.

       ENOMEM Not enough space/cannot allocate memory (POSIX.1-2001).

SEE ALSO

       q_init(3), q_free(3), q_pool_create(3)