diff options
| author | 2019-01-13 22:35:32 -0800 | |
|---|---|---|
| committer | 2019-01-13 22:35:32 -0800 | |
| commit | 4116941b7a703f8c770998bb3a59966608cb5bb2 (patch) | |
| tree | 32945b644b69e3fd1a9ba8cd7369cf62abc44ccd /include/linux/string.h | |
| parent | Input: ad7879 - add check for read errors in interrupt (diff) | |
| parent | Linux 4.20 (diff) | |
Merge tag 'v4.20' into next
Merge with mainline to bring in the new APIs.
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; |
