X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmisc%2Fcpu.c;h=124876d7adfc02cebbb68f343ce2a58baa5fd9cd;hb=5d313c65e44d8963262fdbc5d5d52f5169f3f787;hp=0377abe800b43fc1fa3957a43d85b5a5e858f897;hpb=79de69ca80992bb4899f91e93c7c1bdf9589dace;p=vlc diff --git a/src/misc/cpu.c b/src/misc/cpu.c index 0377abe800..124876d7ad 100644 --- a/src/misc/cpu.c +++ b/src/misc/cpu.c @@ -26,13 +26,19 @@ /***************************************************************************** * Preamble *****************************************************************************/ -#include +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include #ifdef HAVE_SIGNAL_H # include /* SIGHUP, SIGINT, SIGKILL */ # include /* longjmp, setjmp */ #endif +#include "libvlc.h" + #if defined(__APPLE__) && (defined(__ppc__) || defined(__ppc64__)) #include #endif @@ -79,7 +85,7 @@ uint32_t CPUCapabilities( void ) #elif defined( __i386__ ) || defined( __x86_64__ ) volatile unsigned int i_eax, i_ebx, i_ecx, i_edx; - volatile vlc_bool_t b_amd; + volatile bool b_amd; /* Needed for x86 CPU capabilities detection */ # if defined( __x86_64__ ) @@ -329,7 +335,7 @@ static void SigHandler( int i_signal ) "operating system.\n", psz_capability ); fprintf( stderr, " some optimizations will be disabled unless " "you upgrade your OS\n" ); -# if defined( SYS_LINUX ) +# if defined( __linux__ ) fprintf( stderr, " (for instance Linux kernel 2.4.x or later)\n" ); # endif #endif @@ -350,3 +356,29 @@ unsigned vlc_CPU (void) return cpu_flags; } +static vlc_memcpy_t pf_vlc_memcpy = memcpy; +static vlc_memset_t pf_vlc_memset = memset; + +void vlc_fastmem_register (vlc_memcpy_t cpy, vlc_memset_t set) +{ + if (cpy) + pf_vlc_memcpy = cpy; + if (set) + pf_vlc_memset = set; +} + +/** + * vlc_memcpy: fast CPU-dependent memcpy + */ +void *vlc_memcpy (void *tgt, const void *src, size_t n) +{ + return pf_vlc_memcpy (tgt, src, n); +} + +/** + * vlc_memset: fast CPU-dependent memset + */ +void *vlc_memset (void *tgt, int c, size_t n) +{ + return pf_vlc_memset (tgt, c, n); +}