#ifndef __BACKPORT_LINUX_STRING_H #define __BACKPORT_LINUX_STRING_H #include_next #include #if LINUX_VERSION_IS_LESS(4,5,0) #define memdup_user_nul LINUX_BACKPORT(memdup_user_nul) extern void *memdup_user_nul(const void __user *, size_t); #endif #if LINUX_VERSION_IS_LESS(4,6,0) int match_string(const char * const *array, size_t n, const char *string); #endif /* LINUX_VERSION_IS_LESS(4,5,0) */ #ifndef memset_after #define memset_after(obj, v, member) \ ({ \ u8 *__ptr = (u8 *)(obj); \ typeof(v) __val = (v); \ memset(__ptr + offsetofend(typeof(*(obj)), member), __val, \ sizeof(*(obj)) - offsetofend(typeof(*(obj)), member)); \ }) #endif #ifndef memset_startat #define memset_startat(obj, v, member) \ ({ \ u8 *__ptr = (u8 *)(obj); \ typeof(v) __val = (v); \ memset(__ptr + offsetof(typeof(*(obj)), member), __val, \ sizeof(*(obj)) - offsetof(typeof(*(obj)), member)); \ }) #endif #endif /* __BACKPORT_LINUX_STRING_H */