Subversion Repositories Kolibri OS

Rev

Rev 6588 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6588 serge 1
#ifndef _ASM_X86_NUMA_H
2
#define _ASM_X86_NUMA_H
3
 
4
#include 
5
 
6
#include 
7
#include 
8
 
9
#ifdef CONFIG_NUMA
10
 
11
#define NR_NODE_MEMBLKS		(MAX_NUMNODES*2)
12
 
13
/*
14
 * Too small node sizes may confuse the VM badly. Usually they
15
 * result from BIOS bugs. So dont recognize nodes as standalone
16
 * NUMA entities that have less than this amount of RAM listed:
17
 */
18
#define NODE_MIN_SIZE (4*1024*1024)
19
 
20
extern int numa_off;
21
 
22
/*
23
 * __apicid_to_node[] stores the raw mapping between physical apicid and
24
 * node and is used to initialize cpu_to_node mapping.
25
 *
26
 * The mapping may be overridden by apic->numa_cpu_node() on 32bit and thus
27
 * should be accessed by the accessors - set_apicid_to_node() and
28
 * numa_cpu_node().
29
 */
30
extern s16 __apicid_to_node[MAX_LOCAL_APIC];
31
extern nodemask_t numa_nodes_parsed __initdata;
32
 
33
extern int __init numa_add_memblk(int nodeid, u64 start, u64 end);
34
extern void __init numa_set_distance(int from, int to, int distance);
35
 
36
static inline void set_apicid_to_node(int apicid, s16 node)
37
{
38
	__apicid_to_node[apicid] = node;
39
}
40
 
41
extern int numa_cpu_node(int cpu);
42
 
43
#else	/* CONFIG_NUMA */
44
static inline void set_apicid_to_node(int apicid, s16 node)
45
{
46
}
47
 
48
static inline int numa_cpu_node(int cpu)
49
{
50
	return NUMA_NO_NODE;
51
}
52
#endif	/* CONFIG_NUMA */
53
 
54
#ifdef CONFIG_X86_32
55
# include 
56
#endif
57
 
58
#ifdef CONFIG_NUMA
59
extern void numa_set_node(int cpu, int node);
60
extern void numa_clear_node(int cpu);
61
extern void __init init_cpu_to_node(void);
62
extern void numa_add_cpu(int cpu);
63
extern void numa_remove_cpu(int cpu);
64
#else	/* CONFIG_NUMA */
65
static inline void numa_set_node(int cpu, int node)	{ }
66
static inline void numa_clear_node(int cpu)		{ }
67
static inline void init_cpu_to_node(void)		{ }
68
static inline void numa_add_cpu(int cpu)		{ }
69
static inline void numa_remove_cpu(int cpu)		{ }
70
#endif	/* CONFIG_NUMA */
71
 
72
#ifdef CONFIG_DEBUG_PER_CPU_MAPS
73
void debug_cpumask_set_cpu(int cpu, int node, bool enable);
74
#endif
75
 
76
#ifdef CONFIG_NUMA_EMU
77
#define FAKE_NODE_MIN_SIZE	((u64)32 << 20)
78
#define FAKE_NODE_MIN_HASH_MASK	(~(FAKE_NODE_MIN_SIZE - 1UL))
79
void numa_emu_cmdline(char *);
80
#endif /* CONFIG_NUMA_EMU */
81
 
82
#endif	/* _ASM_X86_NUMA_H */