safec  3.0
Safe C Library - ISO TR24731 Bounds Checking Interface
memcpy16_s.c File Reference
#include "safe_mem_lib.h"
+ Include dependency graph for memcpy16_s.c:

Functions

EXPORT errno_t memcpy16_s (uint16_t *dest, rsize_t dmax, const uint16_t *src, rsize_t smax)
 This function copies at most smax uint16_ts from src to dest, up to dmax. More...
 

Function Documentation

◆ memcpy16_s()

EXPORT errno_t memcpy16_s ( uint16_t *  dest,
rsize_t  dmax,
const uint16_t *  src,
rsize_t  smax 
)

This function copies at most smax uint16_ts from src to dest, up to dmax.

Remarks
EXTENSION TO ISO/IEC JTC1 SC22 WG14 N1172, Programming languages, environments and system software interfaces, Extensions to the C Library, Part I: Bounds-checking interfaces
Parameters
[out]destpointer to the memory that will be replaced by src.
[in]dmaxmaximum length of the resulting dest, in bytes
[in]srcpointer to the memory that will be copied to dest
[in]smaxmaximum number bytes of src that can be copied
Precondition
Neither dest nor src shall be a null pointer.
Neither dmax nor smax shall be 0.
dmax shall not be greater than RSIZE_MAX_MEM16.
smax shall not be greater than dmax.
Copying shall not take place between regions that overlap.
Returns
If there is a runtime-constraint violation, the memcpy_s function stores zeros in the first dmax bytes of the region pointed to by dest if dest is not a null pointer and smax is valid.
Return values
EOKwhen operation is successful
ESNULLPwhen dst/src is NULL POINTER
ESZEROLwhen dmax = ZERO. Before C11 also with smax = ZERO
ESLEMAXwhen dmax/smax > RSIZE_MAX_MEM16
ESNOSPCwhen dmax < smax
ESOVRLPwhen src memory overlaps dst
See also
wmemcpy_s(), memcpy_s(), memcpy32_s(), wmemmove_s(), memmove16_s()