[vlc-commits] Move CPU capabilities debug to src/misc/cpu.c

Rémi Denis-Courmont git at videolan.org
Fri Aug 19 23:00:13 CEST 2011


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Fri Aug 19 23:15:08 2011 +0300| [78b320f230b5b36b62f2350d5dd757a5ff25c517] | committer: Rémi Denis-Courmont

Move CPU capabilities debug to src/misc/cpu.c

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=78b320f230b5b36b62f2350d5dd757a5ff25c517
---

 src/libvlc.c   |   40 +---------------------------------------
 src/libvlc.h   |    2 ++
 src/misc/cpu.c |   38 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 41 insertions(+), 39 deletions(-)

diff --git a/src/libvlc.c b/src/libvlc.c
index bcdf104..0c931c1 100644
--- a/src/libvlc.c
+++ b/src/libvlc.c
@@ -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
      */
diff --git a/src/libvlc.h b/src/libvlc.h
index 2dbccf8..a4ef280 100644
--- a/src/libvlc.h
+++ b/src/libvlc.h
@@ -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
  */
diff --git a/src/misc/cpu.c b/src/misc/cpu.c
index 20520d2..7e4b073 100644
--- a/src/misc/cpu.c
+++ b/src/misc/cpu.c
@@ -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)



More information about the vlc-commits mailing list