#define cache_is_vivt() 0 #define cache_is_vipt() 1 ... #else /*没有明确配置cache type*/ /* * VIVT or VIPT caches. Note that this is unreliable since ARM926 * and V6 CPUs satisfy the "(val & (15 << 25)) == (14 << 25)" test. * There's no way to tell from the CacheType register what type (!) * the cache is. */ #define cache_is_vivt() \ ({ \ unsigned int __val = read_cpuid(CPUID_CACHETYPE); \ (!__cacheid_present(__val)) || __cacheid_vivt(__val); \ })