12874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 205510f2bSMarcin Nowakowski /* 305510f2bSMarcin Nowakowski * CPU feature definitions for module loading, used by 405510f2bSMarcin Nowakowski * module_cpu_feature_match(), see uapi/asm/hwcap.h for MIPS CPU features. 505510f2bSMarcin Nowakowski */ 605510f2bSMarcin Nowakowski 705510f2bSMarcin Nowakowski #ifndef __ASM_CPUFEATURE_H 805510f2bSMarcin Nowakowski #define __ASM_CPUFEATURE_H 905510f2bSMarcin Nowakowski 1005510f2bSMarcin Nowakowski #include <uapi/asm/hwcap.h> 1105510f2bSMarcin Nowakowski #include <asm/elf.h> 1205510f2bSMarcin Nowakowski 1305510f2bSMarcin Nowakowski #define MAX_CPU_FEATURES (8 * sizeof(elf_hwcap)) 1405510f2bSMarcin Nowakowski 1505510f2bSMarcin Nowakowski #define cpu_feature(x) ilog2(HWCAP_ ## x) 1605510f2bSMarcin Nowakowski cpu_have_feature(unsigned int num)1705510f2bSMarcin Nowakowskistatic inline bool cpu_have_feature(unsigned int num) 1805510f2bSMarcin Nowakowski { 1905510f2bSMarcin Nowakowski return elf_hwcap & (1UL << num); 2005510f2bSMarcin Nowakowski } 2105510f2bSMarcin Nowakowski 2205510f2bSMarcin Nowakowski #endif /* __ASM_CPUFEATURE_H */ 23