diff options
| author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2019-01-15 02:33:23 +0300 |
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2019-01-15 02:33:23 +0300 |
| commit | 3eb66e91a25497065c5322b1268cbc3953642227 (patch) | |
| tree | 69f8e1312323ceeafc1a0fdc24d168e1617ffed4 /include/linux/string.h | |
| parent | 4add635b4e00dd7d6aad83a937afdf1957196da6 (diff) | |
| parent | 8fe28cb58bcb235034b64cbbb7550a8a43fd88be (diff) | |
| download | linux-3eb66e91a25497065c5322b1268cbc3953642227.tar.xz | |
Merge tag 'v4.20' into for-linus
Sync with mainline to get linux/overflow.h among other things.
Diffstat (limited to 'include/linux/string.h')
| -rw-r--r-- | include/linux/string.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/include/linux/string.h b/include/linux/string.h index dd39a690c841..27d0482e5e05 100644 --- a/include/linux/string.h +++ b/include/linux/string.h @@ -131,6 +131,13 @@ static inline void *memset_p(void **p, void *v, __kernel_size_t n) return memset64((uint64_t *)p, (uintptr_t)v, n); } +extern void **__memcat_p(void **a, void **b); +#define memcat_p(a, b) ({ \ + BUILD_BUG_ON_MSG(!__same_type(*(a), *(b)), \ + "type mismatch in memcat_p()"); \ + (typeof(*a) *)__memcat_p((void **)(a), (void **)(b)); \ +}) + #ifndef __HAVE_ARCH_MEMCPY extern void * memcpy(void *,const void *,__kernel_size_t); #endif @@ -147,8 +154,8 @@ extern int memcmp(const void *,const void *,__kernel_size_t); extern void * memchr(const void *,int,__kernel_size_t); #endif #ifndef __HAVE_ARCH_MEMCPY_MCSAFE -static inline __must_check int memcpy_mcsafe(void *dst, const void *src, - size_t cnt) +static inline __must_check unsigned long memcpy_mcsafe(void *dst, + const void *src, size_t cnt) { memcpy(dst, src, cnt); return 0; |
