/arch/alpha/include/asm/topology.h

http://github.com/mirrors/linux · C Header · 51 lines · 35 code · 14 blank · 2 comment · 5 complexity · f2ce8c751635b507b2bc87e23847f4a3 MD5 · raw file

  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef _ASM_ALPHA_TOPOLOGY_H
  3. #define _ASM_ALPHA_TOPOLOGY_H
  4. #include <linux/smp.h>
  5. #include <linux/threads.h>
  6. #include <linux/numa.h>
  7. #include <asm/machvec.h>
  8. #ifdef CONFIG_NUMA
  9. static inline int cpu_to_node(int cpu)
  10. {
  11. int node;
  12. if (!alpha_mv.cpuid_to_nid)
  13. return 0;
  14. node = alpha_mv.cpuid_to_nid(cpu);
  15. #ifdef DEBUG_NUMA
  16. BUG_ON(node < 0);
  17. #endif
  18. return node;
  19. }
  20. extern struct cpumask node_to_cpumask_map[];
  21. /* FIXME: This is dumb, recalculating every time. But simple. */
  22. static const struct cpumask *cpumask_of_node(int node)
  23. {
  24. int cpu;
  25. if (node == NUMA_NO_NODE)
  26. return cpu_all_mask;
  27. cpumask_clear(&node_to_cpumask_map[node]);
  28. for_each_online_cpu(cpu) {
  29. if (cpu_to_node(cpu) == node)
  30. cpumask_set_cpu(cpu, node_to_cpumask_map[node]);
  31. }
  32. return &node_to_cpumask_map[node];
  33. }
  34. #define cpumask_of_pcibus(bus) (cpu_online_mask)
  35. #endif /* !CONFIG_NUMA */
  36. # include <asm-generic/topology.h>
  37. #endif /* _ASM_ALPHA_TOPOLOGY_H */