commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r8959 - in gnuradio/branches/developers/eb/vmx: config


From: eb
Subject: [Commit-gnuradio] r8959 - in gnuradio/branches/developers/eb/vmx: config gnuradio-core/src/lib/filter
Date: Sun, 20 Jul 2008 18:38:19 -0600 (MDT)

Author: eb
Date: 2008-07-20 18:38:16 -0600 (Sun, 20 Jul 2008)
New Revision: 8959

Added:
   
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_cpu_powerpc.cc
   
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_cpu_x86.cc
   
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_fir_sysconfig_powerpc.cc
   
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_fir_sysconfig_powerpc.h
   
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/sysconfig_powerpc.cc
Removed:
   gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_cpu.cc
Modified:
   gnuradio/branches/developers/eb/vmx/config/gr_set_md_cpu.m4
   gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/Makefile.am
   gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_cpu.h
Log:
Added framework for PowerPC VMX (AltiVec) support


Modified: gnuradio/branches/developers/eb/vmx/config/gr_set_md_cpu.m4
===================================================================
--- gnuradio/branches/developers/eb/vmx/config/gr_set_md_cpu.m4 2008-07-20 
21:55:40 UTC (rev 8958)
+++ gnuradio/branches/developers/eb/vmx/config/gr_set_md_cpu.m4 2008-07-21 
00:38:16 UTC (rev 8959)
@@ -1,5 +1,5 @@
 dnl
-dnl Copyright 2003 Free Software Foundation, Inc.
+dnl Copyright 2003,2008 Free Software Foundation, Inc.
 dnl 
 dnl This file is part of GNU Radio
 dnl 
@@ -28,10 +28,10 @@
 
   AC_MSG_CHECKING([for machine dependent speedups])
   case "$cf_with_md_cpu" in
-   x86 | i[[3-7]]86)   MD_CPU=x86      MD_SUBCPU=x86   ;;
-   x86_64)             MD_CPU=x86      MD_SUBCPU=x86_64        ;;
-#  sparc)       MD_CPU=sparc    ;;
-   *)           MD_CPU=generic   ;;
+   x86 | i[[3-7]]86)   MD_CPU=x86      MD_SUBCPU=x86 ;;
+   x86_64)             MD_CPU=x86      MD_SUBCPU=x86_64 ;;
+   powerpc*)            MD_CPU=powerpc ;;
+   *)                  MD_CPU=generic ;;
   esac
   AC_MSG_RESULT($MD_CPU)
   AC_SUBST(MD_CPU)
@@ -39,5 +39,6 @@
 
   AM_CONDITIONAL(MD_CPU_x86,     test "$MD_CPU" = "x86")
   AM_CONDITIONAL(MD_SUBCPU_x86_64,  test "$MD_SUBCPU" = "x86_64")
+  AM_CONDITIONAL(MD_CPU_powerpc, test "$MD_CPU" = "powerpc")
   AM_CONDITIONAL(MD_CPU_generic, test "$MD_CPU" = "generic")
 ])

Modified: 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/Makefile.am
===================================================================
--- 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/Makefile.am    
    2008-07-20 21:55:40 UTC (rev 8958)
+++ 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/Makefile.am    
    2008-07-21 00:38:16 UTC (rev 8959)
@@ -117,7 +117,7 @@
 x86_CODE =                             \
        sysconfig_x86.cc                \
        gr_fir_sysconfig_x86.cc         \
-       gr_cpu.cc                       \
+       gr_cpu_x86.cc                   \
        gr_fir_ccc_simd.cc              \
        gr_fir_ccc_x86.cc               \
        gr_fir_fff_simd.cc              \
@@ -166,6 +166,14 @@
        qa_complex_dotprod_x86.cc       \
        qa_ccomplex_dotprod_x86.cc      
 
+powerpc_CODE = \
+       sysconfig_powerpc.cc \
+       gr_fir_sysconfig_powerpc.cc \
+       gr_cpu_powerpc.cc
+
+powerpc_qa_CODE =
+
+
 #
 # include each <foo>_CODE entry here...
 #
