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