string.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /* SPDX-License-Identifier: GPL-2.0 */
  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. /* First the mem*() things. */
  10. #define __HAVE_ARCH_MEMMOVE
  11. void *memmove(void *, const void *, __kernel_size_t);
  12. #define __HAVE_ARCH_MEMCPY
  13. #define memcpy(t, f, n) __builtin_memcpy(t, f, n)
  14. #define __HAVE_ARCH_MEMSET
  15. #define memset(s, c, count) __builtin_memset(s, c, count)
  16. #define __HAVE_ARCH_MEMSCAN
  17. #define memscan(__arg0, __char, __arg2) \
  18. ({ \
  19. void *__memscan_zero(void *, size_t); \
  20. void *__memscan_generic(void *, int, size_t); \
  21. void *__retval, *__addr = (__arg0); \
  22. size_t __size = (__arg2); \
  23. \
  24. if(__builtin_constant_p(__char) && !(__char)) \
  25. __retval = __memscan_zero(__addr, __size); \
  26. else \
  27. __retval = __memscan_generic(__addr, (__char), __size); \
  28. \
  29. __retval; \
  30. })
  31. #define __HAVE_ARCH_MEMCMP
  32. int memcmp(const void *,const void *,__kernel_size_t);
  33. #define __HAVE_ARCH_STRNCMP
  34. int strncmp(const char *, const char *, __kernel_size_t);
  35. #endif