162306a36Sopenharmony_ci/*
262306a36Sopenharmony_ci * linux/include/asm-generic/topology.h
362306a36Sopenharmony_ci *
462306a36Sopenharmony_ci * Written by: Matthew Dobson, IBM Corporation
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * Copyright (C) 2002, IBM Corp.
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci * All rights reserved.
962306a36Sopenharmony_ci *
1062306a36Sopenharmony_ci * This program is free software; you can redistribute it and/or modify
1162306a36Sopenharmony_ci * it under the terms of the GNU General Public License as published by
1262306a36Sopenharmony_ci * the Free Software Foundation; either version 2 of the License, or
1362306a36Sopenharmony_ci * (at your option) any later version.
1462306a36Sopenharmony_ci *
1562306a36Sopenharmony_ci * This program is distributed in the hope that it will be useful, but
1662306a36Sopenharmony_ci * WITHOUT ANY WARRANTY; without even the implied warranty of
1762306a36Sopenharmony_ci * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
1862306a36Sopenharmony_ci * NON INFRINGEMENT.  See the GNU General Public License for more
1962306a36Sopenharmony_ci * details.
2062306a36Sopenharmony_ci *
2162306a36Sopenharmony_ci * You should have received a copy of the GNU General Public License
2262306a36Sopenharmony_ci * along with this program; if not, write to the Free Software
2362306a36Sopenharmony_ci * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
2462306a36Sopenharmony_ci *
2562306a36Sopenharmony_ci * Send feedback to <colpatch@us.ibm.com>
2662306a36Sopenharmony_ci */
2762306a36Sopenharmony_ci#ifndef _ASM_GENERIC_TOPOLOGY_H
2862306a36Sopenharmony_ci#define _ASM_GENERIC_TOPOLOGY_H
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci#ifndef	CONFIG_NUMA
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci/* Other architectures wishing to use this simple topology API should fill
3362306a36Sopenharmony_ci   in the below functions as appropriate in their own <asm/topology.h> file. */
3462306a36Sopenharmony_ci#ifndef cpu_to_node
3562306a36Sopenharmony_ci#define cpu_to_node(cpu)	((void)(cpu),0)
3662306a36Sopenharmony_ci#endif
3762306a36Sopenharmony_ci#ifndef set_numa_node
3862306a36Sopenharmony_ci#define set_numa_node(node)
3962306a36Sopenharmony_ci#endif
4062306a36Sopenharmony_ci#ifndef set_cpu_numa_node
4162306a36Sopenharmony_ci#define set_cpu_numa_node(cpu, node)
4262306a36Sopenharmony_ci#endif
4362306a36Sopenharmony_ci#ifndef cpu_to_mem
4462306a36Sopenharmony_ci#define cpu_to_mem(cpu)		((void)(cpu),0)
4562306a36Sopenharmony_ci#endif
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci#ifndef cpumask_of_node
4862306a36Sopenharmony_ci  #ifdef CONFIG_NUMA
4962306a36Sopenharmony_ci    #define cpumask_of_node(node)	((node) == 0 ? cpu_online_mask : cpu_none_mask)
5062306a36Sopenharmony_ci  #else
5162306a36Sopenharmony_ci    #define cpumask_of_node(node)	((void)(node), cpu_online_mask)
5262306a36Sopenharmony_ci  #endif
5362306a36Sopenharmony_ci#endif
5462306a36Sopenharmony_ci#ifndef pcibus_to_node
5562306a36Sopenharmony_ci#define pcibus_to_node(bus)	((void)(bus), -1)
5662306a36Sopenharmony_ci#endif
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci#ifndef cpumask_of_pcibus
5962306a36Sopenharmony_ci#define cpumask_of_pcibus(bus)	(pcibus_to_node(bus) == -1 ?		\
6062306a36Sopenharmony_ci				 cpu_all_mask :				\
6162306a36Sopenharmony_ci				 cpumask_of_node(pcibus_to_node(bus)))
6262306a36Sopenharmony_ci#endif
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci#endif	/* CONFIG_NUMA */
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci#if !defined(CONFIG_NUMA) || !defined(CONFIG_HAVE_MEMORYLESS_NODES)
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci#ifndef set_numa_mem
6962306a36Sopenharmony_ci#define set_numa_mem(node)
7062306a36Sopenharmony_ci#endif
7162306a36Sopenharmony_ci#ifndef set_cpu_numa_mem
7262306a36Sopenharmony_ci#define set_cpu_numa_mem(cpu, node)
7362306a36Sopenharmony_ci#endif
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci#endif	/* !CONFIG_NUMA || !CONFIG_HAVE_MEMORYLESS_NODES */
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci#endif /* _ASM_GENERIC_TOPOLOGY_H */
78