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