]> git.sesse.net Git - vlc/blobdiff - include/tests.h
* Fixed the BeOS compile typo.
[vlc] / include / tests.h
index 88ec4f0627e4d48c00041db0720fbdf016b8af43..8e545e18c9f3483399c34c2dd49707acb5de721e 100644 (file)
@@ -2,6 +2,7 @@
  * tests.h: several test functions needed by the plugins
  *****************************************************************************
  * Copyright (C) 1996, 1997, 1998, 1999, 2000 VideoLAN
+ * $Id: tests.h,v 1.11 2001/05/30 17:03:11 sam Exp $
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *
 #define CPU_CAPABILITY_MMX     1<<3
 #define CPU_CAPABILITY_3DNOW   1<<4
 #define CPU_CAPABILITY_MMXEXT  1<<5
+#define CPU_CAPABILITY_SSE     1<<6
 #define CPU_CAPABILITY_ALTIVEC 1<<16
 
 /*****************************************************************************
  * TestVersion: tests if the given string equals the current version
  *****************************************************************************/
-int TestVersion( char * psz_version );
-int TestProgram( char * psz_program );
-int TestMethod( char * psz_var, char * psz_method );
-int TestCPU( int i_capabilities );
-
-/*****************************************************************************
- * CPUCapabilities: list the processors MMX support and other capabilities
- *****************************************************************************
- * This function is called to list extensions the CPU may have.
- *****************************************************************************/
-static __inline__ int CPUCapabilities( void )
-{
-#ifdef SYS_BEOS
-    return( CPU_CAPABILITY_NONE
-            | CPU_CAPABILITY_486
-            | CPU_CAPABILITY_586
-            | CPU_CAPABILITY_MMX );
-#else
-    int           i_capabilities = CPU_CAPABILITY_NONE;
-#ifdef __i386__
-    unsigned int  i_eax, i_ebx, i_ecx, i_edx;
-    boolean_t     b_amd;
-
-#define cpuid( a )                 \
-    asm volatile ( "cpuid"         \
-                 : "=a" ( i_eax ), \
-                   "=b" ( i_ebx ), \
-                   "=c" ( i_ecx ), \
-                   "=d" ( i_edx )  \
-                 : "a"  ( a )      \
-                 : "cc" );         \
-
-    /* test for a 486 CPU */
-    asm volatile ( "pushfl
-                    popl %%eax
-                    movl %%eax, %%ebx
-                    xorl $0x200000, %%eax
-                    pushl %%eax
-                    popfl
-                    pushfl
-                    popl %%eax"
-                 : "=a" ( i_eax ),
-                   "=b" ( i_ebx )
-                 :
-                 : "cc" );
-
-    if( i_eax == i_ebx )
-    {
-        return( i_capabilities );
-    }
-
-    i_capabilities |= CPU_CAPABILITY_486;
-
-    /* the CPU supports the CPUID instruction - get its level */
-    cpuid( 0x00000000 );
-
-    if( !i_eax )
-    {
-        return( i_capabilities );
-    }
-
-    /* FIXME: this isn't correct, since some 486s have cpuid */
-    i_capabilities |= CPU_CAPABILITY_586;
-
-    /* borrowed from mpeg2dec */
-    b_amd = ( i_ebx == 0x68747541 ) && ( i_ecx == 0x444d4163 )
-                    && ( i_edx == 0x69746e65 );
-
-    /* test for the MMX flag */
-    cpuid( 0x00000001 );
-
-    if( ! (i_edx & 0x00800000) )
-    {
-        return( i_capabilities );
-    }
-
-    i_capabilities |= CPU_CAPABILITY_MMX;
-
-    if( i_edx & 0x02000000 )
-    {
-        i_capabilities |= CPU_CAPABILITY_MMXEXT;
-    }
-    
-    /* test for additional capabilities */
-    cpuid( 0x80000000 );
-
-    if( i_eax < 0x80000001 )
-    {
-        return( i_capabilities );
-    }
-
-    /* list these additional capabilities */
-    cpuid( 0x80000001 );
-
-    if( i_edx & 0x80000000 )
-    {
-        i_capabilities |= CPU_CAPABILITY_3DNOW;
-    }
-
-    if( b_amd && ( i_edx & 0x00400000 ) )
-    {
-        i_capabilities |= CPU_CAPABILITY_MMXEXT;
-    }
-#endif /* __i386__ */
-
-    return( i_capabilities );
-#endif /* SYS_BEOS */
-}
+int TestProgram  ( char * );
+int TestMethod   ( char *, char * );
+int TestCPU      ( int );