mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 04:24:31 +01:00
tools/nolibc: add missing memchr() to string.h
Surprisingly we forgot to add this common one. It was added with a per-arch guard allowing to later implement it in arch-specific asm code like was done for a few other ones. The test verifies that we don't search past the indicated length. Signed-off-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
This commit is contained in:
parent
09c873c91f
commit
db75042e93
2 changed files with 17 additions and 0 deletions
|
|
@ -93,6 +93,21 @@ void *memset(void *dst, int b, size_t len)
|
|||
}
|
||||
#endif /* #ifndef NOLIBC_ARCH_HAS_MEMSET */
|
||||
|
||||
#ifndef NOLIBC_ARCH_HAS_MEMCHR
|
||||
static __attribute__((unused))
|
||||
void *memchr(const void *s, int c, size_t len)
|
||||
{
|
||||
char *p = (char *)s;
|
||||
|
||||
while (len--) {
|
||||
if (*p == (char)c)
|
||||
return p;
|
||||
p++;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
#endif /* #ifndef NOLIBC_ARCH_HAS_MEMCHR */
|
||||
|
||||
static __attribute__((unused))
|
||||
char *strchr(const char *s, int c)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1549,6 +1549,8 @@ int run_stdlib(int min, int max)
|
|||
CASE_TEST(abs); EXPECT_EQ(1, abs(-10), 10); break;
|
||||
CASE_TEST(abs_noop); EXPECT_EQ(1, abs(10), 10); break;
|
||||
CASE_TEST(difftime); EXPECT_ZR(1, test_difftime()); break;
|
||||
CASE_TEST(memchr_foobar6_o); EXPECT_STREQ(1, memchr("foobar", 'o', 6), "oobar"); break;
|
||||
CASE_TEST(memchr_foobar3_b); EXPECT_STRZR(1, memchr("foobar", 'b', 3)); break;
|
||||
|
||||
case __LINE__:
|
||||
return ret; /* must be last */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue