AltiVec detection support for OpenBSD, patch by Brad, brad comstyle com.
authorBrad <brad@comstyle.com>
Mon, 22 Sep 2008 05:38:50 +0000 (05:38 +0000)
committerDiego Biurrun <diego@biurrun.de>
Mon, 22 Sep 2008 05:38:50 +0000 (05:38 +0000)
Originally committed as revision 15382 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/ppc/check_altivec.c

index f88b276..f21a16c 100644 (file)
 #ifdef __APPLE__
 #undef _POSIX_C_SOURCE
 #include <sys/sysctl.h>
+#elif __OpenBSD__
+#include <sys/param.h>
+#include <sys/sysctl.h>
+#include <machine/cpu.h>
 #elif __AMIGAOS4__
 #include <exec/exec.h>
 #include <interfaces/exec.h>
@@ -45,8 +49,12 @@ int has_altivec(void)
     IExec->GetCPUInfoTags(GCIT_VectorUnit, &result, TAG_DONE);
     if (result == VECTORTYPE_ALTIVEC) return 1;
     return 0;
-#elif __APPLE__
+#elif defined(__APPLE__) || defined(__OpenBSD__)
+#ifdef __OpenBSD__
+    int sels[2] = {CTL_MACHDEP, CPU_ALTIVEC};
+#else
     int sels[2] = {CTL_HW, HW_VECTORUNIT};
+#endif
     int has_vu = 0;
     size_t len = sizeof(has_vu);
     int err;