cache.h (a9de18eb761f7c1c860964b2e5addc1a35c7e861) cache.h (abe1ee3a221d53778c3e58747bbec6e518e5471b)
1#ifndef _ASM_X86_CACHE_H
2#define _ASM_X86_CACHE_H
3
1#ifndef _ASM_X86_CACHE_H
2#define _ASM_X86_CACHE_H
3
4#include <linux/linkage.h>
5
4/* L1 cache line size */
5#define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT)
6#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
7
8#define __read_mostly __attribute__((__section__(".data.read_mostly")))
9
10#ifdef CONFIG_X86_VSMP
11/* vSMP Internode cacheline shift */
12#define INTERNODE_CACHE_SHIFT (12)
13#ifdef CONFIG_SMP
14#define __cacheline_aligned_in_smp \
15 __attribute__((__aligned__(1 << (INTERNODE_CACHE_SHIFT)))) \
6/* L1 cache line size */
7#define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT)
8#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
9
10#define __read_mostly __attribute__((__section__(".data.read_mostly")))
11
12#ifdef CONFIG_X86_VSMP
13/* vSMP Internode cacheline shift */
14#define INTERNODE_CACHE_SHIFT (12)
15#ifdef CONFIG_SMP
16#define __cacheline_aligned_in_smp \
17 __attribute__((__aligned__(1 << (INTERNODE_CACHE_SHIFT)))) \
16 __attribute__((__section__(".data.page_aligned")))
18 __page_aligned_data
17#endif
18#endif
19
20#endif /* _ASM_X86_CACHE_H */
19#endif
20#endif
21
22#endif /* _ASM_X86_CACHE_H */