| 123456789101112131415161718192021222324252627282930313233343536373839 |
- /* SPDX-License-Identifier: GPL-2.0 */
- /*
- * Copyright (C) 2020-2022 Loongson Technology Corporation Limited
- */
- #ifndef _ASM_STRING_H
- #define _ASM_STRING_H
- #ifdef CONFIG_64BIT
- #define __HAVE_ARCH_MEMSET
- extern void *memset(void *__s, int __c, size_t __count);
- extern void *__memset(void *__s, int __c, size_t __count);
- #define __HAVE_ARCH_MEMCPY
- extern void *memcpy(void *__to, __const__ void *__from, size_t __n);
- extern void *__memcpy(void *__to, __const__ void *__from, size_t __n);
- #define __HAVE_ARCH_MEMMOVE
- extern void *memmove(void *__dest, __const__ void *__src, size_t __n);
- extern void *__memmove(void *__dest, __const__ void *__src, size_t __n);
- #endif
- #if defined(CONFIG_KASAN) && !defined(__SANITIZE_ADDRESS__)
- /*
- * For files that are not instrumented (e.g. mm/slub.c) we
- * should use not instrumented version of mem* functions.
- */
- #define memset(s, c, n) __memset(s, c, n)
- #define memcpy(dst, src, len) __memcpy(dst, src, len)
- #define memmove(dst, src, len) __memmove(dst, src, len)
- #ifndef __NO_FORTIFY
- #define __NO_FORTIFY /* FORTIFY_SOURCE uses __builtin_memcpy, etc. */
- #endif
- #endif
- #endif /* _ASM_STRING_H */
|