aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86/topology_64.h
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2008-01-30 13:30:38 +0100
committerIngo Molnar <mingo@elte.hu>2008-01-30 13:30:38 +0100
commitb4ea9299df1fa04dbd51840f60918a63ff6a8a44 (patch)
treea11ec0c494e37f68a235d2af5c28677c43ebf73d /include/asm-x86/topology_64.h
parentx86: adjust numa 32 namespace (diff)
downloadlinux-dev-b4ea9299df1fa04dbd51840f60918a63ff6a8a44.tar.xz
linux-dev-b4ea9299df1fa04dbd51840f60918a63ff6a8a44.zip
x86: consolidate toloplogy_32/64.h
Reorder defines and do white space / coding style cleanups to get a readable diff. Also convert the macros to inline functions. Move the pci related inlines to pci.h Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to '')
-rw-r--r--include/asm-x86/topology_64.h60
1 files changed, 41 insertions, 19 deletions
diff --git a/include/asm-x86/topology_64.h b/include/asm-x86/topology_64.h
index cf529341b16c..93de948bd337 100644
--- a/include/asm-x86/topology_64.h
+++ b/include/asm-x86/topology_64.h
@@ -1,27 +1,47 @@
-#ifndef _ASM_X86_64_TOPOLOGY_H
-#define _ASM_X86_64_TOPOLOGY_H
-
+#ifndef _ASM_X86_TOPOLOGY_H
+#define _ASM_X86_TOPOLOGY_H
#ifdef CONFIG_NUMA
-
+#include <linux/cpumask.h>
#include <asm/mpspec.h>
-#include <linux/bitops.h>
+/* Mappings between logical cpu number and node number */
extern int cpu_to_node_map[];
extern cpumask_t node_to_cpumask_map[];
#ifdef CONFIG_ACPI_NUMA
extern int __node_distance(int, int);
#define node_distance(a,b) __node_distance(a,b)
-/* #else fallback version */
#endif
-#define cpu_to_node(cpu) (cpu_to_node_map[cpu])
-#define parent_node(node) (node)
-#define node_to_first_cpu(node) (first_cpu(node_to_cpumask_map[node]))
-#define node_to_cpumask(node) (node_to_cpumask_map[node])
-#define pcibus_to_node(bus) ((struct pci_sysdata *)((bus)->sysdata))->node
-#define pcibus_to_cpumask(bus) node_to_cpumask(pcibus_to_node(bus));
+/* Returns the number of the node containing CPU 'cpu' */
+static inline int cpu_to_node(int cpu)
+{
+ return cpu_to_node_map[cpu];
+}
+
+/*
+ * Returns the number of the node containing Node 'node'. This
+ * architecture is flat, so it is a pretty simple function!
+ */
+#define parent_node(node) (node)
+
+/* Returns a bitmask of CPUs on Node 'node'. */
+static inline cpumask_t node_to_cpumask(int node)
+{
+ return node_to_cpumask_map[node];
+}
+
+/* Returns the number of the first CPU on Node 'node'. */
+static inline int node_to_first_cpu(int node)
+{
+ cpumask_t mask = node_to_cpumask(node);
+
+ return first_cpu(mask);
+}
+
+#define pcibus_to_node(bus) __pcibus_to_node(bus)
+#define pcibus_to_cpumask(bus) __pcibus_to_cpumask(bus)
#define numa_node_id() read_pda(nodenumber)
@@ -38,12 +58,12 @@ extern int __node_distance(int, int);
.cache_nice_tries = 2, \
.busy_idx = 3, \
.idle_idx = 2, \
- .newidle_idx = 0, \
+ .newidle_idx = 0, \
.wake_idx = 1, \
.forkexec_idx = 1, \
.flags = SD_LOAD_BALANCE \
- | SD_BALANCE_FORK \
| SD_BALANCE_EXEC \
+ | SD_BALANCE_FORK \
| SD_SERIALIZE \
| SD_WAKE_BALANCE, \
.last_balance = jiffies, \
@@ -51,19 +71,21 @@ extern int __node_distance(int, int);
.nr_balance_failed = 0, \
}
+#else /* CONFIG_NUMA */
+
+#include <asm-generic/topology.h>
+
#endif
+extern cpumask_t cpu_coregroup_map(int cpu);
+
#ifdef CONFIG_SMP
#define topology_physical_package_id(cpu) (cpu_data(cpu).phys_proc_id)
#define topology_core_id(cpu) (cpu_data(cpu).cpu_core_id)
#define topology_core_siblings(cpu) (per_cpu(cpu_core_map, cpu))
#define topology_thread_siblings(cpu) (per_cpu(cpu_sibling_map, cpu))
#define mc_capable() (boot_cpu_data.x86_max_cores > 1)
-#define smt_capable() (smp_num_siblings > 1)
+#define smt_capable() (smp_num_siblings > 1)
#endif
-#include <asm-generic/topology.h>
-
-extern cpumask_t cpu_coregroup_map(int cpu);
-
#endif