@@ -175,7 +183,9 @@
        $(x86_CODE)                     \
        $(x86_SUBCODE)                  \
        $(x86_64_SUBCODE)               \
-       $(x86_qa_CODE)
+       $(x86_qa_CODE)                  \
+       $(powerpc_CODE)                 \
+       $(powerpc_qa_CODE)
 
 
 EXTRA_DIST =                                   \
@@ -234,7 +244,12 @@
 libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(x86_qa_CODE)
 endif
 
+if MD_CPU_powerpc
+libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(powerpc_CODE)
+libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(powerpc_qa_CODE)
+endif
 
+
 grinclude_HEADERS =                    \
        $(GENERATED_H)                  \
        complex_dotprod_generic.h       \

Deleted: 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_cpu.cc

Modified: 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_cpu.h
===================================================================
--- gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_cpu.h   
2008-07-20 21:55:40 UTC (rev 8958)
+++ gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_cpu.h   
2008-07-21 00:38:16 UTC (rev 8959)
@@ -1,6 +1,6 @@
 /* -*- c++ -*- */
 /*
- * Copyright 2002 Free Software Foundation, Inc.
+ * Copyright 2002,2008 Free Software Foundation, Inc.
  * 
  * This file is part of GNU Radio
  * 
@@ -29,6 +29,7 @@
   static bool has_sse2 ();
   static bool has_3dnow ();
   static bool has_3dnowext ();
+  static bool has_vmx ();
 };
 
 #endif /* _GR_CPU_H_ */

Copied: 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_cpu_powerpc.cc
 (from rev 8953, 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_cpu.cc)
===================================================================
--- 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_cpu_powerpc.cc
                          (rev 0)
+++ 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_cpu_powerpc.cc
  2008-07-21 00:38:16 UTC (rev 8959)
@@ -0,0 +1,59 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2002,2008 Free Software Foundation, Inc.
+ * 
+ * This file is part of GNU Radio
+ * 
+ * GNU Radio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ * 
+ * GNU Radio is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Radio; see the file COPYING.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <gr_cpu.h>
+
+bool
+gr_cpu::has_mmx ()
+{
+  return false;
+}
+
+bool
+gr_cpu::has_sse ()
+{
+  return false;
+}
+
+bool
+gr_cpu::has_sse2 ()
+{
+  return false;
+}
+
+bool
+gr_cpu::has_3dnow ()
+{
+  return false;
+}
+
+bool
+gr_cpu::has_3dnowext ()
+{
+  return false;
+}
+
+bool
+gr_cpu::has_vmx ()
+{
+  return true;         // FIXME assume we've always got it
+}

Copied: 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_cpu_x86.cc 
(from rev 8953, 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_cpu.cc)
===================================================================
--- 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_cpu_x86.cc  
                            (rev 0)
+++ 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_cpu_x86.cc  
    2008-07-21 00:38:16 UTC (rev 8959)
