Whamcloud - gitweb
LU-16118 build: Workaround __write_overflow_field errors
[fs/lustre-release.git] / libcfs / include / libcfs / linux / linux-misc.h
index 242105b..841db69 100644 (file)
@@ -97,6 +97,10 @@ int cfs_apply_workqueue_attrs(struct workqueue_struct *wq,
 int kstrtobool_from_user(const char __user *s, size_t count, bool *res);
 #endif /* HAVE_KSTRTOBOOL_FROM_USER */
 
+#ifndef HAVE_MATCH_WILDCARD
+bool match_wildcard(const char *pattern, const char *str);
+#endif /* !HAVE_MATCH_WILDCARD */
+
 #ifndef HAVE_KREF_READ
 static inline int kref_read(const struct kref *kref)
 {
@@ -146,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)
 {
@@ -158,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__ */