[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r7747 - in gnuradio/branches/developers/eb/gcell/src: apps include lib lib/spu,
eb <=