commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r7747 - in gnuradio/branches/developers/eb/gcell/src:


From: eb
Subject: [Commit-gnuradio] r7747 - in gnuradio/branches/developers/eb/gcell/src: apps include lib lib/spu
Date: Tue, 19 Feb 2008 22:33:33 -0700 (MST)

Author: eb
Date: 2008-02-19 22:33:31 -0700 (Tue, 19 Feb 2008)
New Revision: 7747

Added:
   gnuradio/branches/developers/eb/gcell/src/lib/spu/gc_spu_config.h
   gnuradio/branches/developers/eb/gcell/src/lib/spu/gc_spu_procs.c
   gnuradio/branches/developers/eb/gcell/src/lib/spu/gc_spu_procs.h
   gnuradio/branches/developers/eb/gcell/src/lib/spu/spu_buffers.c
   gnuradio/branches/developers/eb/gcell/src/lib/spu/spu_buffers.h
Modified:
   gnuradio/branches/developers/eb/gcell/src/apps/benchmark_nop.cc
   gnuradio/branches/developers/eb/gcell/src/include/gc_job_desc.h
   gnuradio/branches/developers/eb/gcell/src/include/gc_proc_ids.h
   gnuradio/branches/developers/eb/gcell/src/lib/gc_job_manager_impl.cc
   gnuradio/branches/developers/eb/gcell/src/lib/qa_job_manager.cc
   gnuradio/branches/developers/eb/gcell/src/lib/spu/Makefile.am
   gnuradio/branches/developers/eb/gcell/src/lib/spu/gcell_spu_main.c
Log:
work-in-progess on EA job args

Modified: gnuradio/branches/developers/eb/gcell/src/apps/benchmark_nop.cc
===================================================================
--- gnuradio/branches/developers/eb/gcell/src/apps/benchmark_nop.cc     
2008-02-20 04:42:07 UTC (rev 7746)
+++ gnuradio/branches/developers/eb/gcell/src/apps/benchmark_nop.cc     
2008-02-20 05:33:31 UTC (rev 7747)
@@ -32,7 +32,7 @@
   jd->input.nargs = 1;
   jd->input.arg[0].u32 = usecs;
   jd->output.nargs = 0;
-  jd->ea.nargs = 0;
+  jd->eaa.nargs = 0;
 }
 
 static void

Modified: gnuradio/branches/developers/eb/gcell/src/include/gc_job_desc.h
===================================================================
--- gnuradio/branches/developers/eb/gcell/src/include/gc_job_desc.h     
2008-02-20 04:42:07 UTC (rev 7746)
+++ gnuradio/branches/developers/eb/gcell/src/include/gc_job_desc.h     
2008-02-20 05:33:31 UTC (rev 7747)
@@ -132,7 +132,6 @@
 
 #define GCJD_DMA_GET           0x01            // in to SPE
 #define        GCJD_DMA_PUT            0x02            // out from SPE
-#define        GCJD_DMA_GET_PUT        (GCJD_DMA_GET | GCJD_DMA_PUT)
 
 /*!
  * \brief Description of args passed in EA memory.
@@ -182,7 +181,7 @@
   gc_proc_id_t          proc_id;  // specifies which procedure to run
   gc_job_direct_args_t input;    // direct args to SPE
   gc_job_direct_args_t output;   // direct args from SPE
-  gc_job_ea_args_t     ea;       // args passed via EA memory
+  gc_job_ea_args_t     eaa;      // args passed via EA memory
 
 } _AL128 gc_job_desc_t;
 
@@ -190,10 +189,9 @@
 /*!
  * type of procedure invoked on spu
  */
-typedef void (*gc_spu_proc_t)(gc_proc_id_t proc_id,
-                             const gc_job_direct_args_t *input,
+typedef void (*gc_spu_proc_t)(const gc_job_direct_args_t *input,
                              gc_job_direct_args_t *output,
-                             gc_job_ea_args_t *ea);
+                             gc_job_ea_args_t *eaa);
 
 #if !defined(__SPU__)
 

Modified: gnuradio/branches/developers/eb/gcell/src/include/gc_proc_ids.h
===================================================================
--- gnuradio/branches/developers/eb/gcell/src/include/gc_proc_ids.h     
2008-02-20 04:42:07 UTC (rev 7746)
+++ gnuradio/branches/developers/eb/gcell/src/include/gc_proc_ids.h     
2008-02-20 05:33:31 UTC (rev 7747)
@@ -23,7 +23,10 @@
 
 // list of pre-defined procedure id's
 
