aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm/string.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/include/asm/string.h')
-rw-r--r--arch/powerpc/include/asm/string.h32
1 files changed, 29 insertions, 3 deletions
diff --git a/arch/powerpc/include/asm/string.h b/arch/powerpc/include/asm/string.h
index 1647de15a31e..9bf6dffb4090 100644
--- a/arch/powerpc/include/asm/string.h
+++ b/arch/powerpc/include/asm/string.h
@@ -4,14 +4,17 @@
4 4
5#ifdef __KERNEL__ 5#ifdef __KERNEL__
6 6
7#ifndef CONFIG_KASAN
7#define __HAVE_ARCH_STRNCPY 8#define __HAVE_ARCH_STRNCPY
8#define __HAVE_ARCH_STRNCMP 9#define __HAVE_ARCH_STRNCMP
10#define __HAVE_ARCH_MEMCHR
11#define __HAVE_ARCH_MEMCMP
12#define __HAVE_ARCH_MEMSET16
13#endif
14
9#define __HAVE_ARCH_MEMSET 15#define __HAVE_ARCH_MEMSET
10#define __HAVE_ARCH_MEMCPY 16#define __HAVE_ARCH_MEMCPY
11#define __HAVE_ARCH_MEMMOVE 17#define __HAVE_ARCH_MEMMOVE
12#define __HAVE_ARCH_MEMCMP
13#define __HAVE_ARCH_MEMCHR
14#define __HAVE_ARCH_MEMSET16
15#define __HAVE_ARCH_MEMCPY_FLUSHCACHE 18#define __HAVE_ARCH_MEMCPY_FLUSHCACHE
16 19
17extern char * strcpy(char *,const char *); 20extern char * strcpy(char *,const char *);
@@ -27,7 +30,27 @@ extern int memcmp(const void *,const void *,__kernel_size_t);
27extern void * memchr(const void *,int,__kernel_size_t); 30extern void * memchr(const void *,int,__kernel_size_t);
28extern void * memcpy_flushcache(void *,const void *,__kernel_size_t); 31extern void * memcpy_flushcache(void *,const void *,__kernel_size_t);
29 32
33void *__memset(void *s, int c, __kernel_size_t count);
34void *__memcpy(void *to, const void *from, __kernel_size_t n);
35void *__memmove(void *to, const void *from, __kernel_size_t n);
36
37#if defined(CONFIG_KASAN) && !defined(__SANITIZE_ADDRESS__)
38/*
39 * For files that are not instrumented (e.g. mm/slub.c) we
40 * should use not instrumented version of mem* functions.
41 */
42#define memcpy(dst, src, len) __memcpy(dst, src, len)
43#define memmove(dst, src, len) __memmove(dst, src, len)
44#define memset(s, c, n) __memset(s, c, n)
45
46#ifndef __NO_FORTIFY
47#define __NO_FORTIFY /* FORTIFY_SOURCE uses __builtin_memcpy, etc. */
48#endif
49
50#endif
51
30#ifdef CONFIG_PPC64 52#ifdef CONFIG_PPC64
53#ifndef CONFIG_KASAN
31#define __HAVE_ARCH_MEMSET32 54#define __HAVE_ARCH_MEMSET32
32#define __HAVE_ARCH_MEMSET64 55#define __HAVE_ARCH_MEMSET64
33 56
@@ -49,8 +72,11 @@ static inline void *memset64(uint64_t *p, uint64_t v, __kernel_size_t n)
49{ 72{
50 return __memset64(p, v, n * 8); 73 return __memset64(p, v, n * 8);
51} 74}
75#endif
52#else 76#else
77#ifndef CONFIG_KASAN
53#define __HAVE_ARCH_STRLEN 78#define __HAVE_ARCH_STRLEN
79#endif
54 80
55extern void *memset16(uint16_t *, uint16_t, __kernel_size_t); 81extern void *memset16(uint16_t *, uint16_t, __kernel_size_t);
56#endif 82#endif