Thanks. I'll fix that tomorrow.

-Petri


> -----Original Message-----
> From: ext Maxim Uvarov [mailto:maxim.uva...@linaro.org]
> Sent: Tuesday, January 20, 2015 4:42 PM
> To: lng-odp@lists.linaro.org; Petri Savolainen
> Subject: Re: [lng-odp] [PATCH v2 06/16] api: buffer: Removed
> odp_buffer_type
> 
> Petri, you just did mistake in test.
> 
> 
> test/validation/buffer/odp_buffer_pool_test.c
> pool_alloc_type()
> 
> 
> case ODP_BUFFER_TYPE_RAW:
>          buf = alloc_buf;
> case ODP_BUFFER_TYPE_PKT:
>         packet = alloc_packet;
> 
> ....
> 
> Then you calll free for both buf and packet. But in one case you did not
> allocate packet,
> in other case you did not allocate buffer.
> 
> Maxim.
> 
> On 01/20/2015 05:29 PM, Maxim Uvarov wrote:
> > Core was generated by `./odp_buffer'.
> > Program terminated with signal 11, Segmentation fault.
> > #0  0x0000000000406614 in odp_buf_to_pool (buf=0x134a1300) at
> > ./include/odp_buffer_pool_internal.h:358
> > 358        return odp_pool_to_entry(buf->pool_hdl);
> > (gdb) bt
> > #0  0x0000000000406614 in odp_buf_to_pool (buf=0x134a1300) at
> > ./include/odp_buffer_pool_internal.h:358
> > #1  0x0000000000407964 in odp_buffer_free (buf=2187936352) at
> > odp_buffer_pool.c:518
> > #2  0x0000000000409666 in odp_packet_free (pkt=2187936352) at
> > odp_packet.c:52
> > #3  0x000000000040256e in pool_alloc_type (type=1) at
> > buffer/odp_buffer_pool_test.c:171
> > #4  0x00000000004025c3 in pool_alloc_buffer_raw () at
> > buffer/odp_buffer_pool_test.c:179
> > #5  0x00007f81826a1f06 in run_single_test (pTest=0x191e0d0,
> > pRunSummary=0x7f81828ab4c0) at TestRun.c:991
> > #6  0x00007f81826a1b3c in run_single_suite (pSuite=0x191c280,
> > pRunSummary=0x7f81828ab4c0) at TestRun.c:876
> > #7  0x00007f818269f98b in CU_run_all_tests () at TestRun.c:367
> > #8  0x00007f81826a3e7d in basic_run_all_tests (pRegistry=0x0) at
> > Basic.c:195
> > #9  0x00007f81826a3c1a in CU_basic_run_tests () at Basic.c:87
> > #10 0x000000000040592a in main () at common/odp_cunit_common.c:72
> > (gdb) p *buf
> > Cannot access memory at address 0x134a1300
> > (gdb) l
> > 353        return (pool_entry_t
> > *)get_pool_entry(pool_handle_to_index(pool));
> > 354    }
> > 355
> > 356    static inline pool_entry_t *odp_buf_to_pool(odp_buffer_hdr_t
> *buf)
> > 357    {
> > 358        return odp_pool_to_entry(buf->pool_hdl);
> > 359    }
> > 360
> > 361    static inline uint32_t
> > odp_buffer_pool_segment_size(odp_buffer_pool_t pool)
> > 362    {
> > (gdb)
> >
> > On 01/20/2015 02:18 PM, Petri Savolainen wrote:
> >> Removed odp_buffer_type() from API and made it internal.
> >>
> >> Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org>
> >> ---
> >>   platform/linux-generic/include/api/odp_buffer.h    | 16 ----
> >>   .../linux-generic/include/api/odp_buffer_pool.h    |  4 +
> >>   .../linux-generic/include/odp_buffer_internal.h    | 16 ++++
> >>   platform/linux-generic/odp_buffer.c                |  2 +-
> >>   platform/linux-generic/odp_buffer_pool.c           |  4 +-
> >>   platform/linux-generic/odp_event.c                 |  4 +-
> >>   platform/linux-generic/odp_timer.c                 |  4 +-
> >>   test/validation/buffer/odp_buffer_pool_test.c      | 88
> >> +++++++++++++---------
> >>   test/validation/buffer/odp_buffer_test.c           |  4 +-
> >>   test/validation/buffer/odp_packet_test.c           | 15 ++--
> >>   test/validation/odp_pktio.c                        | 16 ++--
> >>   test/validation/odp_timer.c                        |  2 +-
> >>   12 files changed, 97 insertions(+), 78 deletions(-)
> >>
> >> diff --git a/platform/linux-generic/include/api/odp_buffer.h
> >> b/platform/linux-generic/include/api/odp_buffer.h
> >> index 5f825a2..69d5779 100644
> >> --- a/platform/linux-generic/include/api/odp_buffer.h
> >> +++ b/platform/linux-generic/include/api/odp_buffer.h
> >> @@ -69,22 +69,6 @@ void *odp_buffer_addr(odp_buffer_t buf);
> >>   uint32_t odp_buffer_size(odp_buffer_t buf);
> >>     /**
> >> - * Buffer type
> >> - *
> >> - * @param buf      Buffer handle
> >> - *
> >> - * @return Buffer type
> >> - */
> >> -int odp_buffer_type(odp_buffer_t buf);
> >> -
> >> -#define ODP_BUFFER_TYPE_INVALID (-1) /**< Buffer type invalid */
> >> -#define ODP_BUFFER_TYPE_ANY       0  /**< Buffer that can hold any
> >> other
> >> -                      buffer type */
> >> -#define ODP_BUFFER_TYPE_RAW       1  /**< Raw buffer, no additional
> >> metadata */
> >> -#define ODP_BUFFER_TYPE_PACKET    2  /**< Packet buffer */
> >> -#define ODP_BUFFER_TYPE_TIMEOUT   3  /**< Timeout buffer */
> >> -
> >> -/**
> >>    * Tests if buffer is valid
> >>    *
> >>    * @param buf      Buffer handle
> >> diff --git a/platform/linux-generic/include/api/odp_buffer_pool.h
> >> b/platform/linux-generic/include/api/odp_buffer_pool.h
> >> index 8380ac1..68fa69e 100644
> >> --- a/platform/linux-generic/include/api/odp_buffer_pool.h
> >> +++ b/platform/linux-generic/include/api/odp_buffer_pool.h
> >> @@ -51,6 +51,10 @@ typedef struct odp_buffer_pool_param_t {
> >>       int      buf_type;  /**< Buffer type */
> >>   } odp_buffer_pool_param_t;
> >>   +#define ODP_BUFFER_TYPE_RAW       1  /**< Raw buffer, no
> >> additional metadata */
> >> +#define ODP_BUFFER_TYPE_PACKET    2  /**< Packet buffer */
> >> +#define ODP_BUFFER_TYPE_TIMEOUT   3  /**< Timeout buffer */
> >> +
> >>   /**
> >>    * Create a buffer pool
> >>    * This routine is used to create a buffer pool. It take three
> >> diff --git a/platform/linux-generic/include/odp_buffer_internal.h
> >> b/platform/linux-generic/include/odp_buffer_internal.h
> >> index 39b0b05..0d09531 100644
> >> --- a/platform/linux-generic/include/odp_buffer_internal.h
> >> +++ b/platform/linux-generic/include/odp_buffer_internal.h
> >> @@ -153,6 +153,22 @@ typedef struct {
> >>   /* Forward declarations */
> >>   odp_buffer_t buffer_alloc(odp_buffer_pool_t pool, size_t size);
> >>   +
> >> +/*
> >> + * Buffer type
> >> + *
> >> + * @param buf      Buffer handle
> >> + *
> >> + * @return Buffer type
> >> + */
> >> +int _odp_buffer_type(odp_buffer_t buf);
> >> +
> >> +#define _ODP_BUFFER_TYPE_INVALID (-1) /**< Buffer type invalid */
> >> +#define _ODP_BUFFER_TYPE_ANY       0  /**< Buffer that can hold any
> >> other
> >> +                      buffer type */
> >> +
> >> +
> >> +
> >>   #ifdef __cplusplus
> >>   }
> >>   #endif
> >> diff --git a/platform/linux-generic/odp_buffer.c
> >> b/platform/linux-generic/odp_buffer.c
> >> index 939332a..e657e00 100644
> >> --- a/platform/linux-generic/odp_buffer.c
> >> +++ b/platform/linux-generic/odp_buffer.c
> >> @@ -40,7 +40,7 @@ uint32_t odp_buffer_size(odp_buffer_t buf)
> >>   }
> >>     -int odp_buffer_type(odp_buffer_t buf)
> >> +int _odp_buffer_type(odp_buffer_t buf)
> >>   {
> >>       odp_buffer_hdr_t *hdr = odp_buf_to_hdr(buf);
> >>   diff --git a/platform/linux-generic/odp_buffer_pool.c
> >> b/platform/linux-generic/odp_buffer_pool.c
> >> index eedb380..202d1c7 100644
> >> --- a/platform/linux-generic/odp_buffer_pool.c
> >> +++ b/platform/linux-generic/odp_buffer_pool.c
> >> @@ -160,7 +160,7 @@ odp_buffer_pool_t odp_buffer_pool_create(const
> >> char *name,
> >>           break;
> >>         case ODP_BUFFER_TYPE_PACKET:
> >> -    case ODP_BUFFER_TYPE_ANY:
> >> +    case _ODP_BUFFER_TYPE_ANY:
> >>           headroom = ODP_CONFIG_PACKET_HEADROOM;
> >>           tailroom = ODP_CONFIG_PACKET_TAILROOM;
> >>           unsegmented = params->buf_size >
> >> ODP_CONFIG_PACKET_BUF_LEN_MAX;
> >> @@ -561,7 +561,7 @@ void odp_buffer_pool_print(odp_buffer_pool_t
> >> pool_hdl)
> >>           pool->s.params.buf_type == ODP_BUFFER_TYPE_RAW ? "raw" :
> >>              (pool->s.params.buf_type == ODP_BUFFER_TYPE_PACKET ?
> >> "packet" :
> >>              (pool->s.params.buf_type == ODP_BUFFER_TYPE_TIMEOUT ?
> >> "timeout" :
> >> -           (pool->s.params.buf_type == ODP_BUFFER_TYPE_ANY ? "any" :
> >> +           (pool->s.params.buf_type == _ODP_BUFFER_TYPE_ANY ? "any" :
> >>           "unknown"))));
> >>       ODP_DBG(" pool storage    %sODP managed\n",
> >>           pool->s.flags.user_supplied_shm ?
> >> diff --git a/platform/linux-generic/odp_event.c
> >> b/platform/linux-generic/odp_event.c
> >> index c646f42..285a19b 100644
> >> --- a/platform/linux-generic/odp_event.c
> >> +++ b/platform/linux-generic/odp_event.c
> >> @@ -6,6 +6,8 @@
> >>     #include <odp_event.h>
> >>   #include <odp_buffer.h>
> >> +#include <odp_buffer_pool.h>
> >> +#include <odp_buffer_internal.h>
> >>     int odp_event_type(odp_event_t event)
> >>   {
> >> @@ -13,7 +15,7 @@ int odp_event_type(odp_event_t event)
> >>         buf = odp_buffer_from_event(event);
> >>   -    switch (odp_buffer_type(buf)) {
> >> +    switch (_odp_buffer_type(buf)) {
> >>       case ODP_BUFFER_TYPE_RAW:
> >>           return ODP_EVENT_BUFFER;
> >>       case ODP_BUFFER_TYPE_PACKET:
> >> diff --git a/platform/linux-generic/odp_timer.c
> >> b/platform/linux-generic/odp_timer.c
> >> index 322f97f..5d462ba 100644
> >> --- a/platform/linux-generic/odp_timer.c
> >> +++ b/platform/linux-generic/odp_timer.c
> >> @@ -557,7 +557,7 @@ static unsigned timer_expire(odp_timer_pool *tp,
> >> uint32_t idx, uint64_t tick)
> >>   #endif
> >>       if (odp_likely(tmo_buf != ODP_BUFFER_INVALID)) {
> >>           /* Fill in metadata fields in system timeout buffer */
> >> -        if (odp_buffer_type(tmo_buf) == ODP_BUFFER_TYPE_TIMEOUT) {
> >> +        if (_odp_buffer_type(tmo_buf) == ODP_BUFFER_TYPE_TIMEOUT) {
> >>               /* Convert from buffer to timeout hdr */
> >>               odp_timeout_hdr_t *tmo_hdr =
> >>                   timeout_hdr_from_buf(tmo_buf);
> >> @@ -798,7 +798,7 @@ int odp_timer_cancel(odp_timer_t hdl,
> >> odp_buffer_t *tmo_buf)
> >>   odp_timeout_t odp_timeout_from_buf(odp_buffer_t buf)
> >>   {
> >>       /* This check not mandated by the API specification */
> >> -    if (odp_buffer_type(buf) != ODP_BUFFER_TYPE_TIMEOUT)
> >> +    if (_odp_buffer_type(buf) != ODP_BUFFER_TYPE_TIMEOUT)
> >>           ODP_ABORT("Buffer not a timeout");
> >>       return (odp_timeout_t)timeout_hdr_from_buf(buf);
> >>   }
> >> diff --git a/test/validation/buffer/odp_buffer_pool_test.c
> >> b/test/validation/buffer/odp_buffer_pool_test.c
> >> index 6f5eaf7..850f856 100644
> >> --- a/test/validation/buffer/odp_buffer_pool_test.c
> >> +++ b/test/validation/buffer/odp_buffer_pool_test.c
> >> @@ -53,11 +53,6 @@ static void pool_create_destroy_timeout(void)
> >>       pool_create_destroy_type(ODP_BUFFER_TYPE_TIMEOUT);
> >>   }
> >>   -static void pool_create_destroy_any(void)
> >> -{
> >> -    pool_create_destroy_type(ODP_BUFFER_TYPE_ANY);
> >> -}
> >> -
> >>   static void pool_create_destroy_raw_shm(void)
> >>   {
> >>       odp_buffer_pool_t pool;
> >> @@ -113,64 +108,85 @@ static void pool_lookup_info_print(void)
> >>       CU_ASSERT(odp_buffer_pool_destroy(pool) == 0);
> >>   }
> >>   -static void pool_alloc_buffer_type(int type)
> >> +static void pool_alloc_type(int type)
> >>   {
> >>       odp_buffer_pool_t pool;
> >> -    const int buf_num = 3;
> >> -    const size_t buf_size = 1500;
> >> -    odp_buffer_t buffer[buf_num];
> >> -    int buf_index;
> >> +    const int num = 3;
> >> +    const size_t size = 1500;
> >> +    odp_buffer_t buffer[num];
> >> +    odp_packet_t packet[num];
> >> +    odp_event_t ev;
> >> +    int index;
> >>       char wrong_type = 0, wrong_size = 0;
> >>   -    pool = pool_create(buf_num, buf_size, type);
> >> +    pool = pool_create(num, size, type);
> >>       odp_buffer_pool_print(pool);
> >>   -    /* Try to allocate buf_num buffers from the pool */
> >> -    for (buf_index = 0; buf_index < buf_num; buf_index++) {
> >> -        buffer[buf_index] = odp_buffer_alloc(pool);
> >> -        if (buffer[buf_index] == ODP_BUFFER_INVALID)
> >> +    /* Try to allocate num items from the pool */
> >> +    for (index = 0; index < num; index++) {
> >> +        switch (type) {
> >> +        case ODP_BUFFER_TYPE_RAW:
> >> +            buffer[index] = odp_buffer_alloc(pool);
> >> +
> >> +            if (buffer[index] == ODP_BUFFER_INVALID)
> >> +                break;
> >> +
> >> +            ev = odp_buffer_to_event(buffer[index]);
> >> +            if (odp_event_type(ev) != ODP_EVENT_BUFFER)
> >> +                wrong_type = 1;
> >> +            if (odp_buffer_size(buffer[index]) < size)
> >> +                wrong_size = 1;
> >> +            if (wrong_type || wrong_size)
> >> +                odp_buffer_print(buffer[index]);
> >> +            break;
> >> +
> >> +        case ODP_BUFFER_TYPE_PACKET:
> >> +            packet[index] = odp_packet_alloc(pool, size);
> >> +
> >> +            if (packet[index] == ODP_PACKET_INVALID)
> >> +                break;
> >> +
> >> +            ev = odp_packet_to_event(packet[index]);
> >> +            if (odp_event_type(ev) != ODP_EVENT_PACKET)
> >> +                wrong_type = 1;
> >>               break;
> >> -        if (odp_buffer_type(buffer[buf_index]) != type)
> >> -            wrong_type = 1;
> >> -        if (odp_buffer_size(buffer[buf_index]) < buf_size)
> >> -            wrong_size = 1;
> >> -        if (wrong_type || wrong_size)
> >> -            odp_buffer_print(buffer[buf_index]);
> >> +
> >> +        default:
> >> +            break;
> >> +        }
> >> +
> >>       }
> >>   -    /* Check that the pool had at least buf_num buffers */
> >> -    CU_ASSERT(buf_index == buf_num);
> >> -    /* buf_index points out of buffer[] or it point to an invalid
> >> buffer */
> >> -    buf_index--;
> >> +    /* Check that the pool had at least num items */
> >> +    CU_ASSERT(index == num);
> >> +    /* index points out of buffer[] or it point to an invalid buffer
> */
> >> +    index--;
> >>         /* Check that the pool had correct buffers */
> >>       CU_ASSERT(wrong_type == 0);
> >>       CU_ASSERT(wrong_size == 0);
> >>   -    for (; buf_index >= 0; buf_index--)
> >> -        odp_buffer_free(buffer[buf_index]);
> >> +    for (; index >= 0; index--) {
> >> +        odp_buffer_free(buffer[index]);
> >> +        odp_packet_free(packet[index]);
> >> +    }
> >>         CU_ASSERT(odp_buffer_pool_destroy(pool) == 0);
> >>   }
> >>     static void pool_alloc_buffer_raw(void)
> >>   {
> >> -    pool_alloc_buffer_type(ODP_BUFFER_TYPE_RAW);
> >> +    pool_alloc_type(ODP_BUFFER_TYPE_RAW);
> >>   }
> >>     static void pool_alloc_buffer_packet(void)
> >>   {
> >> -    pool_alloc_buffer_type(ODP_BUFFER_TYPE_PACKET);
> >> +    pool_alloc_type(ODP_BUFFER_TYPE_PACKET);
> >>   }
> >>     static void pool_alloc_buffer_timeout(void)
> >>   {
> >> -    pool_alloc_buffer_type(ODP_BUFFER_TYPE_TIMEOUT);
> >> -}
> >> -
> >> -static void pool_alloc_buffer_any(void)
> >> -{
> >> -    pool_alloc_buffer_type(ODP_BUFFER_TYPE_ANY);
> >> +    pool_alloc_type(ODP_BUFFER_TYPE_TIMEOUT);
> >>   }
> >>     static void pool_free_buffer(void)
> >> @@ -200,13 +216,11 @@ CU_TestInfo buffer_pool_tests[] = {
> >>       _CU_TEST_INFO(pool_create_destroy_raw),
> >>       _CU_TEST_INFO(pool_create_destroy_packet),
> >>       _CU_TEST_INFO(pool_create_destroy_timeout),
> >> -    _CU_TEST_INFO(pool_create_destroy_any),
> >>       _CU_TEST_INFO(pool_create_destroy_raw_shm),
> >>       _CU_TEST_INFO(pool_lookup_info_print),
> >>       _CU_TEST_INFO(pool_alloc_buffer_raw),
> >>       _CU_TEST_INFO(pool_alloc_buffer_packet),
> >>       _CU_TEST_INFO(pool_alloc_buffer_timeout),
> >> -    _CU_TEST_INFO(pool_alloc_buffer_any),
> >>       _CU_TEST_INFO(pool_free_buffer),
> >>       CU_TEST_INFO_NULL,
> >>   };
> >> diff --git a/test/validation/buffer/odp_buffer_test.c
> >> b/test/validation/buffer/odp_buffer_test.c
> >> index 219a9ef..9fd5bb8 100644
> >> --- a/test/validation/buffer/odp_buffer_test.c
> >> +++ b/test/validation/buffer/odp_buffer_test.c
> >> @@ -38,9 +38,11 @@ int buffer_testsuite_finalize(void)
> >>     static void buffer_management_basic(void)
> >>   {
> >> +    odp_event_t ev = odp_buffer_to_event(raw_buffer);
> >> +
> >>       CU_ASSERT(odp_buffer_is_valid(raw_buffer) == 1);
> >>       CU_ASSERT(odp_buffer_pool(raw_buffer) !=
> ODP_BUFFER_POOL_INVALID);
> >> -    CU_ASSERT(odp_buffer_type(raw_buffer) == ODP_BUFFER_TYPE_RAW);
> >> +    CU_ASSERT(odp_event_type(ev) == ODP_EVENT_BUFFER);
> >>       CU_ASSERT(odp_buffer_size(raw_buffer) >= raw_buffer_size);
> >>       CU_ASSERT(odp_buffer_addr(raw_buffer) != NULL);
> >>       odp_buffer_print(raw_buffer);
> >> diff --git a/test/validation/buffer/odp_packet_test.c
> >> b/test/validation/buffer/odp_packet_test.c
> >> index d073b49..63caec6 100644
> >> --- a/test/validation/buffer/odp_packet_test.c
> >> +++ b/test/validation/buffer/odp_packet_test.c
> >> @@ -85,18 +85,17 @@ static void packet_alloc_segmented(void)
> >>       odp_packet_free(pkt);
> >>   }
> >>   -static void packet_buffer_conversion(void)
> >> +static void packet_event_conversion(void)
> >>   {
> >>       odp_packet_t pkt = test_packet;
> >>       odp_packet_t tmp_pkt;
> >> -    odp_buffer_t buf;
> >> +    odp_event_t ev;
> >>   -    buf = odp_packet_to_buffer(pkt);
> >> -    CU_ASSERT_FATAL(buf != ODP_BUFFER_INVALID);
> >> -    CU_ASSERT(odp_buffer_type(buf) == ODP_BUFFER_TYPE_PACKET);
> >> -    CU_ASSERT(odp_buffer_size(buf) == odp_packet_buf_len(pkt));
> >> +    ev = odp_packet_to_event(pkt);
> >> +    CU_ASSERT_FATAL(ev != ODP_EVENT_INVALID);
> >> +    CU_ASSERT(odp_event_type(ev) == ODP_EVENT_PACKET);
> >>   -    tmp_pkt = odp_packet_from_buffer(buf);
> >> +    tmp_pkt = odp_packet_from_event(ev);
> >>       CU_ASSERT_FATAL(tmp_pkt != ODP_PACKET_INVALID);
> >>       /** @todo: Need an API to compare packets */
> >>   }
> >> @@ -653,7 +652,7 @@ CU_TestInfo packet_tests[] = {
> >>       _CU_TEST_INFO(packet_headroom),
> >>       _CU_TEST_INFO(packet_tailroom),
> >>       _CU_TEST_INFO(packet_context),
> >> -    _CU_TEST_INFO(packet_buffer_conversion),
> >> +    _CU_TEST_INFO(packet_event_conversion),
> >>       _CU_TEST_INFO(packet_layer_offsets),
> >>       _CU_TEST_INFO(packet_segments),
> >>       _CU_TEST_INFO(packet_segment_last),
> >> diff --git a/test/validation/odp_pktio.c b/test/validation/odp_pktio.c
> >> index b1eb61e..2e7b50b 100644
> >> --- a/test/validation/odp_pktio.c
> >> +++ b/test/validation/odp_pktio.c
> >> @@ -244,7 +244,7 @@ static int create_inq(odp_pktio_t pktio)
> >>       return odp_pktio_inq_setdef(pktio, inq_def);
> >>   }
> >>   -static odp_buffer_t queue_deq_wait_time(odp_queue_t queue,
> >> uint64_t ns)
> >> +static odp_event_t queue_deq_wait_time(odp_queue_t queue, uint64_t ns)
> >>   {
> >>       uint64_t start, now, diff;
> >>       odp_event_t ev;
> >> @@ -254,12 +254,12 @@ static odp_buffer_t
> >> queue_deq_wait_time(odp_queue_t queue, uint64_t ns)
> >>       do {
> >>           ev = odp_queue_deq(queue);
> >>           if (ev != ODP_EVENT_INVALID)
> >> -            return odp_buffer_from_event(ev);
> >> +            return ev;
> >>           now = odp_time_cycles();
> >>           diff = odp_time_diff_cycles(start, now);
> >>       } while (odp_time_cycles_to_ns(diff) < ns);
> >>   -    return ODP_BUFFER_INVALID;
> >> +    return ODP_EVENT_INVALID;
> >>   }
> >>     static odp_packet_t wait_for_packet(odp_queue_t queue,
> >> @@ -267,22 +267,20 @@ static odp_packet_t wait_for_packet(odp_queue_t
> >> queue,
> >>   {
> >>       uint64_t start, now, diff;
> >>       odp_event_t ev;
> >> -    odp_buffer_t buf;
> >>       odp_packet_t pkt = ODP_PACKET_INVALID;
> >>         start = odp_time_cycles();
> >>         do {
> >>           if (queue != ODP_QUEUE_INVALID) {
> >> -            buf = queue_deq_wait_time(queue, ns);
> >> +            ev = queue_deq_wait_time(queue, ns);
> >>           } else {
> >>               ev  = odp_schedule(NULL, ns);
> >> -            buf = odp_buffer_from_event(ev);
> >>           }
> >>   -        if (buf != ODP_BUFFER_INVALID &&
> >> -            odp_buffer_type(buf) == ODP_BUFFER_TYPE_PACKET) {
> >> -            pkt = odp_packet_from_buffer(buf);
> >> +        if (ev != ODP_EVENT_INVALID &&
> >> +            odp_event_type(ev) == ODP_EVENT_PACKET) {
> >> +            pkt = odp_packet_from_event(ev);
> >>               if (pktio_pkt_seq(pkt) == seq)
> >>                   return pkt;
> >>           }
> >> diff --git a/test/validation/odp_timer.c b/test/validation/odp_timer.c
> >> index eca7e7f..adc1554 100644
> >> --- a/test/validation/odp_timer.c
> >> +++ b/test/validation/odp_timer.c
> >> @@ -49,7 +49,7 @@ static void handle_tmo(odp_buffer_t buf, bool
> >> stale, uint64_t prev_tick)
> >>   {
> >>       /* Use assert() for internal correctness checks of test program
> */
> >>       assert(buf != ODP_BUFFER_INVALID);
> >> -    if (odp_buffer_type(buf) != ODP_BUFFER_TYPE_TIMEOUT) {
> >> +    if (odp_event_type(odp_buffer_to_event(buf)) !=
> >> ODP_EVENT_TIMEOUT) {
> >>           /* Not a timeout buffer */
> >>           CU_FAIL("Unexpected buffer type received");
> >>           return;
> >


_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to