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 29extern struct node node_devices[]; 30 31extern int register_node(struct node *, int, struct node *); 32extern void unregister_node(struct node *node); 33#ifdef CONFIG_NUMA 34extern int register_one_node(int nid); 35extern void unregister_one_node(int nid); 36extern int register_cpu_under_node(unsigned int cpu, unsigned int nid); 37extern int unregister_cpu_under_node(unsigned int cpu, unsigned int nid); 38#else 39static inline int register_one_node(int nid) 40{ 41 return 0; 42} 43static inline int unregister_one_node(int nid) 44{ 45 return 0; 46} 47static inline int register_cpu_under_node(unsigned int cpu, unsigned int nid) 48{ 49 return 0; 50} 51static inline int unregister_cpu_under_node(unsigned int cpu, unsigned int nid) 52{ 53 return 0; 54} 55#endif 56 57#define to_node(sys_device) container_of(sys_device, struct node, sysdev) 58 59#endif /* _LINUX_NODE_H_ */ 60