• Bug#1062361: marked as done (gnss-sdr: add support for loongarch64) (3/

    From Debian Bug Tracking System@1:229/2 to All on Tue Dec 10 12:40:02 2024
    [continued from previous message]

    +} Loongarch64Info;
    +
    +Loongarch64Info GetLoongarch64Info(void);
    +
    +typedef enum
    +{
    + LOONGARCH64_CPUCFG,
    + LOONGARCH64_LAM,
    + LOONGARCH64_UAL,
    + LOONGARCH64_FPU,
    + LOONGARCH64_LSX,
    + LOONGARCH64_LASX,
    + LOONGARCH64_CRC32,
    + LOONGARCH64_COMPLEX,
    + LOONGARCH64_CRYPTO,
    + LOONGARCH64_LVZ,
    + LOONGARCH64_LAST_,
    +} Loongarch64FeaturesEnum;
    +
    +int GetLoongarch64FeaturesEnumValue(const Loongarch64Features* features,
    + Loongarch64FeaturesEnum value);
    +
    +const char* GetLoongarch64FeaturesEnumName(Loongarch64FeaturesEnum);
    +
    +CPU_FEATURES_END_CPP_NAMESPACE
    +
    +#if !defined(CPU_FEATURES_ARCH_LOONGARCH64)
    +#error "Including cpuinfo_loongarch64.h from a non-loongarch64 target." +#endif
    +
    +#endif // CPU_FEATURES_INCLUDE_CPUINFO_LOONGARCH64_H_
    --- gnss-sdr-0.0.18.orig/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/include/internal/hwcaps.h
    +++ gnss-sdr-0.0.18/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/include/internal/hwcaps.h
    @@ -101,6 +101,18 @@ CPU_FEATURES_START_CPP_NAMESPACE
    #define ARM_HWCAP2_SHA2 (1UL << 3)
    #define ARM_HWCAP2_CRC32 (1UL << 4)

    +//LOONGARCH64
    +#define LOONGARCH64_HWCAP_CPUCFG (1UL << 0)
    +#define LOONGARCH64_HWCAP_LAM (1UL << 1)
    +#define LOONGARCH64_HWCAP_UAL (1UL << 2)
    +#define LOONGARCH64_HWCAP_FPU (1UL << 3)
    +#define LOONGARCH64_HWCAP_LSX (1UL << 4)
    +#define LOONGARCH64_HWCAP_LASX (1UL << 5)
    +#define LOONGARCH64_HWCAP_CRC32 (1UL << 6)
    +#define LOONGARCH64_HWCAP_COMPLEX (1UL << 7)
    +#define LOONGARCH64_HWCAP_CRYPTO (1UL << 8)
    +#define LOONGARCH64_HWCAP_LVZ (1UL << 9)
    +
    // http://elixir.free-electrons.com/linux/latest/source/arch/mips/include/uapi/asm/hwcap.h