1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * Copyright (C) 2023 WANG Xuerui <git@xen0n.name>
7 * Definitions common to LoongArch RAID-6 code only
10 #ifndef _LIB_RAID6_LOONGARCH_H
11 #define _LIB_RAID6_LOONGARCH_H
15 #include <asm/cpu-features.h>
18 #else /* for user-space testing */
22 /* have to supply these defines for glibc 2.37- and musl */
23 #ifndef HWCAP_LOONGARCH_LSX
24 #define HWCAP_LOONGARCH_LSX (1 << 4)
26 #ifndef HWCAP_LOONGARCH_LASX
27 #define HWCAP_LOONGARCH_LASX (1 << 5)
30 #define kernel_fpu_begin()
31 #define kernel_fpu_end()
33 #define cpu_has_lsx (getauxval(AT_HWCAP) & HWCAP_LOONGARCH_LSX)
34 #define cpu_has_lasx (getauxval(AT_HWCAP) & HWCAP_LOONGARCH_LASX)
36 #endif /* __KERNEL__ */
38 #endif /* _LIB_RAID6_LOONGARCH_H */