1819833afSPeter Tyser #ifndef __ASM_ARM_STRING_H 2819833afSPeter Tyser #define __ASM_ARM_STRING_H 3819833afSPeter Tyser 4d8834a13SMatthias Weisser #include <config.h> 5d8834a13SMatthias Weisser 6819833afSPeter Tyser /* 7819833afSPeter Tyser * We don't do inline string functions, since the 8819833afSPeter Tyser * optimised inline asm versions are not small. 9819833afSPeter Tyser */ 10819833afSPeter Tyser 11819833afSPeter Tyser #undef __HAVE_ARCH_STRRCHR 12819833afSPeter Tyser extern char * strrchr(const char * s, int c); 13819833afSPeter Tyser 14819833afSPeter Tyser #undef __HAVE_ARCH_STRCHR 15819833afSPeter Tyser extern char * strchr(const char * s, int c); 16819833afSPeter Tyser 17*085be482SMasahiro Yamada #if CONFIG_IS_ENABLED(USE_ARCH_MEMCPY) 18d8834a13SMatthias Weisser #define __HAVE_ARCH_MEMCPY 19d8834a13SMatthias Weisser #endif 20819833afSPeter Tyser extern void * memcpy(void *, const void *, __kernel_size_t); 21819833afSPeter Tyser 22819833afSPeter Tyser #undef __HAVE_ARCH_MEMMOVE 23819833afSPeter Tyser extern void * memmove(void *, const void *, __kernel_size_t); 24819833afSPeter Tyser 25819833afSPeter Tyser #undef __HAVE_ARCH_MEMCHR 26819833afSPeter Tyser extern void * memchr(const void *, int, __kernel_size_t); 27819833afSPeter Tyser 28819833afSPeter Tyser #undef __HAVE_ARCH_MEMZERO 29*085be482SMasahiro Yamada #if CONFIG_IS_ENABLED(USE_ARCH_MEMSET) 30d8834a13SMatthias Weisser #define __HAVE_ARCH_MEMSET 31d8834a13SMatthias Weisser #endif 32819833afSPeter Tyser extern void * memset(void *, int, __kernel_size_t); 33819833afSPeter Tyser 34819833afSPeter Tyser #if 0 35819833afSPeter Tyser extern void __memzero(void *ptr, __kernel_size_t n); 36819833afSPeter Tyser 37819833afSPeter Tyser #define memset(p,v,n) \ 38819833afSPeter Tyser ({ \ 39819833afSPeter Tyser if ((n) != 0) { \ 40819833afSPeter Tyser if (__builtin_constant_p((v)) && (v) == 0) \ 41819833afSPeter Tyser __memzero((p),(n)); \ 42819833afSPeter Tyser else \ 43819833afSPeter Tyser memset((p),(v),(n)); \ 44819833afSPeter Tyser } \ 45819833afSPeter Tyser (p); \ 46819833afSPeter Tyser }) 47819833afSPeter Tyser 48819833afSPeter Tyser #define memzero(p,n) ({ if ((n) != 0) __memzero((p),(n)); (p); }) 49819833afSPeter Tyser #else 50819833afSPeter Tyser extern void memzero(void *ptr, __kernel_size_t n); 51819833afSPeter Tyser #endif 52819833afSPeter Tyser 53819833afSPeter Tyser #endif 54