diff options
author | eb | 2009-01-15 10:23:50 +0000 |
---|---|---|
committer | eb | 2009-01-15 10:23:50 +0000 |
commit | 4b5cfa809a01a494c4f5e6b052414ed9b3d066cb (patch) | |
tree | 1524eb995c21cccb3d76f62ec0cc8bf9a319a54f /gcell/include | |
parent | ddd347cc96e38c3758dea53cb0d93391ea566a35 (diff) | |
download | gnuradio-4b5cfa809a01a494c4f5e6b052414ed9b3d066cb.tar.gz gnuradio-4b5cfa809a01a494c4f5e6b052414ed9b3d066cb.tar.bz2 gnuradio-4b5cfa809a01a494c4f5e6b052414ed9b3d066cb.zip |
Merged eb/gcell-wip -r10213:10230 into the trunk. This reduces the
overhead of off-loading jobs, such that it is now feasible to off-load
50us jobs on the QS21 and 10us jobs on the PS3. See wiki:Gcell for
performance graphs. There is still plenty of room for improvement.
I'll be revisiting this in a week or so.
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@10231 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'gcell/include')
-rw-r--r-- | gcell/include/gcell/gc_mbox.h | 7 | ||||
-rw-r--r-- | gcell/include/gcell/spu/gc_jd_queue.h | 12 |
2 files changed, 13 insertions, 6 deletions
diff --git a/gcell/include/gcell/gc_mbox.h b/gcell/include/gcell/gc_mbox.h index 1d577ff8f..9793401f1 100644 --- a/gcell/include/gcell/gc_mbox.h +++ b/gcell/include/gcell/gc_mbox.h @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2007,2008 Free Software Foundation, Inc. + * Copyright 2007,2008,2009 Free Software Foundation, Inc. * * This file is part of GNU Radio * @@ -41,12 +41,13 @@ #define OP_EXIT 0x0 // exit now #define OP_GET_SPU_BUFSIZE 0x1 +#define OP_CHECK_QUEUE 0x2 // SPE to PPE (sent via SPE Write Outbound Interrupt Mailbox) -#define OP_JOBS_DONE 0x2 // arg is 0 or 1, indicating which +#define OP_JOBS_DONE 0x3 // arg is 0 or 1, indicating which // gc_completion_info_t contains the info -#define OP_SPU_BUFSIZE 0x3 // arg is max number of bytes +#define OP_SPU_BUFSIZE 0x4 // arg is max number of bytes #endif /* INCLUDED_GCELL_GC_MBOX_H */ diff --git a/gcell/include/gcell/spu/gc_jd_queue.h b/gcell/include/gcell/spu/gc_jd_queue.h index ce1977c94..c2300478c 100644 --- a/gcell/include/gcell/spu/gc_jd_queue.h +++ b/gcell/include/gcell/spu/gc_jd_queue.h @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2007 Free Software Foundation, Inc. + * Copyright 2007,2009 Free Software Foundation, Inc. * * This file is part of GNU Radio * @@ -30,6 +30,12 @@ __GC_BEGIN_DECLS +typedef enum { + GCQ_OK, // Got an item + GCQ_EMPTY, // Q is empty + GCQ_LOCKED, // Somebody else has the queue locked +} gc_dequeue_status_t; + /*! * \brief Remove and return item at head of queue. * @@ -40,10 +46,10 @@ __GC_BEGIN_DECLS * \returns false if the queue is empty, otherwise returns true * and sets \p item_ea and DMA's job descriptor into \p item * - * If return is false, we're holding a lock-line reservation that + * If return is not GCQ_OK, we're holding a lock-line reservation that * covers the queue. */ -bool +gc_dequeue_status_t gc_jd_queue_dequeue(gc_eaddr_t q, gc_eaddr_t *item_ea, int jd_tag, gc_job_desc_t *item); |