|  | /* | 
|  | * Written by Kanoj Sarcar (kanoj@sgi.com) Aug 99 | 
|  | * | 
|  | * PowerPC64 port: | 
|  | * Copyright (C) 2002 Anton Blanchard, IBM Corp. | 
|  | */ | 
|  | #ifndef _ASM_MMZONE_H_ | 
|  | #define _ASM_MMZONE_H_ | 
|  | #ifdef __KERNEL__ | 
|  |  | 
|  | #include <linux/cpumask.h> | 
|  |  | 
|  | /* | 
|  | * generic non-linear memory support: | 
|  | * | 
|  | * 1) we will not split memory into more chunks than will fit into the | 
|  | *    flags field of the struct page | 
|  | */ | 
|  |  | 
|  | #ifdef CONFIG_NEED_MULTIPLE_NODES | 
|  |  | 
|  | extern struct pglist_data *node_data[]; | 
|  | /* | 
|  | * Return a pointer to the node data for node n. | 
|  | */ | 
|  | #define NODE_DATA(nid)		(node_data[nid]) | 
|  |  | 
|  | /* | 
|  | * Following are specific to this numa platform. | 
|  | */ | 
|  |  | 
|  | extern int numa_cpu_lookup_table[]; | 
|  | extern cpumask_var_t node_to_cpumask_map[]; | 
|  | #ifdef CONFIG_MEMORY_HOTPLUG | 
|  | extern unsigned long max_pfn; | 
|  | #endif | 
|  |  | 
|  | /* | 
|  | * Following are macros that each numa implmentation must define. | 
|  | */ | 
|  |  | 
|  | #define node_start_pfn(nid)	(NODE_DATA(nid)->node_start_pfn) | 
|  | #define node_end_pfn(nid)	(NODE_DATA(nid)->node_end_pfn) | 
|  |  | 
|  | #endif /* CONFIG_NEED_MULTIPLE_NODES */ | 
|  |  | 
|  | #endif /* __KERNEL__ */ | 
|  | #endif /* _ASM_MMZONE_H_ */ |