diff options
author | Philipp Hug <philipp@hug.cx> | 2019-02-11 20:50:31 +0100 |
---|---|---|
committer | ron minnich <rminnich@gmail.com> | 2019-02-11 23:17:37 +0000 |
commit | b2566f207ed858604747bf306dfdd993bda517aa (patch) | |
tree | 43a4a2794329c4abff47902c5c12315f7ff32d92 /payloads/libpayload | |
parent | 2d8aff3d9348bc500dd7382f173b7d9b028ff44d (diff) | |
download | coreboot-b2566f207ed858604747bf306dfdd993bda517aa.tar.xz |
libpayload: add memchr to libc
libfdt requires memchr. Add missing function to libc.
Change-Id: I872026559d16a352f350147c9d7c4be97456a99f
Signed-off-by: Philipp Hug <philipp@hug.cx>
Reviewed-on: https://review.coreboot.org/c/31354
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'payloads/libpayload')
-rw-r--r-- | payloads/libpayload/include/string.h | 1 | ||||
-rw-r--r-- | payloads/libpayload/libc/memory.c | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/payloads/libpayload/include/string.h b/payloads/libpayload/include/string.h index ca5d5131e2..4aff0e8994 100644 --- a/payloads/libpayload/include/string.h +++ b/payloads/libpayload/include/string.h @@ -39,6 +39,7 @@ void *memset(void *s, int c, size_t n); void *memcpy(void *dst, const void *src, size_t n); void *memmove(void *dst, const void *src, size_t n); +void *memchr(const void *s, int c, size_t n); int memcmp(const void *s1, const void *s2, size_t len); /** @} */ diff --git a/payloads/libpayload/libc/memory.c b/payloads/libpayload/libc/memory.c index 25c2b3af4f..8ee3eed9da 100644 --- a/payloads/libpayload/libc/memory.c +++ b/payloads/libpayload/libc/memory.c @@ -145,3 +145,15 @@ static int default_memcmp(const void *s1, const void *s2, size_t n) int memcmp(const void *s1, const void *s2, size_t n) __attribute__((weak, alias("default_memcmp"))); + + +void *memchr(const void *s, int c, size_t n) +{ + unsigned char *p = (unsigned char *)s; + while (n--) + if (*p != (unsigned char)c) + p++; + else + return p; + return 0; +} |