-# topology_core_cpumask (2.6.29, not on all archs)
-# topology_core_siblings (not on all archs)
-# topology_thread_cpumask (2.6.29, not on all archs)
-# topology_thread_siblings (not on all archs)
-# cpumask_of_node/node_to_cpumask (not always exported)
-AC_DEFUN([LIBCFS_CPU_TOPOLOGY],
-[AC_MSG_CHECKING([whether have topology.h])
-LB_LINUX_TRY_COMPILE([
- #include <linux/topology.h>
-],[],[
- AC_DEFINE(HAVE_CPU_TOPOLOGY, 1, [have CPU topology])
- AC_MSG_RESULT(yes)
-
- AC_MSG_CHECKING([whether have topology_core_cpumask])
- LB_LINUX_TRY_COMPILE([
- #include <linux/topology.h>
- ],[
- cpumask_t *mask = topology_core_cpumask(0);
- ],[
- AC_DEFINE(HAVE_TOPOLOGY_CORE_CPUMASK, 1,
- [have topology_core_cpumask])
- AC_MSG_RESULT(yes)
- ],[
- AC_MSG_RESULT(no)
- ])
-
- AC_MSG_CHECKING([whether have topology_core_siblings])
- LB_LINUX_TRY_COMPILE([
- #include <linux/topology.h>
- ],[
- cpumask_t mask = topology_core_siblings(0);
- ],[
- AC_DEFINE(HAVE_TOPOLOGY_CORE_SIBLINGS, 1,
- [have topology_core_siblings])
- AC_MSG_RESULT(yes)
- ],[
- AC_MSG_RESULT(no)
- ])
-
- AC_MSG_CHECKING([whether have topology_thread_cpumask])
- LB_LINUX_TRY_COMPILE([
- #include <linux/topology.h>
- ],[
- cpumask_t *mask = topology_thread_cpumask(0);
- ],[
- AC_DEFINE(HAVE_TOPOLOGY_THREAD_CPUMASK, 1,
- [have topology_thread_cpumask])
- AC_MSG_RESULT(yes)
- ],[
- AC_MSG_RESULT(no)
- ])
-
- AC_MSG_CHECKING([whether have topology_thread_siblings])
- LB_LINUX_TRY_COMPILE([
- #include <linux/topology.h>
- ],[
- cpumask_t mask = topology_thread_siblings(0);
- ],[
- AC_DEFINE(HAVE_TOPOLOGY_THREAD_SIBLINGS, 1,
- [have topology_thread_siblings])
- AC_MSG_RESULT(yes)
- ],[
- AC_MSG_RESULT(no)
- ])
-
- AC_MSG_CHECKING([whether have cpumask_of_node])
- LB_LINUX_TRY_COMPILE([
- #include <linux/topology.h>
- ],[
- cpumask_t *mask = cpumask_of_node(0);
- ],[
- AC_DEFINE(HAVE_CPUMASK_OF_NODE, 1, [have cpumask_of_node])
- AC_MSG_RESULT(yes)
- ],[
- AC_MSG_RESULT(no)
- ])
-
- AC_MSG_CHECKING([whether have node_to_cpumask])
- LB_LINUX_TRY_COMPILE([
- #include <linux/topology.h>
- ],[
- cpumask_t mask = node_to_cpumask(0);
- ],[
- AC_DEFINE(HAVE_NODE_TO_CPUMASK, 1, [have node_to_cpumask])
- AC_MSG_RESULT(yes)
- ],[
- AC_MSG_RESULT(no)
- ])
-],[
- AC_MSG_RESULT(NO)
-])
-])
-
-
-# 2.6.20 API change INIT_WORK use 2 args and not
-# store data inside
-AC_DEFUN([LIBCFS_3ARGS_INIT_WORK],
-[AC_MSG_CHECKING([check INIT_WORK want 3 args])
-LB_LINUX_TRY_COMPILE([
- #include <linux/workqueue.h>
-],[
- struct work_struct work __attribute__ ((unused));
-
- INIT_WORK(&work, NULL, NULL);