Move CPU capabilities debug to src/misc/cpu.c
authorRémi Denis-Courmont <remi@remlab.net>
Fri, 19 Aug 2011 20:15:08 +0000 (23:15 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Fri, 19 Aug 2011 20:38:38 +0000 (23:38 +0300)
src/libvlc.c
src/libvlc.h
src/misc/cpu.c

index bcdf104..0c931c1 100644 (file)
@@ -666,45 +666,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
     if( priv->b_color )
         priv->b_color = var_InheritBool( p_libvlc, "color" );
 
-    char p_capabilities[200];
-#define PRINT_CAPABILITY( capability, string )                              \
-    if( vlc_CPU() & capability )                                            \
-    {                                                                       \
-        strncat( p_capabilities, string " ",                                \
-                 sizeof(p_capabilities) - strlen(p_capabilities) );         \
-        p_capabilities[sizeof(p_capabilities) - 1] = '\0';                  \
-    }
-    p_capabilities[0] = '\0';
-
-#if defined( __i386__ ) || defined( __x86_64__ )
-    PRINT_CAPABILITY( CPU_CAPABILITY_MMX, "MMX" );
-    PRINT_CAPABILITY( CPU_CAPABILITY_3DNOW, "3DNow!" );
-    PRINT_CAPABILITY( CPU_CAPABILITY_MMXEXT, "MMXEXT" );
-    PRINT_CAPABILITY( CPU_CAPABILITY_SSE, "SSE" );
-    PRINT_CAPABILITY( CPU_CAPABILITY_SSE2, "SSE2" );
-    PRINT_CAPABILITY( CPU_CAPABILITY_SSE3, "SSE3" );
-    PRINT_CAPABILITY( CPU_CAPABILITY_SSSE3, "SSSE3" );
-    PRINT_CAPABILITY( CPU_CAPABILITY_SSE4_1, "SSE4.1" );
-    PRINT_CAPABILITY( CPU_CAPABILITY_SSE4_2, "SSE4.2" );
-    PRINT_CAPABILITY( CPU_CAPABILITY_SSE4A,  "SSE4A" );
-
-#elif defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc64__ )
-    PRINT_CAPABILITY( CPU_CAPABILITY_ALTIVEC, "AltiVec" );
-
-#elif defined( __arm__ )
-    PRINT_CAPABILITY( CPU_CAPABILITY_NEON, "NEONv1" );
-
-#endif
-
-#if HAVE_FPU
-    strncat( p_capabilities, "FPU ",
-             sizeof(p_capabilities) - strlen( p_capabilities) );
-    p_capabilities[sizeof(p_capabilities) - 1] = '\0';
-#endif
-
-    if (p_capabilities[0])
-        msg_Dbg( p_libvlc, "CPU has capabilities %s", p_capabilities );
-
+    vlc_CPU_dump( VLC_OBJECT(p_libvlc) );
     /*
      * Choose the best memcpy module
      */
index 2dbccf8..a4ef280 100644 (file)
@@ -41,6 +41,8 @@ void system_Init      ( void );
 void system_Configure ( libvlc_int_t *, int, const char *const [] );
 void system_End       ( void );
 
+void vlc_CPU_dump(vlc_object_t *);
+
 /*
  * Threads subsystem
  */
index 20520d2..7e4b073 100644 (file)
@@ -336,6 +336,44 @@ unsigned vlc_CPU (void)
     return cpu_flags;
 }
 
+void vlc_CPU_dump (vlc_object_t *obj)
+{
+    const unsigned flags = vlc_CPU();
+    char buf[200], *p = buf;
+
+#define PRINT_CAPABILITY( capability, string ) \
+    if (flags & (capability)) \
+        p += sprintf (p, "%s ", (string) )
+
+#if defined (__i386__) || defined (__x86_64__)
+    PRINT_CAPABILITY(CPU_CAPABILITY_MMX, "MMX");
+    PRINT_CAPABILITY(CPU_CAPABILITY_3DNOW, "3DNow!");
+    PRINT_CAPABILITY(CPU_CAPABILITY_MMXEXT, "MMXEXT");
+    PRINT_CAPABILITY(CPU_CAPABILITY_SSE, "SSE");
+    PRINT_CAPABILITY(CPU_CAPABILITY_SSE2, "SSE2");
+    PRINT_CAPABILITY(CPU_CAPABILITY_SSE3, "SSE3");
+    PRINT_CAPABILITY(CPU_CAPABILITY_SSSE3, "SSSE3");
+    PRINT_CAPABILITY(CPU_CAPABILITY_SSE4_1, "SSE4.1");
+    PRINT_CAPABILITY(CPU_CAPABILITY_SSE4_2, "SSE4.2");
+    PRINT_CAPABILITY(CPU_CAPABILITY_SSE4A,  "SSE4A");
+
+#elif defined (__powerpc__) || defined (__ppc__) || defined (__ppc64__)
+    PRINT_CAPABILITY(CPU_CAPABILITY_ALTIVEC, "AltiVec");
+
+#elif defined (__arm__)
+    PRINT_CAPABILITY(CPU_CAPABILITY_NEON, "NEONv1");
+
+#endif
+
+#if HAVE_FPU
+    p += sprintf (p, "FPU ");
+#endif
+
+    if (p > buf)
+        msg_Dbg (obj, "CPU has capabilities %s", buf);
+}
+
+
 static vlc_memcpy_t pf_vlc_memcpy = memcpy;
 
 void vlc_fastmem_register (vlc_memcpy_t cpy)