@@ -0,0 +1,113 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2002 Free Software Foundation, Inc.
+ * 
+ * This file is part of GNU Radio
+ * 
+ * GNU Radio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ * 
+ * GNU Radio is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Radio; see the file COPYING.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <gr_cpu.h>
+
+/*
+ * execute CPUID instruction, return EAX, EBX, ECX and EDX values in result
+ */
+extern "C" {
+void cpuid_x86 (unsigned int op, unsigned int result[4]);
+};
+
+/*
+ * CPUID functions returning a single datum
+ */
+
+static inline unsigned int cpuid_eax(unsigned int op)
+{
+  unsigned int regs[4];
+  cpuid_x86 (op, regs);
+  return regs[0];
+}
+
+static inline unsigned int cpuid_ebx(unsigned int op)
+{
+  unsigned int regs[4];
+  cpuid_x86 (op, regs);
+  return regs[1];
+}
+
+static inline unsigned int cpuid_ecx(unsigned int op)
+{
+  unsigned int regs[4];
+  cpuid_x86 (op, regs);
+  return regs[2];
+}
+
+static inline unsigned int cpuid_edx(unsigned int op)
+{
+  unsigned int regs[4];
+  cpuid_x86 (op, regs);
+  return regs[3];
+}
+
+// ----------------------------------------------------------------
+
+bool
+gr_cpu::has_mmx ()
+{
+  unsigned int edx = cpuid_edx (1);    // standard features
+  return (edx & (1 << 23)) != 0;
+}
+
+bool
+gr_cpu::has_sse ()
+{
+  unsigned int edx = cpuid_edx (1);    // standard features
+  return (edx & (1 << 25)) != 0;
+}
+
+bool
+gr_cpu::has_sse2 ()
+{
+  unsigned int edx = cpuid_edx (1);    // standard features
+  return (edx & (1 << 26)) != 0;
+}
+
+bool
+gr_cpu::has_3dnow ()
+{
+  unsigned int extended_fct_count = cpuid_eax (0x80000000);
+  if (extended_fct_count < 0x80000001)
+    return false;
+
+  unsigned int extended_features = cpuid_edx (0x80000001);
+  return (extended_features & (1 << 31)) != 0;
+}
+
+bool
+gr_cpu::has_3dnowext ()
+{
+  unsigned int extended_fct_count = cpuid_eax (0x80000000);
+  if (extended_fct_count < 0x80000001)
+    return false;
+
+  unsigned int extended_features = cpuid_edx (0x80000001);
+  return (extended_features & (1 << 30)) != 0;
+}
+
+bool
+gr_cpu::has_vmx ()
+{
+  return false;
+}

Copied: 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_fir_sysconfig_powerpc.cc
 (from rev 8953, 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_fir_sysconfig_x86.cc)
===================================================================
--- 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_fir_sysconfig_powerpc.cc
                                (rev 0)
+++ 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_fir_sysconfig_powerpc.cc
        2008-07-21 00:38:16 UTC (rev 8959)
