From 60660a1aecadb48f01e0e52fe0faf8e450d1e865 Mon Sep 17 00:00:00 2001 From: Arun Raghavan Date: Tue, 16 Oct 2012 12:00:19 +0530 Subject: [PATCH] core: Separate ARM CPU detection from initialisation This separate the ARM CPU feature detection code from the initialisation so that we can reuse it in tests, like we did for x86 a while back. --- src/pulsecore/cpu-arm.c | 12 ++++++++++-- src/pulsecore/cpu-arm.h | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/pulsecore/cpu-arm.c b/src/pulsecore/cpu-arm.c index a724309..934c7fe 100644 --- a/src/pulsecore/cpu-arm.c +++ b/src/pulsecore/cpu-arm.c @@ -79,7 +79,7 @@ static char *get_cpuinfo(void) { } #endif /* defined (__arm__) && defined (__linux__) */ -pa_bool_t pa_cpu_init_arm(pa_cpu_arm_flag_t *flags) { +void pa_cpu_get_arm_flags(pa_cpu_arm_flag_t *flags) { #if defined (__arm__) #if defined (__linux__) char *cpuinfo, *line; @@ -89,7 +89,7 @@ pa_bool_t pa_cpu_init_arm(pa_cpu_arm_flag_t *flags) { * space support to get the CPU features. This only works on linux AFAIK. */ if (!(cpuinfo = get_cpuinfo())) { pa_log("Can't read cpuinfo"); - return FALSE; + return; } *flags = 0; @@ -131,6 +131,14 @@ pa_bool_t pa_cpu_init_arm(pa_cpu_arm_flag_t *flags) { (*flags & PA_CPU_ARM_EDSP) ? "EDSP " : "", (*flags & PA_CPU_ARM_NEON) ? "NEON " : "", (*flags & PA_CPU_ARM_VFPV3) ? "VFPV3 " : ""); +#endif +#endif +} + +pa_bool_t pa_cpu_init_arm(pa_cpu_arm_flag_t *flags) { +#if defined (__arm__) +#if defined (__linux__) + pa_cpu_get_arm_flags(flags); if (*flags & PA_CPU_ARM_V6) pa_volume_func_init_arm(*flags); diff --git a/src/pulsecore/cpu-arm.h b/src/pulsecore/cpu-arm.h index f0f49ef..91aa659 100644 --- a/src/pulsecore/cpu-arm.h +++ b/src/pulsecore/cpu-arm.h @@ -35,6 +35,7 @@ typedef enum pa_cpu_arm_flag { PA_CPU_ARM_VFPV3 = (1 << 5) } pa_cpu_arm_flag_t; +void pa_cpu_get_arm_flags(pa_cpu_arm_flag_t *flags); pa_bool_t pa_cpu_init_arm(pa_cpu_arm_flag_t *flags); /* some optimized functions */ -- 2.7.4