xref: /openbmc/linux/arch/riscv/include/asm/string.h (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
150acfb2bSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
25d8544e2SPalmer Dabbelt /*
35d8544e2SPalmer Dabbelt  * Copyright (C) 2013 Regents of the University of California
45d8544e2SPalmer Dabbelt  */
55d8544e2SPalmer Dabbelt 
65d8544e2SPalmer Dabbelt #ifndef _ASM_RISCV_STRING_H
75d8544e2SPalmer Dabbelt #define _ASM_RISCV_STRING_H
85d8544e2SPalmer Dabbelt 
95d8544e2SPalmer Dabbelt #include <linux/types.h>
105d8544e2SPalmer Dabbelt #include <linux/linkage.h>
115d8544e2SPalmer Dabbelt 
125d8544e2SPalmer Dabbelt #define __HAVE_ARCH_MEMSET
135d8544e2SPalmer Dabbelt extern asmlinkage void *memset(void *, int, size_t);
148ad8b727SNick Hu extern asmlinkage void *__memset(void *, int, size_t);
155d8544e2SPalmer Dabbelt #define __HAVE_ARCH_MEMCPY
165d8544e2SPalmer Dabbelt extern asmlinkage void *memcpy(void *, const void *, size_t);
178ad8b727SNick Hu extern asmlinkage void *__memcpy(void *, const void *, size_t);
1804091d6cSNylon Chen #define __HAVE_ARCH_MEMMOVE
1904091d6cSNylon Chen extern asmlinkage void *memmove(void *, const void *, size_t);
2004091d6cSNylon Chen extern asmlinkage void *__memmove(void *, const void *, size_t);
21*56e0790cSHeiko Stuebner 
22*56e0790cSHeiko Stuebner #define __HAVE_ARCH_STRCMP
23*56e0790cSHeiko Stuebner extern asmlinkage int strcmp(const char *cs, const char *ct);
24*56e0790cSHeiko Stuebner 
25*56e0790cSHeiko Stuebner #define __HAVE_ARCH_STRLEN
26*56e0790cSHeiko Stuebner extern asmlinkage __kernel_size_t strlen(const char *);
27*56e0790cSHeiko Stuebner 
28*56e0790cSHeiko Stuebner #define __HAVE_ARCH_STRNCMP
29*56e0790cSHeiko Stuebner extern asmlinkage int strncmp(const char *cs, const char *ct, size_t count);
30*56e0790cSHeiko Stuebner 
318ad8b727SNick Hu /* For those files which don't want to check by kasan. */
328ad8b727SNick Hu #if defined(CONFIG_KASAN) && !defined(__SANITIZE_ADDRESS__)
338ad8b727SNick Hu #define memcpy(dst, src, len) __memcpy(dst, src, len)
348ad8b727SNick Hu #define memset(s, c, n) __memset(s, c, n)
3504091d6cSNylon Chen #define memmove(dst, src, len) __memmove(dst, src, len)
3695301414SKefeng Wang 
3795301414SKefeng Wang #ifndef __NO_FORTIFY
3895301414SKefeng Wang #define __NO_FORTIFY /* FORTIFY_SOURCE uses __builtin_memcpy, etc. */
3995301414SKefeng Wang #endif
4095301414SKefeng Wang 
418ad8b727SNick Hu #endif
425d8544e2SPalmer Dabbelt #endif /* _ASM_RISCV_STRING_H */
43