@@ -0,0 +1,348 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2002,2008 Free Software Foundation, Inc.
+ * 
+ * This file is part of GNU Radio
+ * 
+ * GNU Radio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ * 
+ * GNU Radio is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Radio; see the file COPYING.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+#include <gr_fir_sysconfig_powerpc.h>
+#include <gr_cpu.h>
+
+#include <gr_fir_ccf.h>
+#include <gr_fir_ccf_generic.h>
+//#include <gr_fir_ccf_powerpc.h>
+#include <gr_fir_fcc.h>
+#include <gr_fir_fcc_generic.h>
+//#include <gr_fir_fcc_powerpc.h>
+#include <gr_fir_fff.h>
+#include <gr_fir_fff_generic.h>
+//#include <gr_fir_fff_powerpc.h>
+#include <gr_fir_fsf.h>
+#include <gr_fir_fsf_generic.h>
+//#include <gr_fir_fsf_powerpc.h>
+#include <gr_fir_ccc.h>
+#include <gr_fir_ccc_generic.h>
+//#include <gr_fir_ccc_powerpc.h>
+#include <gr_fir_scc.h>
+#include <gr_fir_scc_generic.h>
+//#include <gr_fir_scc_powerpc.h>
+
+#include <iostream>
+using std::cerr;
+
+/*
+ * ----------------------------------------------------------------
+ * static functions that serve as constructors...
+ * ----------------------------------------------------------------
+ */
+
+#if 0
+static gr_fir_ccf *
+make_gr_fir_ccf_vmx(const std::vector<float> &taps)
+{
+  return new gr_fir_ccf_vmx(taps);
+}
+
+static gr_fir_fcc *
+make_gr_fir_fcc_vmx(const std::vector<gr_complex> &taps)
+{
+  return new gr_fir_fcc_vmx(taps);
+}
+
+static gr_fir_ccc *
+make_gr_fir_ccc_vmx (const std::vector<gr_complex> &taps)
+{
+  return new gr_fir_ccc_vmx (taps);
+}
+
+static gr_fir_fff *
+make_gr_fir_fff_vmx (const std::vector<float> &taps)
+{
+  return new gr_fir_fff_vmx (taps);
+}
+
+static gr_fir_fsf *
+make_gr_fir_fsf_vmx (const std::vector<float> &taps)
+{
+  return new gr_fir_fsf_vmx (taps);
+}
+
+static gr_fir_scc *
+make_gr_fir_scc_vmx(const std::vector<gr_complex> &taps)
+{
+  return new gr_fir_scc_vmx(taps);
+}
+#endif
+
+/*
+ * ----------------------------------------------------------------
+ * Return instances of the fastest powerpc versions of these classes.
+ *
+ * check CPUID, if has VMX, return VMX version,
+ *             else return generic version.
+ * ----------------------------------------------------------------
+ */
+
+gr_fir_ccf *
+gr_fir_sysconfig_powerpc::create_gr_fir_ccf (const std::vector<float> &taps)
+{
+  static bool first = true;
+
+#if 0
+  if (gr_cpu::has_vmx ()){
+    if (first){
+      cerr << ">>> gr_fir_ccf: using VMX\n";
+      first = false;
+    }
+    return make_gr_fir_ccf_vmx (taps);
+  }
+#endif
+
+  if (first){
+    cerr << ">>> gr_fir_ccf: handing off to parent class\n";
+    first = false;
+  }
+  return gr_fir_sysconfig_generic::create_gr_fir_ccf (taps);
+}
+
+gr_fir_fcc *
+gr_fir_sysconfig_powerpc::create_gr_fir_fcc (const std::vector<gr_complex> 
&taps)
+{
+  static bool first = true;
+
+#if 0
+  if (gr_cpu::has_vmx ()){
+    if (first){
+      cerr << ">>> gr_fir_fcc: using VMX\n";
+      first = false;
+    }
+    return make_gr_fir_fcc_vmx (taps);
+  }
+#endif
+
+  if (first){
+    cerr << ">>> gr_fir_fcc: handing off to parent class\n";
+    first = false;
+  }
+  return gr_fir_sysconfig_generic::create_gr_fir_fcc (taps);
+}
+
+gr_fir_ccc *
+gr_fir_sysconfig_powerpc::create_gr_fir_ccc (const std::vector<gr_complex> 
&taps)
+{
+  static bool first = true;
+
+#if 0
+  if (gr_cpu::has_vmx ()){
+    if (first){
+      cerr << ">>> gr_fir_ccc: using VMX\n";
+      first = false;
+    }
+    return make_gr_fir_ccc_vmx (taps);
+  }
+#endif
+  
+  if (first){
+    cerr << ">>> gr_fir_ccc: handing off to parent class\n";
+    first = false;
+  }
+  return gr_fir_sysconfig_generic::create_gr_fir_ccc (taps);
+}
+
+gr_fir_fff *
+gr_fir_sysconfig_powerpc::create_gr_fir_fff (const std::vector<float> &taps)
+{
+  static bool first = true;
+
+#if 0
+  if (gr_cpu::has_vmx ()){
+    if (first){
+      cerr << ">>> gr_fir_fff: using VMX\n";
+      first = false;
+    }
+    return make_gr_fir_fff_vmx (taps);
+  }
+#endif
+  
+  if (first){
+    cerr << ">>> gr_fir_fff: handing off to parent class\n";
+    first = false;
+  }
+  return gr_fir_sysconfig_generic::create_gr_fir_fff (taps);
+}
+
+gr_fir_fsf *
+gr_fir_sysconfig_powerpc::create_gr_fir_fsf (const std::vector<float> &taps)
+{
+  static bool first = true;
+
+#if 0
+  if (gr_cpu::has_vmx ()){
+    if (first){
+      cerr << ">>> gr_fir_fsf: using VMX\n";
+      first = false;
+    }
+    return make_gr_fir_fsf_vmx (taps);
+  }
+#endif
+  
+  if (first){
+    cerr << ">>> gr_fir_fsf: handing off to parent class\n";
+    first = false;
+  }
+  return gr_fir_sysconfig_generic::create_gr_fir_fsf (taps);
+}
+
+
+gr_fir_scc *
+gr_fir_sysconfig_powerpc::create_gr_fir_scc (const std::vector<gr_complex> 
&taps)
+{
+  static bool first = true;
+
+#if 0
+  if (gr_cpu::has_vmx ()){
+    if (first){
+      cerr << ">>> gr_fir_scc: using VMX\n";
+      first = false;
+    }
+    return make_gr_fir_scc_vmx (taps);
+  }
+#endif
+
+  if (first){
+    cerr << ">>> gr_fir_scc: handing off to parent class\n";
+    first = false;
+  }
+  return gr_fir_sysconfig_generic::create_gr_fir_scc (taps);
+}
+
+/*
+ * ----------------------------------------------------------------
+ *         Return info about available implementations
+ * ----------------------------------------------------------------
+ */
+
+void 
+gr_fir_sysconfig_powerpc::get_gr_fir_ccf_info (std::vector<gr_fir_ccf_info> 
*info)
+{
+  gr_fir_ccf_info      t;
+
+  // invoke parent..
+  gr_fir_sysconfig_generic::get_gr_fir_ccf_info (info);
+
+  // add our stuff...
+#if 0  
+  if (gr_cpu::has_vmx ()){
+    t.name = "VMX";
+    t.create = make_gr_fir_ccf_vmx;
+    (*info).push_back (t);
+  }
+#endif
+}
+
+void 
+gr_fir_sysconfig_powerpc::get_gr_fir_fcc_info (std::vector<gr_fir_fcc_info> 
*info)
+{
+  gr_fir_fcc_info      t;
+
+  // invoke parent..
+  gr_fir_sysconfig_generic::get_gr_fir_fcc_info (info);
+
+  // add our stuff...
+#if 0
+  if (gr_cpu::has_vmx ()){
+    t.name = "VMX";
+    t.create = make_gr_fir_fcc_vmx;
+    (*info).push_back (t);
+  }
+#endif
+}
+
+void 
+gr_fir_sysconfig_powerpc::get_gr_fir_ccc_info (std::vector<gr_fir_ccc_info> 
*info)
+{
+  gr_fir_ccc_info      t;
+  
+  // invoke parent..
+  gr_fir_sysconfig_generic::get_gr_fir_ccc_info (info);
+
+  // add our stuff...
+#if 0
+  if (gr_cpu::has_vmx ()){
+    t.name = "VMX";
+    t.create = make_gr_fir_ccc_vmx;
+    (*info).push_back (t);
+  }
+#endif
+}
+
+void 
+gr_fir_sysconfig_powerpc::get_gr_fir_fff_info (std::vector<gr_fir_fff_info> 
*info)
+{
+  gr_fir_fff_info      t;
+  
+  // invoke parent..
+  gr_fir_sysconfig_generic::get_gr_fir_fff_info (info);
+
+  // add our stuff...
+#if 0
+  if (gr_cpu::has_vmx ()){
+    t.name = "VMX";
+    t.create = make_gr_fir_fff_vmx;
+    (*info).push_back (t);
+  }
+#endif
+}
+
+void 
+gr_fir_sysconfig_powerpc::get_gr_fir_fsf_info (std::vector<gr_fir_fsf_info> 
*info)
+{
+  gr_fir_fsf_info      t;
+  
+  // invoke parent..
+  gr_fir_sysconfig_generic::get_gr_fir_fsf_info (info);
+
+  // add our stuff...
+#if 0
+  if (gr_cpu::has_vmx ()){
+    t.name = "VMX";
+    t.create = make_gr_fir_fsf_vmx;
+    (*info).push_back (t);
+  }
+#endif
+}
+
+void 
+gr_fir_sysconfig_powerpc::get_gr_fir_scc_info (std::vector<gr_fir_scc_info> 
*info)
+{
+  gr_fir_scc_info      t;
+
+  // invoke parent..
+  gr_fir_sysconfig_generic::get_gr_fir_scc_info (info);
+
+  // add our stuff...
+#if 0
+  if (gr_cpu::has_vmx ()){
+    t.name = "VMX";
+    t.create = make_gr_fir_scc_vmx;
+    (*info).push_back (t);
+  }
+#endif
+}

