xref: /freebsd/sys/contrib/openzfs/config/kernel-sysfs.m4 (revision 187d8a3ce55a4e2d41fbe61465d5ff4ac0fc6bd5)
1dnl # SPDX-License-Identifier: CDDL-1.0
2dnl #
3dnl # Linux 5.2/5.18 API
4dnl #
5dnl # In cdb4f26a63c391317e335e6e683a614358e70aeb ("kobject: kobj_type: remove default_attrs")
6dnl # 	struct kobj_type.default_attrs
7dnl # was finally removed in favour of
8dnl # 	struct kobj_type.default_groups
9dnl #
10dnl # This was added in aa30f47cf666111f6bbfd15f290a27e8a7b9d854 ("kobject: Add support for default attribute groups to kobj_type"),
11dnl # if both are present (5.2-5.17), we prefer default_groups; they're otherwise equivalent
12dnl #
13AC_DEFUN([ZFS_AC_KERNEL_SRC_SYSFS_DEFAULT_GROUPS], [
14	ZFS_LINUX_TEST_SRC([sysfs_default_groups], [
15		#include <linux/kobject.h>
16	],[
17		struct kobj_type __attribute__ ((unused)) kt = {
18			.default_groups = (const struct attribute_group **)NULL };
19	])
20])
21
22AC_DEFUN([ZFS_AC_KERNEL_SYSFS_DEFAULT_GROUPS], [
23	AC_MSG_CHECKING([whether struct kobj_type.default_groups exists])
24	ZFS_LINUX_TEST_RESULT([sysfs_default_groups],[
25		AC_MSG_RESULT(yes)
26		AC_DEFINE([HAVE_SYSFS_DEFAULT_GROUPS], 1, [struct kobj_type has default_groups])
27	],[
28		AC_MSG_RESULT(no)
29	])
30])
31
32AC_DEFUN([ZFS_AC_KERNEL_SRC_SYSFS], [
33	ZFS_AC_KERNEL_SRC_SYSFS_DEFAULT_GROUPS
34])
35
36AC_DEFUN([ZFS_AC_KERNEL_SYSFS], [
37	ZFS_AC_KERNEL_SYSFS_DEFAULT_GROUPS
38])
39