| 1234567891011121314151617181920212223242526272829303132333435363738 |
- /* SPDX-License-Identifier: GPL-2.0-or-later */
- /*
- * Copyright (C) 2023 WANG Xuerui <git@xen0n.name>
- *
- * raid6/loongarch.h
- *
- * Definitions common to LoongArch RAID-6 code only
- */
- #ifndef _LIB_RAID6_LOONGARCH_H
- #define _LIB_RAID6_LOONGARCH_H
- #ifdef __KERNEL__
- #include <asm/cpu-features.h>
- #include <asm/fpu.h>
- #else /* for user-space testing */
- #include <sys/auxv.h>
- /* have to supply these defines for glibc 2.37- and musl */
- #ifndef HWCAP_LOONGARCH_LSX
- #define HWCAP_LOONGARCH_LSX (1 << 4)
- #endif
- #ifndef HWCAP_LOONGARCH_LASX
- #define HWCAP_LOONGARCH_LASX (1 << 5)
- #endif
- #define kernel_fpu_begin()
- #define kernel_fpu_end()
- #define cpu_has_lsx (getauxval(AT_HWCAP) & HWCAP_LOONGARCH_LSX)
- #define cpu_has_lasx (getauxval(AT_HWCAP) & HWCAP_LOONGARCH_LASX)
- #endif /* __KERNEL__ */
- #endif /* _LIB_RAID6_LOONGARCH_H */
|