diff options
author | Petri Savolainen <petri.savolainen@linaro.org> | 2017-12-01 15:02:35 +0200 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2017-12-27 21:58:43 +0300 |
commit | 9531b4a10640e32c432ddd3ae3be5005f2b87b2b (patch) | |
tree | 99158090a71c12a5beeefe0de6e9bc40a9f57e74 | |
parent | 39cbe8bd3cf8789caacf2579f74f081f70a05c69 (diff) |
linux-gen: packet: implement event filter packet
Simple implementation of the new event filter packets
function.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Reviewed-by: Balasubramanian Manoharan <bala.manoharan@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
-rw-r--r-- | platform/linux-generic/odp_packet.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/platform/linux-generic/odp_packet.c b/platform/linux-generic/odp_packet.c index ef8754e3b..83a880947 100644 --- a/platform/linux-generic/odp_packet.c +++ b/platform/linux-generic/odp_packet.c @@ -983,6 +983,27 @@ void odp_packet_to_event_multi(const odp_packet_t pkt[], odp_event_t ev[], ev[i] = odp_packet_to_event(pkt[i]); } +int odp_event_filter_packet(const odp_event_t event[], + odp_packet_t packet[], + odp_event_t remain[], int num) +{ + int i; + int num_pkt = 0; + int num_rem = 0; + + for (i = 0; i < num; i++) { + if (odp_event_type(event[i]) == ODP_EVENT_PACKET) { + packet[num_pkt] = odp_packet_from_event(event[i]); + num_pkt++; + } else { + remain[num_rem] = event[i]; + num_rem++; + } + } + + return num_pkt; +} + /* * * Pointers and lengths |