diff options
Diffstat (limited to 'neozip/cpu_features.h')
| -rw-r--r-- | neozip/cpu_features.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/neozip/cpu_features.h b/neozip/cpu_features.h new file mode 100644 index 0000000000..2b6cc4e843 --- /dev/null +++ b/neozip/cpu_features.h @@ -0,0 +1,47 @@ +/* cpu_features.h -- CPU architecture feature check + * Copyright (C) 2017 Hans Kristian Rosbach + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +#ifndef CPU_FEATURES_H_ +#define CPU_FEATURES_H_ + +#ifndef DISABLE_RUNTIME_CPU_DETECTION + +#if defined(X86_FEATURES) +# include "arch/x86/x86_features.h" +#elif defined(ARM_FEATURES) +# include "arch/arm/arm_features.h" +#elif defined(PPC_FEATURES) || defined(POWER_FEATURES) +# include "arch/power/power_features.h" +#elif defined(S390_FEATURES) +# include "arch/s390/s390_features.h" +#elif defined(RISCV_FEATURES) +# include "arch/riscv/riscv_features.h" +#elif defined(LOONGARCH_FEATURES) +# include "arch/loongarch/loongarch_features.h" +#endif + +struct cpu_features { +#if defined(X86_FEATURES) + struct x86_cpu_features x86; +#elif defined(ARM_FEATURES) + struct arm_cpu_features arm; +#elif defined(PPC_FEATURES) || defined(POWER_FEATURES) + struct power_cpu_features power; +#elif defined(S390_FEATURES) + struct s390_cpu_features s390; +#elif defined(RISCV_FEATURES) + struct riscv_cpu_features riscv; +#elif defined(LOONGARCH_FEATURES) + struct loongarch_cpu_features loongarch; +#else + char empty; +#endif +}; + +void cpu_check_features(struct cpu_features *features); + +#endif + +#endif |
