logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

lc_memsync - synchronize two memory areas

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.

Errors

EINVAL Invalid argument.

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

Library

       Librecast library (liblibrecast, -llibrecast)

Name

       lc_memsync - synchronize two memory areas

Return Value

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

See Also

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

LIBRECAST                                          2023-08-02                                      LC_MEMSYNC(3)

Synopsis

#include<librecast/sync.h>intlc_memsync(void*dst,void*src,constsize_tn,q_t*qlc_stat_t*stats,lc_sync_options_t*opt,intflags);

       Compile and link with -llibrecast.

See Also