32 #include "safeclib_private.h" 33 #include "safe_mem_constraint.h" 34 #include "mem_primitives_lib.h" 35 #include "safe_mem_lib.h" 79 memcpy_s (
void * restrict dest, rsize_t dmax,
const void * restrict src, rsize_t smax)
90 return RCNEGATE(ESNULLP);
96 return RCNEGATE(ESZEROL);
99 if (dmax > RSIZE_MAX_MEM || smax > RSIZE_MAX_MEM) {
102 return RCNEGATE(ESLEMAX);
109 return RCNEGATE(ESZEROL);
116 return RCNEGATE(ESNOSPC);
123 return RCNEGATE(ESNULLP);
130 if( ((dp > sp) && (dp < (sp+smax))) ||
131 ((sp > dp) && (sp < (dp+dmax))) ) {
135 return RCNEGATE(ESOVRLP);
143 return RCNEGATE(EOK);
void mem_prim_set(void *dest, uint32_t len, uint8_t value)
Sets len bytes starting at dest to the specified value.
errno_t memcpy_s(void *restrict dest, rsize_t dmax, const void *restrict src, rsize_t smax)
This function copies at most smax bytes from src to dest, up to dmax.
void mem_prim_move(void *dest, const void *src, uint32_t len)
Moves at most len of bytes from src to dest.
void invoke_safe_mem_constraint_handler(const char *msg, void *ptr, errno_t error)
Invokes the currently set constraint handler or the default.