From e223e635cc53fa11e473cdbc864eb69a3da5f290 Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Sun, 16 Aug 2020 15:55:19 -0400 Subject: add skeleton of symbols from C11 LIB_EXT1 --- src/string/memcpy_s.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/string/memcpy_s.c (limited to 'src/string/memcpy_s.c') diff --git a/src/string/memcpy_s.c b/src/string/memcpy_s.c new file mode 100644 index 00000000..366a879c --- /dev/null +++ b/src/string/memcpy_s.c @@ -0,0 +1,35 @@ +#include "string.h" +#include "sys/_nonstd_.h" + +/** copy memory **/ +errno_t memcpy_s(void * restrict s1, rsize_t s1max, const void * restrict s2, rsize_t n) +{ + __C_EXT(1, 201112L); + __ASSERT_NONNULL(s1); + __ASSERT_NONNULL(s2); + __ASSERT_NOOVERLAP(s1, s2, n); + + char *dst = (char*)s1, *src = (char*)s2; + int i = 0; + while (i < n) { + dst[i] = src[i]; + i++; + } + return dst; +} + +/*** +The fn(memcpy) copies arg(n) bytes from the object at arg(s2) to the object at +arg(s1). +***/ + +/* UNSPECIFIED: - */ +/* UNDEFINED: if the objects overlap */ +/* IMPLEMENTATION: - */ +/* LOCALE: - */ + +/* RETURN: the value of arg(s1) */ + +/* +CEXT1(201112) +*/ -- cgit v1.2.1