topology.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /*
  2. * linux/include/asm-generic/topology.h
  3. *
  4. * Written by: Matthew Dobson, IBM Corporation
  5. *
  6. * Copyright (C) 2002, IBM Corp.
  7. *
  8. * All rights reserved.
  9. *
  10. * This program is free software; you can redistribute it and/or modify
  11. * it under the terms of the GNU General Public License as published by
  12. * the Free Software Foundation; either version 2 of the License, or
  13. * (at your option) any later version.
  14. *
  15. * This program is distributed in the hope that it will be useful, but
  16. * WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
  18. * NON INFRINGEMENT. See the GNU General Public License for more
  19. * details.
  20. *
  21. * You should have received a copy of the GNU General Public License
  22. * along with this program; if not, write to the Free Software
  23. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  24. *
  25. * Send feedback to <colpatch@us.ibm.com>
  26. */
  27. #ifndef _ASM_GENERIC_TOPOLOGY_H
  28. #define _ASM_GENERIC_TOPOLOGY_H
  29. #ifndef CONFIG_NUMA
  30. /* Other architectures wishing to use this simple topology API should fill
  31. in the below functions as appropriate in their own <asm/topology.h> file. */
  32. #ifndef cpu_to_node
  33. #define cpu_to_node(cpu) ((void)(cpu),0)
  34. #endif
  35. #ifndef parent_node
  36. #define parent_node(node) ((void)(node),0)
  37. #endif
  38. #ifndef node_to_cpumask
  39. #define node_to_cpumask(node) ((void)node, cpu_online_map)
  40. #endif
  41. #ifndef cpumask_of_node
  42. #define cpumask_of_node(node) ((void)node, cpu_online_mask)
  43. #endif
  44. #ifndef node_to_first_cpu
  45. #define node_to_first_cpu(node) ((void)(node),0)
  46. #endif
  47. #ifndef pcibus_to_node
  48. #define pcibus_to_node(bus) ((void)(bus), -1)
  49. #endif
  50. #ifndef pcibus_to_cpumask
  51. #define pcibus_to_cpumask(bus) (pcibus_to_node(bus) == -1 ? \
  52. CPU_MASK_ALL : \
  53. node_to_cpumask(pcibus_to_node(bus)) \
  54. )
  55. #endif
  56. #ifndef cpumask_of_pcibus
  57. #define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \
  58. cpu_all_mask : \
  59. cpumask_of_node(pcibus_to_node(bus)))
  60. #endif
  61. #endif /* CONFIG_NUMA */
  62. /*
  63. * returns pointer to cpumask for specified node
  64. * Deprecated: use "const struct cpumask *mask = cpumask_of_node(node)"
  65. */
  66. #ifndef node_to_cpumask_ptr
  67. #define node_to_cpumask_ptr(v, node) \
  68. cpumask_t _##v = node_to_cpumask(node); \
  69. const cpumask_t *v = &_##v
  70. #define node_to_cpumask_ptr_next(v, node) \
  71. _##v = node_to_cpumask(node)
  72. #endif
  73. #endif /* _ASM_GENERIC_TOPOLOGY_H */