|
7 | 7 |
|
8 | 8 | /* use __mem* names to avoid conflict with KASAN's mem* functions. */ |
9 | 9 |
|
| 10 | +#ifdef CONFIG_LKL_HOST_MEMCPY |
10 | 11 | #define __HAVE_ARCH_MEMCPY |
11 | 12 | extern void *memcpy(void *dest, const void *src, size_t count); |
12 | 13 | static inline void *__memcpy(void *dest, const void *src, size_t count) |
13 | 14 | { |
14 | | - char *tmp = dest; |
15 | | - const char *s = src; |
16 | | - |
17 | | - if (lkl_ops->memcpy) |
18 | | - return lkl_ops->memcpy(dest, src, count); |
19 | | - |
20 | | - /* from lib/string.c */ |
21 | | - |
22 | | - while (count--) |
23 | | - *tmp++ = *s++; |
24 | | - return dest; |
| 15 | + return lkl_ops->memcpy(dest, src, count); |
25 | 16 | } |
| 17 | +#define memcpy(dst, src, len) __memcpy(dst, src, len) |
| 18 | +#endif |
26 | 19 |
|
| 20 | +#ifdef CONFIG_LKL_HOST_MEMSET |
27 | 21 | #define __HAVE_ARCH_MEMSET |
28 | 22 | extern void *memset(void *s, int c, size_t count); |
29 | 23 | static inline void *__memset(void *s, int c, size_t count) |
30 | 24 | { |
31 | | - char *xs = s; |
32 | | - |
33 | | - if (lkl_ops->memset) |
34 | | - return lkl_ops->memset(s, c, count); |
35 | | - |
36 | | - /* from lib/string.c */ |
37 | | - |
38 | | - while (count--) |
39 | | - *xs++ = c; |
40 | | - return s; |
| 25 | + return lkl_ops->memset(s, c, count); |
41 | 26 | } |
| 27 | +#define memset(s, c, n) __memset(s, c, n) |
| 28 | +#endif |
42 | 29 |
|
| 30 | +#ifdef CONFIG_LKL_HOST_MEMSET |
43 | 31 | #define __HAVE_ARCH_MEMMOVE |
44 | 32 | extern void *memmove(void *dest, const void *src, size_t count); |
45 | 33 | static inline void *__memmove(void *dest, const void *src, size_t count) |
46 | 34 | { |
47 | | - char *tmp; |
48 | | - const char *s; |
49 | | - |
50 | | - if (lkl_ops->memmove) |
51 | | - return lkl_ops->memmove(dest, src, count); |
52 | | - |
53 | | - /* from lib/string.c */ |
54 | | - |
55 | | - if (dest <= src) { |
56 | | - tmp = dest; |
57 | | - s = src; |
58 | | - while (count--) |
59 | | - *tmp++ = *s++; |
60 | | - } else { |
61 | | - tmp = dest; |
62 | | - tmp += count; |
63 | | - s = src; |
64 | | - s += count; |
65 | | - while (count--) |
66 | | - *--tmp = *--s; |
67 | | - } |
68 | | - return dest; |
| 35 | + return lkl_ops->memmove(dest, src, count); |
69 | 36 | } |
70 | | - |
71 | | -#define memcpy(dst, src, len) __memcpy(dst, src, len) |
72 | | -#define memset(s, c, n) __memset(s, c, n) |
73 | 37 | #define memmove(dst, src, len) __memmove(dst, src, len) |
| 38 | +#endif |
74 | 39 |
|
75 | 40 | #if defined(CONFIG_KASAN) |
76 | 41 |
|
|
0 commit comments