1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef BOOT_STRING_H 3*4882a593Smuzhiyun #define BOOT_STRING_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun /* Undef any of these macros coming from string_32.h. */ 6*4882a593Smuzhiyun #undef memcpy 7*4882a593Smuzhiyun #undef memset 8*4882a593Smuzhiyun #undef memcmp 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun void *memcpy(void *dst, const void *src, size_t len); 11*4882a593Smuzhiyun void *memset(void *dst, int c, size_t len); 12*4882a593Smuzhiyun int memcmp(const void *s1, const void *s2, size_t len); 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun /* Access builtin version by default. */ 15*4882a593Smuzhiyun #define memcpy(d,s,l) __builtin_memcpy(d,s,l) 16*4882a593Smuzhiyun #define memset(d,c,l) __builtin_memset(d,c,l) 17*4882a593Smuzhiyun #define memcmp __builtin_memcmp 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun extern int strcmp(const char *str1, const char *str2); 20*4882a593Smuzhiyun extern int strncmp(const char *cs, const char *ct, size_t count); 21*4882a593Smuzhiyun extern size_t strlen(const char *s); 22*4882a593Smuzhiyun extern char *strstr(const char *s1, const char *s2); 23*4882a593Smuzhiyun extern char *strchr(const char *s, int c); 24*4882a593Smuzhiyun extern size_t strnlen(const char *s, size_t maxlen); 25*4882a593Smuzhiyun extern unsigned int atou(const char *s); 26*4882a593Smuzhiyun extern unsigned long long simple_strtoull(const char *cp, char **endp, 27*4882a593Smuzhiyun unsigned int base); 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun int kstrtoull(const char *s, unsigned int base, unsigned long long *res); 30*4882a593Smuzhiyun int boot_kstrtoul(const char *s, unsigned int base, unsigned long *res); 31*4882a593Smuzhiyun #endif /* BOOT_STRING_H */ 32