Copied: 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_fir_sysconfig_powerpc.h
 (from rev 8953, 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_fir_sysconfig_x86.h)
===================================================================
--- 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_fir_sysconfig_powerpc.h
                         (rev 0)
+++ 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/gr_fir_sysconfig_powerpc.h
 2008-07-21 00:38:16 UTC (rev 8959)
@@ -0,0 +1,46 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2002,2008 Free Software Foundation, Inc.
+ * 
+ * This file is part of GNU Radio
+ * 
+ * GNU Radio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ * 
+ * GNU Radio is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Radio; see the file COPYING.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ */
+#ifndef INCLUDED_GR_FIR_SYSCONFIG_POWERPC_H
+#define INCLUDED_GR_FIR_SYSCONFIG_POWERPC_H
+
+#include <gr_fir_sysconfig_generic.h>
+
+class gr_fir_sysconfig_powerpc : public gr_fir_sysconfig_generic {
+public:
+  virtual gr_fir_ccf *create_gr_fir_ccf (const std::vector<float> &taps);
+  virtual gr_fir_fcc *create_gr_fir_fcc (const std::vector<gr_complex> &taps);
+  virtual gr_fir_fff *create_gr_fir_fff (const std::vector<float> &taps);
+  virtual gr_fir_fsf *create_gr_fir_fsf (const std::vector<float> &taps);
+  virtual gr_fir_scc *create_gr_fir_scc (const std::vector<gr_complex> &taps);
+  virtual gr_fir_ccc *create_gr_fir_ccc (const std::vector<gr_complex> &taps);
+//virtual gr_fir_sss *create_gr_fir_sss (const std::vector<short> &taps);
+
+  virtual void get_gr_fir_ccf_info (std::vector<gr_fir_ccf_info> *info);
+  virtual void get_gr_fir_fcc_info (std::vector<gr_fir_fcc_info> *info);
+  virtual void get_gr_fir_fff_info (std::vector<gr_fir_fff_info> *info);
+  virtual void get_gr_fir_fsf_info (std::vector<gr_fir_fsf_info> *info);
+  virtual void get_gr_fir_scc_info (std::vector<gr_fir_scc_info> *info);
+  virtual void get_gr_fir_ccc_info (std::vector<gr_fir_ccc_info> *info);
+//virtual void get_gr_fir_sss_info (std::vector<gr_fir_sss_info> *info);
+};
+
+#endif

Copied: 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/sysconfig_powerpc.cc
 (from rev 8953, 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/sysconfig_x86.cc)
===================================================================
--- 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/sysconfig_powerpc.cc
                               (rev 0)
+++ 
gnuradio/branches/developers/eb/vmx/gnuradio-core/src/lib/filter/sysconfig_powerpc.cc
       2008-07-21 00:38:16 UTC (rev 8959)
@@ -0,0 +1,38 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2002,2008 Free Software Foundation, Inc.
+ * 
+ * This file is part of GNU Radio
+ * 
+ * GNU Radio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ * 
+ * GNU Radio is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Radio; see the file COPYING.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+#include <gr_fir_sysconfig_powerpc.h>
+
+gr_fir_sysconfig *
+gr_fir_sysconfig_singleton ()
+{
+  static gr_fir_sysconfig *singleton = 0;
+
+  if (singleton)
+    return singleton;
+
+  singleton = new gr_fir_sysconfig_powerpc ();
+  return singleton;
+}





reply via email to

[Prev in Thread] Current Thread [Next in Thread]