| 1 |
|
| 2 | |
| 3 | * Copyright (C) 2013 Regents of the University of California
|
| 4 |
|
| 5 |
|
| 6 | #ifndef _ASM_RISCV_STRING_H
|
| 7 | #define _ASM_RISCV_STRING_H
|
| 8 |
|
| 9 | #include <linux/types.h>
|
| 10 | #include <linux/linkage.h>
|
| 11 |
|
| 12 | #define __HAVE_ARCH_MEMSET
|
| 13 | extern asmlinkage void *memset(void *, int, size_t);
|
| 14 | extern asmlinkage void *__memset(void *, int, size_t);
|
| 15 | #define __HAVE_ARCH_MEMCPY
|
| 16 | extern asmlinkage void *memcpy(void *, const void *, size_t);
|
| 17 | extern asmlinkage void *__memcpy(void *, const void *, size_t);
|
| 18 | #define __HAVE_ARCH_MEMMOVE
|
| 19 | extern asmlinkage void *memmove(void *, const void *, size_t);
|
| 20 | extern asmlinkage void *__memmove(void *, const void *, size_t);
|
| 21 |
|
| 22 | #if !(defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS))
|
| 23 | #define __HAVE_ARCH_STRCMP
|
| 24 | extern asmlinkage int strcmp(const char *cs, const char *ct);
|
| 25 |
|
| 26 | #define __HAVE_ARCH_STRLEN
|
| 27 | extern asmlinkage __kernel_size_t strlen(const char *);
|
| 28 |
|
| 29 | #define __HAVE_ARCH_STRNCMP
|
| 30 | extern asmlinkage int strncmp(const char *cs, const char *ct, size_t count);
|
| 31 |
|
| 32 | #define __HAVE_ARCH_STRNLEN
|
| 33 | extern asmlinkage __kernel_size_t strnlen(const char *, size_t);
|
| 34 |
|
| 35 | #define __HAVE_ARCH_STRCHR
|
| 36 | extern asmlinkage char *strchr(const char *, int);
|
| 37 |
|
| 38 | #define __HAVE_ARCH_STRRCHR
|
| 39 | extern asmlinkage char *strrchr(const char *, int);
|
| 40 | #endif
|
| 41 |
|
| 42 |
|
| 43 | #if defined(CONFIG_KASAN) && !defined(__SANITIZE_ADDRESS__)
|
| 44 | #define memcpy(dst, src, len) __memcpy(dst, src, len)
|
| 45 | #define memset(s, c, n) __memset(s, c, n)
|
| 46 | #define memmove(dst, src, len) __memmove(dst, src, len)
|
| 47 |
|
| 48 | #ifndef __NO_FORTIFY
|
| 49 | #define __NO_FORTIFY
|
| 50 | #endif
|
| 51 |
|
| 52 | #endif
|
| 53 | #endif
|