@@ -531,7 +531,9 @@ bool verify_stream_db_outputs(void)
buf_tbl,
LOOP_DEQ_COUNT);
#else
- buf_tbl[0] = odp_queue_deq(queue);
+ odp_event_t ev;
+ ev = odp_queue_deq(queue);
+ buf_tbl[0] = odp_buffer_from_event(ev);
count = (buf_tbl[0] != ODP_BUFFER_INVALID) ? 1 : 0;
#endif
if (!count)
@@ -194,14 +194,14 @@ int odp_queue_enq_multi(odp_queue_t queue, odp_event_t ev[], int num);
/**
* Queue dequeue
*
- * Dequeues next buffer from head of the queue. Cannot be used for
+ * Dequeues next event from head of the queue. Cannot be used for
* ODP_QUEUE_TYPE_SCHED type queues (use odp_schedule() instead).
*
* @param queue Queue handle
*
- * @return Buffer handle, or ODP_BUFFER_INVALID
+ * @return Event handle, or ODP_EVENT_INVALID
*/
-odp_buffer_t odp_queue_deq(odp_queue_t queue);
+odp_event_t odp_queue_deq(odp_queue_t queue);
/**
* Dequeue multiple buffers from a queue
@@ -514,7 +514,7 @@ int odp_queue_deq_multi(odp_queue_t handle, odp_buffer_t buf[], int num)
}
-odp_buffer_t odp_queue_deq(odp_queue_t handle)
+odp_event_t odp_queue_deq(odp_queue_t handle)
{
queue_entry_t *queue;
odp_buffer_hdr_t *buf_hdr;
@@ -523,9 +523,9 @@ odp_buffer_t odp_queue_deq(odp_queue_t handle)
buf_hdr = queue->s.dequeue(queue);
if (buf_hdr)
- return buf_hdr->handle.handle;
+ return odp_buffer_to_event(buf_hdr->handle.handle);
- return ODP_BUFFER_INVALID;
+ return ODP_EVENT_INVALID;
}
@@ -267,6 +267,7 @@ static int schedule(odp_queue_t *out_queue, odp_buffer_t out_buf[],
for (j = 0; j < QUEUES_PER_PRIO; j++, id++) {
odp_queue_t pri_q;
+ odp_event_t ev;
odp_buffer_t desc_buf;
if (id >= QUEUES_PER_PRIO)
@@ -276,7 +277,8 @@ static int schedule(odp_queue_t *out_queue, odp_buffer_t out_buf[],
continue;
pri_q = sched->pri_queue[i][id];
- desc_buf = odp_queue_deq(pri_q);
+ ev = odp_queue_deq(pri_q);
+ desc_buf = odp_buffer_from_event(ev);
if (desc_buf != ODP_BUFFER_INVALID) {
queue_desc_t *desc;
@@ -258,6 +258,7 @@ static int test_alloc_multi(int thr, odp_buffer_pool_t pool)
*/
static int test_poll_queue(int thr, odp_buffer_pool_t msg_pool)
{
+ odp_event_t ev;
odp_buffer_t buf;
test_message_t *t_msg;
odp_queue_t queue;
@@ -288,12 +289,16 @@ static int test_poll_queue(int thr, odp_buffer_pool_t msg_pool)
t1 = odp_time_cycles();
for (i = 0; i < QUEUE_ROUNDS; i++) {
- if (odp_queue_enq(queue, odp_buffer_to_event(buf))) {
+ ev = odp_buffer_to_event(buf);
+
+ if (odp_queue_enq(queue, ev)) {
LOG_ERR(" [%i] Queue enqueue failed.\n", thr);
return -1;
}
- buf = odp_queue_deq(queue);
+ ev = odp_queue_deq(queue);
+
+ buf = odp_buffer_from_event(ev);
if (!odp_buffer_is_valid(buf)) {
LOG_ERR(" [%i] Queue empty.\n", thr);
Changed odp_queue_deq() to use events instead of buffers. Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org> --- example/ipsec/odp_ipsec_stream.c | 4 +++- platform/linux-generic/include/api/odp_queue.h | 6 +++--- platform/linux-generic/odp_queue.c | 6 +++--- platform/linux-generic/odp_schedule.c | 4 +++- test/performance/odp_scheduling.c | 9 +++++++-- 5 files changed, 19 insertions(+), 10 deletions(-)