Whamcloud - gitweb
LU-16118 build: Workaround __write_overflow_field errors
[fs/lustre-release.git] / libcfs / include / libcfs / linux / linux-misc.h
index b9963e4..841db69 100644 (file)
@@ -150,6 +150,21 @@ void cfs_arch_init(void);
 #define sizeof_field(type, member)     FIELD_SIZEOF(type, member)
 #endif
 
+#ifndef HAVE_TASK_IS_RUNNING
+#define task_is_running(task)          (task->state == TASK_RUNNING)
+#endif
+
+#ifndef memset_startat
+/** from linux 5.19 include/linux/string.h: */
+#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 /* memset_startat() */
+
 #ifdef HAVE_KALLSYMS_LOOKUP_NAME
 static inline void *cfs_kallsyms_lookup_name(const char *name)
 {
@@ -162,4 +177,13 @@ static inline void *cfs_kallsyms_lookup_name(const char *name)
 }
 #endif
 
+#ifndef HAVE_KOBJ_TYPE_DEFAULT_GROUPS
+#define default_groups                 default_attrs
+#define KOBJ_ATTR_GROUPS(_name)                _name##_attrs
+#define KOBJ_ATTRIBUTE_GROUPS(_name)
+#else
+#define KOBJ_ATTR_GROUPS(_name)                _name##_groups
+#define KOBJ_ATTRIBUTE_GROUPS(_name)   ATTRIBUTE_GROUPS(_name)
+#endif
+
 #endif /* __LIBCFS_LINUX_MISC_H__ */