162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef ___ASM_SPARC_STRING_H 362306a36Sopenharmony_ci#define ___ASM_SPARC_STRING_H 462306a36Sopenharmony_ci#if defined(__sparc__) && defined(__arch64__) 562306a36Sopenharmony_ci#include <asm/string_64.h> 662306a36Sopenharmony_ci#else 762306a36Sopenharmony_ci#include <asm/string_32.h> 862306a36Sopenharmony_ci#endif 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci/* First the mem*() things. */ 1162306a36Sopenharmony_ci#define __HAVE_ARCH_MEMMOVE 1262306a36Sopenharmony_civoid *memmove(void *, const void *, __kernel_size_t); 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#define __HAVE_ARCH_MEMCPY 1562306a36Sopenharmony_ci#define memcpy(t, f, n) __builtin_memcpy(t, f, n) 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci#define __HAVE_ARCH_MEMSET 1862306a36Sopenharmony_ci#define memset(s, c, count) __builtin_memset(s, c, count) 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci#define __HAVE_ARCH_MEMSCAN 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci#define memscan(__arg0, __char, __arg2) \ 2362306a36Sopenharmony_ci({ \ 2462306a36Sopenharmony_ci void *__memscan_zero(void *, size_t); \ 2562306a36Sopenharmony_ci void *__memscan_generic(void *, int, size_t); \ 2662306a36Sopenharmony_ci void *__retval, *__addr = (__arg0); \ 2762306a36Sopenharmony_ci size_t __size = (__arg2); \ 2862306a36Sopenharmony_ci \ 2962306a36Sopenharmony_ci if(__builtin_constant_p(__char) && !(__char)) \ 3062306a36Sopenharmony_ci __retval = __memscan_zero(__addr, __size); \ 3162306a36Sopenharmony_ci else \ 3262306a36Sopenharmony_ci __retval = __memscan_generic(__addr, (__char), __size); \ 3362306a36Sopenharmony_ci \ 3462306a36Sopenharmony_ci __retval; \ 3562306a36Sopenharmony_ci}) 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci#define __HAVE_ARCH_MEMCMP 3862306a36Sopenharmony_ciint memcmp(const void *,const void *,__kernel_size_t); 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci/* Now the str*() stuff... */ 4162306a36Sopenharmony_ci#define __HAVE_ARCH_STRLEN 4262306a36Sopenharmony_ci__kernel_size_t strlen(const char *); 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci#define __HAVE_ARCH_STRNCMP 4562306a36Sopenharmony_ciint strncmp(const char *, const char *, __kernel_size_t); 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci#endif 48