Add strlen() and strnlen() to commonlib/bsd by rewriting them from scratch, and remove the same functions from coreboot and libpayload. Note that in the existing libpayload implementation, these functions return 0 for NULL strings. Given that POSIX doesn't require the NULL check and that other major libc implementations (e.g. glibc [1]) don't seem to do that, the new functions also don't perform the NULL check. [1] https://github.com/bminor/glibc/blob/master/sysdeps/i386/strlen.c Change-Id: I1203ec9affabe493bd14b46662d212b08240cced Signed-off-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/83830 Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
38 lines
1.3 KiB
C
38 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
|
|
#ifndef STRING_H
|
|
#define STRING_H
|
|
|
|
#include <commonlib/bsd/string.h>
|
|
#include <stddef.h>
|
|
|
|
void *memcpy(void *dest, const void *src, size_t n);
|
|
void *memmove(void *dest, const void *src, size_t n);
|
|
void *memset(void *s, int c, size_t n);
|
|
int memcmp(const void *s1, const void *s2, size_t n);
|
|
void *memchr(const void *s, int c, size_t n);
|
|
char *strdup(const char *s);
|
|
char *strconcat(const char *s1, const char *s2);
|
|
char *strchr(const char *s, int c);
|
|
char *strncpy(char *to, const char *from, size_t count);
|
|
char *strcpy(char *dst, const char *src);
|
|
int strcmp(const char *s1, const char *s2);
|
|
int strncmp(const char *s1, const char *s2, size_t maxlen);
|
|
size_t strspn(const char *str, const char *spn);
|
|
size_t strcspn(const char *str, const char *spn);
|
|
char *strstr(const char *haystack, const char *needle);
|
|
char *strtok_r(char *str, const char *delim, char **ptr);
|
|
char *strtok(char *str, const char *delim);
|
|
long atol(const char *str);
|
|
|
|
/**
|
|
* Find a character in a string.
|
|
*
|
|
* @param s The string.
|
|
* @param c The character.
|
|
* @return A pointer to the last occurrence of the character in the
|
|
* string, or NULL if the character was not encountered within the string.
|
|
*/
|
|
char *strrchr(const char *s, int c);
|
|
|
|
#endif /* STRING_H */
|