topology.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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 node_to_first_cpu
  42. #define node_to_first_cpu(node) ((void)(node),0)
  43. #endif
  44. #ifndef pcibus_to_node
  45. #define pcibus_to_node(bus) ((void)(bus), -1)
  46. #endif
  47. #ifndef pcibus_to_cpumask
  48. #define pcibus_to_cpumask(bus) (pcibus_to_node(bus) == -1 ? \
  49. CPU_MASK_ALL : \
  50. node_to_cpumask(pcibus_to_node(bus)) \
  51. )
  52. #endif
  53. #endif /* CONFIG_NUMA */
  54. /* returns pointer to cpumask for specified node */
  55. #ifndef node_to_cpumask_ptr
  56. #define node_to_cpumask_ptr(v, node) \
  57. cpumask_t _##v = node_to_cpumask(node); \
  58. const cpumask_t *v = &_##v
  59. #define node_to_cpumask_ptr_next(v, node) \
  60. _##v = node_to_cpumask(node)
  61. #endif
  62. #endif /* _ASM_GENERIC_TOPOLOGY_H */