1/****************************************************************************
2 ****************************************************************************
3 ***
4 ***   This header was automatically generated from a Linux kernel header
5 ***   of the same name, to make information necessary for userspace to
6 ***   call into the kernel available to libc.  It contains only constants,
7 ***   structures, and macros generated from the original header, and thus,
8 ***   contains no copyrightable information.
9 ***
10 ****************************************************************************
11 ****************************************************************************/
12#ifndef __LINUX_CACHE_H
13#define __LINUX_CACHE_H
14
15#include <linux/kernel.h>
16#include <asm/cache.h>
17
18#ifndef L1_CACHE_ALIGN
19#define L1_CACHE_ALIGN(x) ALIGN(x, L1_CACHE_BYTES)
20#endif
21
22#ifndef SMP_CACHE_BYTES
23#define SMP_CACHE_BYTES L1_CACHE_BYTES
24#endif
25
26#ifndef __read_mostly
27#define __read_mostly
28#endif
29
30#ifndef ____cacheline_aligned
31#define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
32#endif
33
34#ifndef ____cacheline_aligned_in_smp
35#define ____cacheline_aligned_in_smp
36#endif
37
38#ifndef __cacheline_aligned
39#define __cacheline_aligned   __attribute__((__aligned__(SMP_CACHE_BYTES),   __section__(".data.cacheline_aligned")))
40#endif
41
42#ifndef __cacheline_aligned_in_smp
43#define __cacheline_aligned_in_smp
44#endif
45
46#ifndef INTERNODE_CACHE_SHIFT
47#define INTERNODE_CACHE_SHIFT L1_CACHE_SHIFT
48#endif
49
50#ifndef ____cacheline_internodealigned_in_smp
51#define ____cacheline_internodealigned_in_smp
52#endif
53
54#endif
55