3 * Copyright 2007,2009 Free Software Foundation, Inc.
5 * This file is part of GNU Radio
7 * GNU Radio is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3, or (at your option)
12 * GNU Radio is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License along
18 * with this program; if not, write to the Free Software Foundation, Inc.,
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 #ifndef INCLUDED_GCELL_SPU_GC_JD_QUEUE_H
23 #define INCLUDED_GCELL_SPU_GC_JD_QUEUE_H
25 #include <gcell/gc_jd_queue_data.h>
28 * Declarations for SPU side of job queue interface
34 GCQ_OK, // Got an item
35 GCQ_EMPTY, // Q is empty
36 GCQ_LOCKED, // Somebody else has the queue locked
37 } gc_dequeue_status_t;
40 * \brief Remove and return item at head of queue.
42 * \param[in] q is EA address of queue structure.
43 * \param[out] item_ea is EA address of item at head of queue.
44 * \param[in] jd_tag is the tag to use to get the LS copy of the item.
45 * \param[out] item is local store copy of item at head of queue.
46 * \returns false if the queue is empty, otherwise returns true
47 * and sets \p item_ea and DMA's job descriptor into \p item
49 * If return is not GCQ_OK, we're holding a lock-line reservation that
53 gc_jd_queue_dequeue(gc_eaddr_t q, gc_eaddr_t *item_ea,
54 int jd_tag, gc_job_desc_t *item);
59 #endif /* INCLUDED_GCELL_SPU_GC_JD_QUEUE_H */