xref: /openbmc/linux/arch/mips/include/asm/cpufeature.h (revision 2874c5fd)
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 Nowakowski static 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