1/* 2 * linux/include/asm-ia64/topology.h 3 * 4 * Copyright (C) 2002, Erich Focht, NEC 5 * 6 * All rights reserved. 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License, or 11 * (at your option) any later version. 12 */ 13#ifndef _ASM_IA64_TOPOLOGY_H 14#define _ASM_IA64_TOPOLOGY_H 15 16#include <asm/acpi.h> 17#include <asm/numa.h> 18#include <asm/smp.h> 19 20#ifdef CONFIG_NUMA 21/* 22 * Returns the number of the node containing CPU 'cpu' 23 */ 24#define __cpu_to_node(cpu) (int)(cpu_to_node_map[cpu]) 25 26/* 27 * Returns a bitmask of CPUs on Node 'node'. 28 */ 29#define __node_to_cpu_mask(node) (node_to_cpu_mask[node]) 30 31#else 32#define __cpu_to_node(cpu) (0) 33#define __node_to_cpumask(node) (&phys_cpu_present_map) 34#endif 35 36/* 37 * Returns the number of the node containing MemBlk 'memblk' 38 */ 39#ifdef CONFIG_ACPI_NUMA 40#define __memblk_to_node(memblk) (node_memblk[memblk].nid) 41#else 42#define __memblk_to_node(memblk) (memblk) 43#endif 44 45/* 46 * Returns the number of the node containing Node 'nid'. 47 * Not implemented here. Multi-level hierarchies detected with 48 * the help of node_distance(). 49 */ 50#define __parent_node(nid) (nid) 51 52/* 53 * Returns the number of the first CPU on Node 'node'. 54 */ 55#define __node_to_first_cpu(node) (__ffs(__node_to_cpu_mask(node))) 56 57/* 58 * Returns the number of the first MemBlk on Node 'node' 59 * Should be fixed when IA64 discontigmem goes in. 60 */ 61#define __node_to_memblk(node) (node) 62 63#endif /* _ASM_IA64_TOPOLOGY_H */ 64

