string.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. /* Now the str*() stuff... */
  34. #define __HAVE_ARCH_STRLEN
  35. __kernel_size_t strlen(const char *);
  36. #define __HAVE_ARCH_STRNCMP
  37. int strncmp(const char *, const char *, __kernel_size_t);
  38. #endif