Messages in this thread Patch in this message | | | Date | Sat, 10 Aug 2002 06:30:05 -0500 (CDT) | From | Robin Holt <> | Subject | [PATCH] Add some convenient L1_CACHE related macros. |
| |
Attached is a patch against 2.5.30 to add a few convenient L1_CACHE related macros.
I am not sure of the exact process, but I was wondering if these could get included in some future version of cache.h. I am currently using them in some drivers I am writing and feel they add to the readability of the code.
Thanks, Robin Holt diff -Naur linux-2.5.30-clean/include/linux/cache.h linux-2.5.30/include/linux/cache.h --- linux-2.5.30-clean/include/linux/cache.h Thu Aug 1 16:17:32 2002 +++ linux-2.5.30/include/linux/cache.h Sat Aug 10 06:02:07 2002 @@ -4,12 +4,26 @@ #include <linux/config.h> #include <asm/cache.h> +#ifndef L1_CACHE_MASK +#define L1_CACHE_MASK (L1_CACHE_BYTES - 1UL) +#endif + #define ALIGN(x,a) (((x)+(a)-1)&~((a)-1)) #ifndef L1_CACHE_ALIGN #define L1_CACHE_ALIGN(x) ALIGN(x, L1_CACHE_BYTES) #endif +/* Return the start of the cache line for address _p */ +#ifndef L1_CACHE_LINE +#define L1_CACHE_LINE(_p) ((unsigned long)(_p) & ~L1_CACHE_MASK) +#endif + +/* Is address _p aligned on a cache boundary? */ +#ifndef L1_CACHE_ALIGNED +#define L1_CACHE_ALIGNED(_p) (((unsigned long)(_p) & L1_CACHE_MASK) == 0) +#endif + #ifndef SMP_CACHE_BYTES #define SMP_CACHE_BYTES L1_CACHE_BYTES #endif
| |