string.h 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (C) 2013 Regents of the University of California
  4. */
  5. #ifndef _ASM_RISCV_STRING_H
  6. #define _ASM_RISCV_STRING_H
  7. #include <linux/types.h>
  8. #include <linux/linkage.h>
  9. #define __HAVE_ARCH_MEMSET
  10. extern asmlinkage void *memset(void *, int, size_t);
  11. extern asmlinkage void *__memset(void *, int, size_t);
  12. #define __HAVE_ARCH_MEMCPY
  13. extern asmlinkage void *memcpy(void *, const void *, size_t);
  14. extern asmlinkage void *__memcpy(void *, const void *, size_t);
  15. #define __HAVE_ARCH_MEMMOVE
  16. extern asmlinkage void *memmove(void *, const void *, size_t);
  17. extern asmlinkage void *__memmove(void *, const void *, size_t);
  18. /* For those files which don't want to check by kasan. */
  19. #if defined(CONFIG_KASAN) && !defined(__SANITIZE_ADDRESS__)
  20. #define memcpy(dst, src, len) __memcpy(dst, src, len)
  21. #define memset(s, c, n) __memset(s, c, n)
  22. #define memmove(dst, src, len) __memmove(dst, src, len)
  23. #ifndef __NO_FORTIFY
  24. #define __NO_FORTIFY /* FORTIFY_SOURCE uses __builtin_memcpy, etc. */
  25. #endif
  26. #endif
  27. #endif /* _ASM_RISCV_STRING_H */