core: Separate ARM CPU detection from initialisation
authorArun Raghavan <arun.raghavan@collabora.co.uk>
Tue, 16 Oct 2012 06:30:19 +0000 (12:00 +0530)
committerArun Raghavan <arun.raghavan@collabora.co.uk>
Fri, 19 Oct 2012 13:31:16 +0000 (19:01 +0530)
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
src/pulsecore/cpu-arm.h

index a724309..934c7fe 100644 (file)
@@ -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);
index f0f49ef..91aa659 100644 (file)
@@ -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 */