-#define GCP_NOP                0       // do nothing
-#define        GCP_UDELAY      1       // delay by arg[0] microseconds
+#define GCP_NOP                 0      // do nothing
+#define        GCP_UDELAY       1      // delay by arg[0] microseconds
+#define        GCP_ADD_SHORTS   2      // add elements of ea.arg[0], return in 
output.arg[0]
 
+#define        GCP_NPROC_IDS   16
+
 #endif /* INCLUDED_GC_PROC_IDS_H */

Modified: gnuradio/branches/developers/eb/gcell/src/lib/gc_job_manager_impl.cc
===================================================================
--- gnuradio/branches/developers/eb/gcell/src/lib/gc_job_manager_impl.cc        
2008-02-20 04:42:07 UTC (rev 7746)
+++ gnuradio/branches/developers/eb/gcell/src/lib/gc_job_manager_impl.cc        
2008-02-20 05:33:31 UTC (rev 7747)
@@ -443,10 +443,9 @@
 
   for (unsigned int i = 0; i < p->nargs; i++){
 
-    switch(p->arg[i].direction & GCJD_DMA_GET_PUT){
+    switch(p->arg[i].direction){
     case GCJD_DMA_GET:
     case GCJD_DMA_PUT:
-    case GCJD_DMA_GET_PUT:
       break;
 
     default:
@@ -492,7 +491,7 @@
   if (!check_direct_args(jd, &jd->output))
     return false;
 
-  if (!check_ea_args(jd, &jd->ea))
+  if (!check_ea_args(jd, &jd->eaa))
     return false;
 
   jd->status = JS_OK;

Modified: gnuradio/branches/developers/eb/gcell/src/lib/qa_job_manager.cc
===================================================================
--- gnuradio/branches/developers/eb/gcell/src/lib/qa_job_manager.cc     
2008-02-20 04:42:07 UTC (rev 7746)
+++ gnuradio/branches/developers/eb/gcell/src/lib/qa_job_manager.cc     
2008-02-20 05:33:31 UTC (rev 7747)
@@ -26,6 +26,7 @@
 #include <stdio.h>
 #include <time.h>
 #include <errno.h>
+#include <gc_proc_ids.h>
 
 #include <malloc.h>
 
@@ -175,7 +176,7 @@
   jd->proc_id = proc_id;
   jd->input.nargs = 0;
   jd->output.nargs = 0;
-  jd->ea.nargs = 0;
+  jd->eaa.nargs = 0;
 }
 
 void
@@ -193,7 +194,7 @@
 
   for (int i = 0; i < NJOBS; i++){
     jds[i] = mgr->alloc_job_desc();
-    init_jd(jds[i], i);
+    init_jd(jds[i], GCP_NOP);
   }
 
   for (int i = 0; i < NJOBS; i++){
@@ -227,7 +228,7 @@
 
   for (int i = 0; i < NJOBS; i++){
     jds[i] = mgr->alloc_job_desc();
-    init_jd(jds[i], i);
+    init_jd(jds[i], GCP_NOP);
   }
 
   for (int i = 0; i < NJOBS; i++){
@@ -249,6 +250,36 @@
 void
 qa_job_manager::t6_body()
 {
+  gc_job_manager *mgr;
+  gc_jm_options opts;
+  opts.nspes = 1;      
+  mgr = gc_make_job_manager(&opts);
+
+  gc_job_desc *jd = mgr->alloc_job_desc();
+
+  
+  // test for success with GCP_NOP procedure
+  init_jd(jd, GCP_NOP);
+  if (!mgr->submit_job(jd)){
+    printf("submit_job(jd) failed, status = %d\n", jd->status);
+  }
+  else {
+    mgr->wait_job(jd);
+    CPPUNIT_ASSERT_EQUAL(JS_OK, jd->status);
+  }
+
+  // test for JS_UNKNOWN_PROC with bogus procedure
+  init_jd(jd, ~0);
+  if (!mgr->submit_job(jd)){
+    printf("submit_job(jd) failed, status = %d\n", jd->status);
+  }
+  else {
+    mgr->wait_job(jd);
+    CPPUNIT_ASSERT_EQUAL(JS_UNKNOWN_PROC, jd->status);
+  }
+
+  mgr->free_job_desc(jd);
+  delete mgr;
 }
 
 void

Modified: gnuradio/branches/developers/eb/gcell/src/lib/spu/Makefile.am
===================================================================
--- gnuradio/branches/developers/eb/gcell/src/lib/spu/Makefile.am       
2008-02-20 04:42:07 UTC (rev 7746)
+++ gnuradio/branches/developers/eb/gcell/src/lib/spu/Makefile.am       
2008-02-20 05:33:31 UTC (rev 7747)
@@ -46,6 +46,8 @@
 libgcell_spu_a_SOURCES = \
        gc_delay.c \
        gc_spu_jd_queue.c \
+       gc_spu_procs.c \
+       spu_buffers.c \
        sys_tags.c
 
 

Added: gnuradio/branches/developers/eb/gcell/src/lib/spu/gc_spu_config.h
===================================================================
--- gnuradio/branches/developers/eb/gcell/src/lib/spu/gc_spu_config.h           
                (rev 0)
+++ gnuradio/branches/developers/eb/gcell/src/lib/spu/gc_spu_config.h   
2008-02-20 05:33:31 UTC (rev 7747)
@@ -0,0 +1,33 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 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 this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+#ifndef INCLUDED_GC_SPU_CONFIG_H
+#define INCLUDED_GC_SPU_CONFIG_H
+
+#include <gc_job_desc.h>
+
+#define CACHE_LINE_SIZE             128              // in bytes
+#define        GC_SPU_BUFSIZE_BASE  (32 * 1024)      //  must be multiple of 
CACHE_LINE_SIZE
+#define        GC_SPU_BUFSIZE (GC_SPU_BUFSIZE_BASE + MAX_ARGS_EA * 
CACHE_LINE_SIZE)
+
+#define NGETBUFS       1       // single buffer job arg gets
+#define        NPUTBUFS        2       // double buffer job arg puts
+
+#endif /* INCLUDED_GC_SPU_CONFIG_H */


Property changes on: 
gnuradio/branches/developers/eb/gcell/src/lib/spu/gc_spu_config.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: gnuradio/branches/developers/eb/gcell/src/lib/spu/gc_spu_procs.c
===================================================================
--- gnuradio/branches/developers/eb/gcell/src/lib/spu/gc_spu_procs.c            
                (rev 0)
+++ gnuradio/branches/developers/eb/gcell/src/lib/spu/gc_spu_procs.c    
2008-02-20 05:33:31 UTC (rev 7747)
@@ -0,0 +1,54 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 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 this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <gc_spu_procs.h>
+#include <gc_delay.h>
+
+// FIXME move these out of here; only for QA usage
+
+void 
+gcp_nop(const gc_job_direct_args_t *input,
+       gc_job_direct_args_t *output, gc_job_ea_args_t *ea)
+{
+}
+
+void
+gcp_udelay(const gc_job_direct_args_t *input,
+          gc_job_direct_args_t *output, gc_job_ea_args_t *ea)
+{
+  gc_udelay(input->arg[0].u32);
+}
+
+void
+gcp_add_shorts(const gc_job_direct_args_t *input,
+              gc_job_direct_args_t *output, gc_job_ea_args_t *ea)
+{
+  // FIXME
+}
+
+gc_spu_proc_t gc_proc_table[GCP_NPROC_IDS] = {
+  [GCP_NOP] = gcp_nop,
+  [GCP_UDELAY] = gcp_udelay,
+  [GCP_ADD_SHORTS] = gcp_add_shorts,
+};
+
+
+


Property changes on: 
gnuradio/branches/developers/eb/gcell/src/lib/spu/gc_spu_procs.c
___________________________________________________________________
Name: svn:eol-style
   + native

Added: gnuradio/branches/developers/eb/gcell/src/lib/spu/gc_spu_procs.h
===================================================================
--- gnuradio/branches/developers/eb/gcell/src/lib/spu/gc_spu_procs.h            
                (rev 0)
+++ gnuradio/branches/developers/eb/gcell/src/lib/spu/gc_spu_procs.h    
2008-02-20 05:33:31 UTC (rev 7747)
@@ -0,0 +1,30 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 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 this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+#ifndef INCLUDED_GC_SPU_PROCS_H
+#define INCLUDED_GC_SPU_PROCS_H
+
+#include <gc_job_desc.h>
+#include <gc_proc_ids.h>
+
+extern gc_spu_proc_t gc_proc_table[GCP_NPROC_IDS];
+
+
+#endif /* INCLUDED_GC_SPU_PROCS_H */


Property changes on: 
gnuradio/branches/developers/eb/gcell/src/lib/spu/gc_spu_procs.h
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: gnuradio/branches/developers/eb/gcell/src/lib/spu/gcell_spu_main.c
===================================================================
--- gnuradio/branches/developers/eb/gcell/src/lib/spu/gcell_spu_main.c  
2008-02-20 04:42:07 UTC (rev 7746)
+++ gnuradio/branches/developers/eb/gcell/src/lib/spu/gcell_spu_main.c  
2008-02-20 05:33:31 UTC (rev 7747)
@@ -23,6 +23,7 @@
 #include <spu_intrinsics.h>
 #include <spu_mfcio.h>
 #include <sync_utils.h>
+#include "gc_spu_config.h"
 #include "gc_spu_args.h"
 #include "gc_job_desc.h"
 #include "gc_mbox.h"
@@ -30,12 +31,31 @@
 #include "gc_jd_queue.h"
 #include "gc_proc_ids.h"
 #include "gc_delay.h"
+#include "gc_spu_procs.h"
+#include "spu_buffers.h"
+#include <string.h>
+#include <assert.h>
 
 
+#define MIN(a,b) ((a) < (b) ? (a) : (b))
+#define MAX(a,b) ((a) > (b) ? (a) : (b))
+
+//! round x down to p2 boudary (p2 must be a power-of-2)
+#define ROUND_DN(x, p2) ((x) & ~((p2)-1))
+
+//! round x up to p2 boundary (p2 must be a power-of-2)
+#define ROUND_UP(x, p2) (((x)+((p2)-1)) & ~((p2)-1))
+
+
 #define USE_LLR_LOST_EVENT     0       // define to 0 or 1
 
 static gc_spu_args_t   spu_args;
 
+static int get_tag;            // 1 tag for job arg gets
+static int put_tags;           // 2 tags for job arg puts
+
+// ------------------------------------------------------------------------
+
 // our working copy of the completion info
 static gc_comp_info_t  comp_info = {  
   .in_use = 1,
@@ -159,8 +179,7 @@
 // ------------------------------------------------------------------------
 
 void
-process_job(gc_eaddr_t jd_ea  __attribute__ ((unused)),
-           gc_job_desc_t *jd)
+process_job(gc_eaddr_t jd_ea, gc_job_desc_t *jd)
 {
   // FIXME do something useful ;)
 
@@ -176,24 +195,85 @@
 
   jd->status = JS_OK;  // assume success
 
-  switch(jd->proc_id){ // FIXME lookup procedure
+  if (jd->proc_id >= GCP_NPROC_IDS || gc_proc_table[jd->proc_id] == 0){
+    jd->status = JS_UNKNOWN_PROC;
+  }
 
-  case GCP_NOP:
-    break;
+  else {
+  
+    if (jd->eaa.nargs == 0)
+      (*gc_proc_table[jd->proc_id])(&jd->input, &jd->output, &jd->eaa);
 
-  case GCP_UDELAY:
-    gc_udelay(jd->input.arg[0].u32);
-    break;
+    else {     // handle EA args that must be DMA'd in/out
 
-  default:
-    jd->status = JS_UNKNOWN_PROC;
-    break;
+      gc_job_ea_args_t *eaa = &jd->eaa;
+
+      int NELMS =
+       MAX(MAX_ARGS_EA,
+           (GC_SPU_BUFSIZE + MFC_MAX_DMA_SIZE - 1) / MFC_MAX_DMA_SIZE);
+
+      mfc_list_element_t  dma_list[NELMS];
+      memset(dma_list, 0, sizeof(dma_list));
+      int li = 0;
+
+      unsigned int   gbi = 0;                  // get buffer index
+      unsigned char *gb_base = gc_getbuf[gbi];
+      
+      // unsigned int pbi = 0;                 // put buffer index
+      // unsigned char *pb_base = gc_putbuf[gbi];
+      
+      // assign LS addresses for buffers
+      
+      gc_eaddr_t       ea_base = 0;
+      unsigned char    *ls_base;
+      int              offset;
+      unsigned int     dma_len;
+
+      for (unsigned int i = 0; i < eaa->nargs; i++){
+       if (eaa->arg[i].direction == GCJD_DMA_GET){
+         ea_base = ROUND_DN(eaa->arg[i].ea_addr, (gc_eaddr_t) CACHE_LINE_SIZE);
+         offset = eaa->arg[i].ea_addr & (CACHE_LINE_SIZE-1);
+         dma_len = ROUND_UP(eaa->arg[i].get_size + offset, CACHE_LINE_SIZE);
+         ls_base = gb_base;
+         gb_base += dma_len;
+         eaa->arg[i].ls_addr = ls_base + offset;
+
+         assert((mfc_ea2l(eaa->arg[i].ea_addr) & 0x7f) == 
((intptr_t)eaa->arg[i].ls_addr & 0x7f));
+         assert((ea_base & 0x7f) == 0);
+         assert(((intptr_t)ls_base & 0x7f) == 0);
+         assert((dma_len & 0x7f) == 0);
+         assert((eaa->arg[i].get_size <= dma_len)
+                && dma_len <= (eaa->arg[i].get_size + CACHE_LINE_SIZE - 1));
+
+         // add to dma list
+         // FIXME not correct if top 32-bits of all EA's are NOT the same
+         while (dma_len != 0){
+           int n = MIN(dma_len, MFC_MAX_DMA_SIZE);
+           dma_list[li].size = n;
+           dma_list[li].eal = mfc_ea2l(ea_base);
+           dma_len -= n;
+           ea_base += n;
+           li++;
+         }
+       }
+      }
+
+      // fire off the dma to fetch the args and wait for it to complete
+      mfc_getl(gb_base, ea_base, dma_list, li*sizeof(dma_list[0]), get_tag, 0, 
0);
+      mfc_write_tag_mask(1 << get_tag);                // the tag we're 
interested in
+      mfc_read_tag_status_all();               // wait for DMA to complete
+
+      // do the work
+      (*gc_proc_table[jd->proc_id])(&jd->input, &jd->output, eaa);
+
+      // FIXME copy EA args out
+    }
   }
 
-  // FIXME copy indirect args in
-  // FIXME invoke method
-  // FIXME copy indirect args out
-  // FIXME copy jd back out
+  // Copy job descriptor back out to EA.
+  // (The dma will be waited on in flush_completion_info)
+  int tag = ci_tags + ci_idx;                  // use the current completion 
tag
+  mfc_put(jd, jd_ea, sizeof(*jd), tag, 0, 0);
 
   
   // Tell PPE we're done with the job.
@@ -289,7 +369,9 @@
      unsigned long long envp __attribute__((unused)))
 {
   sys_tags_init();
-  ci_tags = mfc_multi_tag_reserve(2);
+  ci_tags  = mfc_multi_tag_reserve(2);
+  put_tags = mfc_multi_tag_reserve(2);
+  get_tag  = mfc_tag_reserve();
 
   // dma the args in
   mfc_get(&spu_args, argp, sizeof(spu_args), sys_tag, 0, 0);

Added: gnuradio/branches/developers/eb/gcell/src/lib/spu/spu_buffers.c
===================================================================
--- gnuradio/branches/developers/eb/gcell/src/lib/spu/spu_buffers.c             
                (rev 0)
+++ gnuradio/branches/developers/eb/gcell/src/lib/spu/spu_buffers.c     
2008-02-20 05:33:31 UTC (rev 7747)
@@ -0,0 +1,47 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 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 this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <spu_buffers.h>
+#include <compiler.h>
+
+static unsigned char _getbuf[GC_SPU_BUFSIZE][NGETBUFS] _AL128;
+static unsigned char _putbuf[GC_SPU_BUFSIZE][NPUTBUFS] _AL128;
+
+unsigned char *gc_getbuf[NGETBUFS] = {
+  _getbuf[0]
+};
+
+unsigned char *gc_putbuf[NPUTBUFS] = {
+  _putbuf[0],
+  _putbuf[1]
+};
+
+int 
+gc_alloc_getbuf()
+{
+  return 0;
+}
+
+int
+gc_alloc_putbuf()
+{
+  return 0;
+}


Property changes on: 
gnuradio/branches/developers/eb/gcell/src/lib/spu/spu_buffers.c
___________________________________________________________________
Name: svn:eol-style
   + native

Added: gnuradio/branches/developers/eb/gcell/src/lib/spu/spu_buffers.h
===================================================================
--- gnuradio/branches/developers/eb/gcell/src/lib/spu/spu_buffers.h             
                (rev 0)
+++ gnuradio/branches/developers/eb/gcell/src/lib/spu/spu_buffers.h     
2008-02-20 05:33:31 UTC (rev 7747)
@@ -0,0 +1,35 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 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 this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+#ifndef INCLUDED_SPU_BUFFERS_H
+#define INCLUDED_SPU_BUFFERS_H
+
+#include "gc_spu_config.h"
+
+extern unsigned char *gc_getbuf[NGETBUFS];
+extern unsigned char *gc_putbuf[NPUTBUFS];
+
+//! return the index of an available getbuf
+int gc_alloc_getbuf(void);
+
+//! return the index of an available putbuf
+int gc_alloc_putbuf(void);
+
+#endif /* INCLUDED_SPU_BUFFERS_H */


Property changes on: 
gnuradio/branches/developers/eb/gcell/src/lib/spu/spu_buffers.h
___________________________________________________________________
Name: svn:eol-style
   + native





reply via email to

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