aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic/odp_packet_io.c
diff options
context:
space:
mode:
authorNicolas Morey-Chaisemartin <nmorey@kalray.eu>2015-07-24 13:51:23 +0200
committerMaxim Uvarov <maxim.uvarov@linaro.org>2015-07-28 14:04:09 +0300
commit0c09c95d12eddd3deb6eb01e31cb27773e93f6f1 (patch)
tree363a49d6a634650a7232179d7d24106fe2dc9c46 /platform/linux-generic/odp_packet_io.c
parent1338a46573b2c602e3565cb1f372dabef3497eb4 (diff)
linux-generic: pktio: add global init and term function for pktios
Each pktio type can now provide an optional init and term function to set and clean itself up. Signed-off-by: Nicolas Morey-Chaisemartin <nmorey@kalray.eu> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Diffstat (limited to 'platform/linux-generic/odp_packet_io.c')
-rw-r--r--platform/linux-generic/odp_packet_io.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/platform/linux-generic/odp_packet_io.c b/platform/linux-generic/odp_packet_io.c
index c159baf41..2bfec523c 100644
--- a/platform/linux-generic/odp_packet_io.c
+++ b/platform/linux-generic/odp_packet_io.c
@@ -37,6 +37,7 @@ int odp_pktio_init_global(void)
odp_queue_t qid;
int id;
odp_shm_t shm;
+ int pktio_if;
shm = odp_shm_reserve("odp_pktio_entries",
sizeof(pktio_table_t),
@@ -72,6 +73,13 @@ int odp_pktio_init_global(void)
queue_entry->s.pktout = _odp_cast_scalar(odp_pktio_t, id);
}
+ for (pktio_if = 0; pktio_if_ops[pktio_if]; ++pktio_if) {
+ if (!pktio_if_ops[pktio_if]->init)
+ if (pktio_if_ops[pktio_if]->init())
+ ODP_ERR("failed to initialized pktio type %d",
+ pktio_if);
+ }
+
return 0;
}
@@ -80,6 +88,14 @@ int odp_pktio_term_global(void)
pktio_entry_t *pktio_entry;
int ret = 0;
int id;
+ int pktio_if;
+
+ for (pktio_if = 0; pktio_if_ops[pktio_if]; ++pktio_if) {
+ if (!pktio_if_ops[pktio_if]->term)
+ if (pktio_if_ops[pktio_if]->term())
+ ODP_ERR("failed to terminaye pktio type %d",
+ pktio_if);
+ }
for (id = 1; id <= ODP_CONFIG_PKTIO_ENTRIES; ++id) {
pktio_entry = &pktio_tbl->entries[id - 1];