1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifndef __ASM_ARM_STRING_H
3*4882a593Smuzhiyun #define __ASM_ARM_STRING_H
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun /*
6*4882a593Smuzhiyun * We don't do inline string functions, since the
7*4882a593Smuzhiyun * optimised inline asm versions are not small.
8*4882a593Smuzhiyun */
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun #define __HAVE_ARCH_STRRCHR
11*4882a593Smuzhiyun extern char * strrchr(const char * s, int c);
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun #define __HAVE_ARCH_STRCHR
14*4882a593Smuzhiyun extern char * strchr(const char * s, int c);
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun #define __HAVE_ARCH_MEMCPY
17*4882a593Smuzhiyun extern void * memcpy(void *, const void *, __kernel_size_t);
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun #define __HAVE_ARCH_MEMMOVE
20*4882a593Smuzhiyun extern void * memmove(void *, const void *, __kernel_size_t);
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun #define __HAVE_ARCH_MEMCHR
23*4882a593Smuzhiyun extern void * memchr(const void *, int, __kernel_size_t);
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun #define __HAVE_ARCH_MEMSET
26*4882a593Smuzhiyun extern void * memset(void *, int, __kernel_size_t);
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun #define __HAVE_ARCH_MEMSET32
29*4882a593Smuzhiyun extern void *__memset32(uint32_t *, uint32_t v, __kernel_size_t);
memset32(uint32_t * p,uint32_t v,__kernel_size_t n)30*4882a593Smuzhiyun static inline void *memset32(uint32_t *p, uint32_t v, __kernel_size_t n)
31*4882a593Smuzhiyun {
32*4882a593Smuzhiyun return __memset32(p, v, n * 4);
33*4882a593Smuzhiyun }
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun #define __HAVE_ARCH_MEMSET64
36*4882a593Smuzhiyun extern void *__memset64(uint64_t *, uint32_t low, __kernel_size_t, uint32_t hi);
memset64(uint64_t * p,uint64_t v,__kernel_size_t n)37*4882a593Smuzhiyun static inline void *memset64(uint64_t *p, uint64_t v, __kernel_size_t n)
38*4882a593Smuzhiyun {
39*4882a593Smuzhiyun return __memset64(p, v, n * 8, v >> 32);
40*4882a593Smuzhiyun }
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun #endif
43