0001
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
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
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