From 0c09c95d12eddd3deb6eb01e31cb27773e93f6f1 Mon Sep 17 00:00:00 2001 From: Nicolas Morey-Chaisemartin Date: Fri, 24 Jul 2015 13:51:23 +0200 Subject: 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 Signed-off-by: Maxim Uvarov --- platform/linux-generic/odp_packet_io.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'platform/linux-generic/odp_packet_io.c') 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]; -- cgit v1.2.3