xref: /rk3399_rockchip-uboot/arch/arm/include/asm/string.h (revision 819833af39a91fa1c1e8252862bbda6f5a602f7b)
1*819833afSPeter Tyser #ifndef __ASM_ARM_STRING_H
2*819833afSPeter Tyser #define __ASM_ARM_STRING_H
3*819833afSPeter Tyser 
4*819833afSPeter Tyser /*
5*819833afSPeter Tyser  * We don't do inline string functions, since the
6*819833afSPeter Tyser  * optimised inline asm versions are not small.
7*819833afSPeter Tyser  */
8*819833afSPeter Tyser 
9*819833afSPeter Tyser #undef __HAVE_ARCH_STRRCHR
10*819833afSPeter Tyser extern char * strrchr(const char * s, int c);
11*819833afSPeter Tyser 
12*819833afSPeter Tyser #undef __HAVE_ARCH_STRCHR
13*819833afSPeter Tyser extern char * strchr(const char * s, int c);
14*819833afSPeter Tyser 
15*819833afSPeter Tyser #undef __HAVE_ARCH_MEMCPY
16*819833afSPeter Tyser extern void * memcpy(void *, const void *, __kernel_size_t);
17*819833afSPeter Tyser 
18*819833afSPeter Tyser #undef __HAVE_ARCH_MEMMOVE
19*819833afSPeter Tyser extern void * memmove(void *, const void *, __kernel_size_t);
20*819833afSPeter Tyser 
21*819833afSPeter Tyser #undef __HAVE_ARCH_MEMCHR
22*819833afSPeter Tyser extern void * memchr(const void *, int, __kernel_size_t);
23*819833afSPeter Tyser 
24*819833afSPeter Tyser #undef __HAVE_ARCH_MEMZERO
25*819833afSPeter Tyser #undef __HAVE_ARCH_MEMSET
26*819833afSPeter Tyser extern void * memset(void *, int, __kernel_size_t);
27*819833afSPeter Tyser 
28*819833afSPeter Tyser #if 0
29*819833afSPeter Tyser extern void __memzero(void *ptr, __kernel_size_t n);
30*819833afSPeter Tyser 
31*819833afSPeter Tyser #define memset(p,v,n)							\
32*819833afSPeter Tyser 	({								\
33*819833afSPeter Tyser 		if ((n) != 0) {						\
34*819833afSPeter Tyser 			if (__builtin_constant_p((v)) && (v) == 0)	\
35*819833afSPeter Tyser 				__memzero((p),(n));			\
36*819833afSPeter Tyser 			else						\
37*819833afSPeter Tyser 				memset((p),(v),(n));			\
38*819833afSPeter Tyser 		}							\
39*819833afSPeter Tyser 		(p);							\
40*819833afSPeter Tyser 	})
41*819833afSPeter Tyser 
42*819833afSPeter Tyser #define memzero(p,n) ({ if ((n) != 0) __memzero((p),(n)); (p); })
43*819833afSPeter Tyser #else
44*819833afSPeter Tyser extern void memzero(void *ptr, __kernel_size_t n);
45*819833afSPeter Tyser #endif
46*819833afSPeter Tyser 
47*819833afSPeter Tyser #endif
48