xref: /linux/arch/sparc/include/asm/string.h (revision 51e40641)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2a439fe51SSam Ravnborg #ifndef ___ASM_SPARC_STRING_H
3a439fe51SSam Ravnborg #define ___ASM_SPARC_STRING_H
4a439fe51SSam Ravnborg #if defined(__sparc__) && defined(__arch64__)
5a439fe51SSam Ravnborg #include <asm/string_64.h>
6a439fe51SSam Ravnborg #else
7a439fe51SSam Ravnborg #include <asm/string_32.h>
8a439fe51SSam Ravnborg #endif
970a6fcf3SAl Viro 
1070a6fcf3SAl Viro /* First the mem*() things. */
1170a6fcf3SAl Viro #define __HAVE_ARCH_MEMMOVE
1270a6fcf3SAl Viro void *memmove(void *, const void *, __kernel_size_t);
1370a6fcf3SAl Viro 
1470a6fcf3SAl Viro #define __HAVE_ARCH_MEMCPY
1570a6fcf3SAl Viro #define memcpy(t, f, n) __builtin_memcpy(t, f, n)
1670a6fcf3SAl Viro 
1770a6fcf3SAl Viro #define __HAVE_ARCH_MEMSET
1870a6fcf3SAl Viro #define memset(s, c, count) __builtin_memset(s, c, count)
1970a6fcf3SAl Viro 
2070a6fcf3SAl Viro #define __HAVE_ARCH_MEMSCAN
2170a6fcf3SAl Viro 
2270a6fcf3SAl Viro #define memscan(__arg0, __char, __arg2)						\
2370a6fcf3SAl Viro ({										\
2470a6fcf3SAl Viro 	void *__memscan_zero(void *, size_t);					\
2570a6fcf3SAl Viro 	void *__memscan_generic(void *, int, size_t);				\
2670a6fcf3SAl Viro 	void *__retval, *__addr = (__arg0);					\
2770a6fcf3SAl Viro 	size_t __size = (__arg2);						\
2870a6fcf3SAl Viro 										\
2970a6fcf3SAl Viro 	if(__builtin_constant_p(__char) && !(__char))				\
3070a6fcf3SAl Viro 		__retval = __memscan_zero(__addr, __size);			\
3170a6fcf3SAl Viro 	else									\
3270a6fcf3SAl Viro 		__retval = __memscan_generic(__addr, (__char), __size);		\
3370a6fcf3SAl Viro 										\
3470a6fcf3SAl Viro 	__retval;								\
3570a6fcf3SAl Viro })
3670a6fcf3SAl Viro 
3770a6fcf3SAl Viro #define __HAVE_ARCH_MEMCMP
3870a6fcf3SAl Viro int memcmp(const void *,const void *,__kernel_size_t);
3970a6fcf3SAl Viro 
40*51e40641SMasahiro Yamada /* Now the str*() stuff... */
41*51e40641SMasahiro Yamada #define __HAVE_ARCH_STRLEN
42*51e40641SMasahiro Yamada __kernel_size_t strlen(const char *);
43*51e40641SMasahiro Yamada 
4470a6fcf3SAl Viro #define __HAVE_ARCH_STRNCMP
4570a6fcf3SAl Viro int strncmp(const char *, const char *, __kernel_size_t);
4670a6fcf3SAl Viro 
47a439fe51SSam Ravnborg #endif
48