[FFmpeg-devel] [PATCH] AltiVec detection support for OpenBSD
Brad
brad
Mon Sep 22 01:13:52 CEST 2008
On Mon, Sep 22, 2008 at 12:50:39AM +0200, Diego Biurrun wrote:
> On Sat, Sep 20, 2008 at 11:49:58PM -0400, Brad wrote:
> > The following diff adds support for detecting the presence of
> > AltiVec for OpenBSD.
> >
> >
> > --- libavcodec/ppc/check_altivec.c.orig Sat Sep 20 12:27:25 2008
> > +++ libavcodec/ppc/check_altivec.c Sat Sep 20 22:52:16 2008
> > @@ -25,6 +25,10 @@
> > #ifdef __APPLE__
> > #undef _POSIX_C_SOURCE
> > #include <sys/sysctl.h>
> > +#elif defined(__OpenBSD__)
>
> #elif __OpenBSD__
#elif defined() is used further down in the code already.
> > +#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
>
> Just add another #elif block, not a complete #ifdef #endif.
--- libavcodec/ppc/check_altivec.c.orig Sat Sep 20 12:27:25 2008
+++ libavcodec/ppc/check_altivec.c Sun Sep 21 19:08:49 2008
@@ -25,6 +25,10 @@
#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>
@@ -47,6 +51,16 @@ int has_altivec(void)
return 0;
#elif __APPLE__
int sels[2] = {CTL_HW, HW_VECTORUNIT};
+ int has_vu = 0;
+ size_t len = sizeof(has_vu);
+ int err;
+
+ err = sysctl(sels, 2, &has_vu, &len, NULL, 0);
+
+ if (err == 0) return has_vu != 0;
+ return 0;
+#elif __OpenBSD__
+ int sels[2] = {CTL_MACHDEP, CPU_ALTIVEC};
int has_vu = 0;
size_t len = sizeof(has_vu);
int err;
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
More information about the ffmpeg-devel
mailing list