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

Functions

EXPORT errno_t memmove16_s (uint16_t *dest, rsize_t dmax, const uint16_t *src, rsize_t smax)
 The memmove16_s function copies smax uint16_t from the region pointed to by src into the region pointed to by dest. More...
 

Function Documentation

◆ memmove16_s()

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

The memmove16_s function copies smax uint16_t from the region pointed to by src into the region pointed to by dest.

This copying takes place as if the smax uint16_t from the region pointed to by src are first copied into a temporary array of smax uint16_t that does not overlap the regions pointed to by dest or src, and then the smax uint16_t from the temporary array are copied into the region pointed to by dest.

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.
dmax shall not be 0.
dmax shall not be greater than RSIZE_MAX_MEM.
smax shall not be greater than dmax.
Returns
If there is a runtime-constraint violation, the memmove_s function stores zeros in the first dmax characters of the region pointed to by dest if dest is not a null pointer and dmax is not greater than RSIZE_MAX_MEM.
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_MEM
ESNOSPCwhen dmax < smax
See also
memmove_s(), memmove32_s(), memcpy_s(), memcpy16_s() memcpy32_s()