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