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