Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef ___ASM_SPARC_STRING_H
0003 #define ___ASM_SPARC_STRING_H
0004 #if defined(__sparc__) && defined(__arch64__)
0005 #include <asm/string_64.h>
0006 #else
0007 #include <asm/string_32.h>
0008 #endif
0009 
0010 /* First the mem*() things. */
0011 #define __HAVE_ARCH_MEMMOVE
0012 void *memmove(void *, const void *, __kernel_size_t);
0013 
0014 #define __HAVE_ARCH_MEMCPY
0015 #define memcpy(t, f, n) __builtin_memcpy(t, f, n)
0016 
0017 #define __HAVE_ARCH_MEMSET
0018 #define memset(s, c, count) __builtin_memset(s, c, count)
0019 
0020 #define __HAVE_ARCH_MEMSCAN
0021 
0022 #define memscan(__arg0, __char, __arg2)                     \
0023 ({                                      \
0024     void *__memscan_zero(void *, size_t);                   \
0025     void *__memscan_generic(void *, int, size_t);               \
0026     void *__retval, *__addr = (__arg0);                 \
0027     size_t __size = (__arg2);                       \
0028                                         \
0029     if(__builtin_constant_p(__char) && !(__char))               \
0030         __retval = __memscan_zero(__addr, __size);          \
0031     else                                    \
0032         __retval = __memscan_generic(__addr, (__char), __size);     \
0033                                         \
0034     __retval;                               \
0035 })
0036 
0037 #define __HAVE_ARCH_MEMCMP
0038 int memcmp(const void *,const void *,__kernel_size_t);
0039 
0040 /* Now the str*() stuff... */
0041 #define __HAVE_ARCH_STRLEN
0042 __kernel_size_t strlen(const char *);
0043 
0044 #define __HAVE_ARCH_STRNCMP
0045 int strncmp(const char *, const char *, __kernel_size_t);
0046 
0047 #endif