topology.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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 pcibus_to_node
  45. #define pcibus_to_node(bus) ((void)(bus), -1)
  46. #endif
  47. #ifndef cpumask_of_pcibus
  48. #define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \
  49. cpu_all_mask : \
  50. cpumask_of_node(pcibus_to_node(bus)))
  51. #endif
  52. #endif /* CONFIG_NUMA */
  53. /*
  54. * returns pointer to cpumask for specified node
  55. * Deprecated: use "const struct cpumask *mask = cpumask_of_node(node)"
  56. */
  57. #ifndef node_to_cpumask_ptr
  58. #define node_to_cpumask_ptr(v, node) \
  59. cpumask_t _##v = node_to_cpumask(node); \
  60. const cpumask_t *v = &_##v
  61. #define node_to_cpumask_ptr_next(v, node) \
  62. _##v = node_to_cpumask(node)
  63. #endif
  64. #endif /* _ASM_GENERIC_TOPOLOGY_H */