9CHERIOT_DECLARE_STANDARD_LIBCALL(memcmp,
14CHERIOT_DECLARE_STANDARD_LIBCALL(memcmp,
19CHERIOT_DECLARE_STANDARD_LIBCALL(memcpy,
24CHERIOT_DECLARE_STANDARD_LIBCALL(memccpy,
30CHERIOT_DECLARE_STANDARD_LIBCALL(memset,
void *,
void *,
int,
size_t)
31CHERIOT_DECLARE_STANDARD_LIBCALL(memmove,
36CHERIOT_DECLARE_STANDARD_LIBCALL(memchr,
void *,
const void *,
int,
size_t)
37CHERIOT_DECLARE_STANDARD_LIBCALL(memrchr,
void *,
const void *,
int,
size_t)
38CHERIOT_DECLARE_STANDARD_LIBCALL(strlen,
size_t,
const char *str)
39CHERIOT_DECLARE_STANDARD_LIBCALL(strnlen,
43CHERIOT_DECLARE_STANDARD_LIBCALL(strncmp,
48CHERIOT_DECLARE_STANDARD_LIBCALL(strncpy,
53CHERIOT_DECLARE_STANDARD_LIBCALL(strcmp,
int,
const char *s1,
const char *s2)
54CHERIOT_DECLARE_STANDARD_LIBCALL(strnstr,
58 size_t haystackLength)
59CHERIOT_DECLARE_STANDARD_LIBCALL(strchr,
char *,
const char *s,
int c)
60CHERIOT_DECLARE_STANDARD_LIBCALL(strlcpy,
71void __cheri_libcall explicit_bzero(
void *s,
size_t n);
73__always_inline
static inline char *strcpy(
char *dst,
const char *src)
75 return dst + strlcpy(dst, src, SIZE_MAX);
78__always_inline
static inline char *strstr(
const char *haystack,
81 return strnstr(haystack, needle, SIZE_MAX);