• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
25 struct node {
26 	struct sys_device	sysdev;
27 };
28 
29 extern struct node node_devices[];
30 
31 extern int register_node(struct node *, int, struct node *);
32 extern void unregister_node(struct node *node);
33 #ifdef CONFIG_NUMA
34 extern int register_one_node(int nid);
35 extern void unregister_one_node(int nid);
36 extern int register_cpu_under_node(unsigned int cpu, unsigned int nid);
37 extern int unregister_cpu_under_node(unsigned int cpu, unsigned int nid);
38 #else
register_one_node(int nid)39 static inline int register_one_node(int nid)
40 {
41 	return 0;
42 }
unregister_one_node(int nid)43 static inline int unregister_one_node(int nid)
44 {
45 	return 0;
46 }
register_cpu_under_node(unsigned int cpu,unsigned int nid)47 static inline int register_cpu_under_node(unsigned int cpu, unsigned int nid)
48 {
49 	return 0;
50 }
unregister_cpu_under_node(unsigned int cpu,unsigned int nid)51 static 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