at v2.6.32-rc8 2.0 kB view raw
1/* 2 * include/linux/node.h - generic node definition 3 * 4 * This is mainly for topological representation. We define the 5 * basic 'struct node' here, which can be embedded in per-arch 6 * definitions of processors. 7 * 8 * Basic handling of the devices is done in drivers/base/node.c 9 * and system devices are handled in drivers/base/sys.c. 10 * 11 * Nodes are exported via driverfs in the class/node/devices/ 12 * directory. 13 * 14 * Per-node interfaces can be implemented using a struct device_interface. 15 * See the following for how to do this: 16 * - drivers/base/intf.c 17 * - Documentation/driver-model/interface.txt 18 */ 19#ifndef _LINUX_NODE_H_ 20#define _LINUX_NODE_H_ 21 22#include <linux/sysdev.h> 23#include <linux/cpumask.h> 24 25struct node { 26 struct sys_device sysdev; 27}; 28 29struct memory_block; 30extern struct node node_devices[]; 31 32extern int register_node(struct node *, int, struct node *); 33extern void unregister_node(struct node *node); 34#ifdef CONFIG_NUMA 35extern int register_one_node(int nid); 36extern void unregister_one_node(int nid); 37extern int register_cpu_under_node(unsigned int cpu, unsigned int nid); 38extern int unregister_cpu_under_node(unsigned int cpu, unsigned int nid); 39extern int register_mem_sect_under_node(struct memory_block *mem_blk, 40 int nid); 41extern int unregister_mem_sect_under_nodes(struct memory_block *mem_blk); 42#else 43static inline int register_one_node(int nid) 44{ 45 return 0; 46} 47static inline int unregister_one_node(int nid) 48{ 49 return 0; 50} 51static inline int register_cpu_under_node(unsigned int cpu, unsigned int nid) 52{ 53 return 0; 54} 55static inline int unregister_cpu_under_node(unsigned int cpu, unsigned int nid) 56{ 57 return 0; 58} 59static inline int register_mem_sect_under_node(struct memory_block *mem_blk, 60 int nid) 61{ 62 return 0; 63} 64static inline int unregister_mem_sect_under_nodes(struct memory_block *mem_blk) 65{ 66 return 0; 67} 68#endif 69 70#define to_node(sys_device) container_of(sys_device, struct node, sysdev) 71 72#endif /* _LINUX_NODE_H_ */