xref: /OK3568_Linux_fs/kernel/arch/sparc/include/asm/string.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifndef ___ASM_SPARC_STRING_H
3*4882a593Smuzhiyun #define ___ASM_SPARC_STRING_H
4*4882a593Smuzhiyun #if defined(__sparc__) && defined(__arch64__)
5*4882a593Smuzhiyun #include <asm/string_64.h>
6*4882a593Smuzhiyun #else
7*4882a593Smuzhiyun #include <asm/string_32.h>
8*4882a593Smuzhiyun #endif
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun /* First the mem*() things. */
11*4882a593Smuzhiyun #define __HAVE_ARCH_MEMMOVE
12*4882a593Smuzhiyun void *memmove(void *, const void *, __kernel_size_t);
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun #define __HAVE_ARCH_MEMCPY
15*4882a593Smuzhiyun #define memcpy(t, f, n) __builtin_memcpy(t, f, n)
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun #define __HAVE_ARCH_MEMSET
18*4882a593Smuzhiyun #define memset(s, c, count) __builtin_memset(s, c, count)
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun #define __HAVE_ARCH_MEMSCAN
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun #define memscan(__arg0, __char, __arg2)						\
23*4882a593Smuzhiyun ({										\
24*4882a593Smuzhiyun 	void *__memscan_zero(void *, size_t);					\
25*4882a593Smuzhiyun 	void *__memscan_generic(void *, int, size_t);				\
26*4882a593Smuzhiyun 	void *__retval, *__addr = (__arg0);					\
27*4882a593Smuzhiyun 	size_t __size = (__arg2);						\
28*4882a593Smuzhiyun 										\
29*4882a593Smuzhiyun 	if(__builtin_constant_p(__char) && !(__char))				\
30*4882a593Smuzhiyun 		__retval = __memscan_zero(__addr, __size);			\
31*4882a593Smuzhiyun 	else									\
32*4882a593Smuzhiyun 		__retval = __memscan_generic(__addr, (__char), __size);		\
33*4882a593Smuzhiyun 										\
34*4882a593Smuzhiyun 	__retval;								\
35*4882a593Smuzhiyun })
36*4882a593Smuzhiyun 
37*4882a593Smuzhiyun #define __HAVE_ARCH_MEMCMP
38*4882a593Smuzhiyun int memcmp(const void *,const void *,__kernel_size_t);
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun /* Now the str*() stuff... */
41*4882a593Smuzhiyun #define __HAVE_ARCH_STRLEN
42*4882a593Smuzhiyun __kernel_size_t strlen(const char *);
43*4882a593Smuzhiyun 
44*4882a593Smuzhiyun #define __HAVE_ARCH_STRNCMP
45*4882a593Smuzhiyun int strncmp(const char *, const char *, __kernel_size_t);
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun #endif
48