Add separate functions for performing global and local pktio device initialization.
Signed-off-by: Matias Elo <[email protected]> --- platform/linux-generic/include/odp_packet_io_internal.h | 3 ++- platform/linux-generic/odp_packet_io.c | 17 +++++++++++++++-- platform/linux-generic/pktio/ipc.c | 3 ++- platform/linux-generic/pktio/loop.c | 3 ++- platform/linux-generic/pktio/netmap.c | 3 ++- platform/linux-generic/pktio/pcap.c | 2 ++ platform/linux-generic/pktio/socket.c | 3 ++- platform/linux-generic/pktio/socket_mmap.c | 3 ++- platform/linux-generic/pktio/tap.c | 3 ++- 9 files changed, 31 insertions(+), 9 deletions(-) diff --git a/platform/linux-generic/include/odp_packet_io_internal.h b/platform/linux-generic/include/odp_packet_io_internal.h index 03128f1..eb7efa9 100644 --- a/platform/linux-generic/include/odp_packet_io_internal.h +++ b/platform/linux-generic/include/odp_packet_io_internal.h @@ -169,7 +169,8 @@ int is_free(pktio_entry_t *entry); typedef struct pktio_if_ops { const char *name; - int (*init)(void); + int (*init_global)(void); + int (*init_local)(void); int (*term)(void); int (*open)(odp_pktio_t pktio, pktio_entry_t *pktio_entry, const char *devname, odp_pool_t pool); diff --git a/platform/linux-generic/odp_packet_io.c b/platform/linux-generic/odp_packet_io.c index a8c1d87..7d53a8e 100644 --- a/platform/linux-generic/odp_packet_io.c +++ b/platform/linux-generic/odp_packet_io.c @@ -81,10 +81,12 @@ int odp_pktio_init_global(void) } 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()) + if (pktio_if_ops[pktio_if]->init_global) + if (pktio_if_ops[pktio_if]->init_global()) { ODP_ERR("failed to initialized pktio type %d", pktio_if); + return -1; + } } return 0; @@ -92,6 +94,17 @@ int odp_pktio_init_global(void) int odp_pktio_init_local(void) { + int pktio_if; + + for (pktio_if = 0; pktio_if_ops[pktio_if]; ++pktio_if) { + if (pktio_if_ops[pktio_if]->init_local) + if (pktio_if_ops[pktio_if]->init_local()) { + ODP_ERR("failed to initialized pktio type %d", + pktio_if); + return -1; + } + } + return 0; } diff --git a/platform/linux-generic/pktio/ipc.c b/platform/linux-generic/pktio/ipc.c index 52d3c8c..08a7934 100644 --- a/platform/linux-generic/pktio/ipc.c +++ b/platform/linux-generic/pktio/ipc.c @@ -713,7 +713,8 @@ static int ipc_close(pktio_entry_t *pktio_entry) } const pktio_if_ops_t ipc_pktio_ops = { - .init = NULL, + .init_global = NULL, + .init_local = NULL, .term = NULL, .open = ipc_pktio_open, .close = ipc_close, diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c index 34d769e..d5fce90 100644 --- a/platform/linux-generic/pktio/loop.c +++ b/platform/linux-generic/pktio/loop.c @@ -155,7 +155,8 @@ static int loopback_stats_reset(pktio_entry_t *pktio_entry ODP_UNUSED) const pktio_if_ops_t loopback_pktio_ops = { .name = "loop", - .init = NULL, + .init_global = NULL, + .init_local = NULL, .term = NULL, .open = loopback_open, .close = loopback_close, diff --git a/platform/linux-generic/pktio/netmap.c b/platform/linux-generic/pktio/netmap.c index 7009b97..27a5582 100644 --- a/platform/linux-generic/pktio/netmap.c +++ b/platform/linux-generic/pktio/netmap.c @@ -856,7 +856,8 @@ static int netmap_stats_reset(pktio_entry_t *pktio_entry) const pktio_if_ops_t netmap_pktio_ops = { .name = "netmap", - .init = NULL, + .init_global = NULL, + .init_local = NULL, .term = NULL, .open = netmap_open, .close = netmap_close, diff --git a/platform/linux-generic/pktio/pcap.c b/platform/linux-generic/pktio/pcap.c index ef42c11..56e603c 100644 --- a/platform/linux-generic/pktio/pcap.c +++ b/platform/linux-generic/pktio/pcap.c @@ -393,6 +393,8 @@ static int pcapif_stats(pktio_entry_t *pktio_entry, const pktio_if_ops_t pcap_pktio_ops = { .name = "pcap", + .init_global = NULL, + .init_local = NULL, .open = pcapif_init, .close = pcapif_close, .stats = pcapif_stats, diff --git a/platform/linux-generic/pktio/socket.c b/platform/linux-generic/pktio/socket.c index be53900..610d7f2 100644 --- a/platform/linux-generic/pktio/socket.c +++ b/platform/linux-generic/pktio/socket.c @@ -839,7 +839,8 @@ static int sock_stats_reset(pktio_entry_t *pktio_entry) const pktio_if_ops_t sock_mmsg_pktio_ops = { .name = "socket", - .init = NULL, + .init_global = NULL, + .init_local = NULL, .term = NULL, .open = sock_mmsg_open, .close = sock_close, diff --git a/platform/linux-generic/pktio/socket_mmap.c b/platform/linux-generic/pktio/socket_mmap.c index da2682c..07d7c1e 100644 --- a/platform/linux-generic/pktio/socket_mmap.c +++ b/platform/linux-generic/pktio/socket_mmap.c @@ -608,7 +608,8 @@ static int sock_mmap_stats_reset(pktio_entry_t *pktio_entry) const pktio_if_ops_t sock_mmap_pktio_ops = { .name = "socket_mmap", - .init = NULL, + .init_global = NULL, + .init_local = NULL, .term = NULL, .open = sock_mmap_open, .close = sock_mmap_close, diff --git a/platform/linux-generic/pktio/tap.c b/platform/linux-generic/pktio/tap.c index 14cc600..47b2178 100644 --- a/platform/linux-generic/pktio/tap.c +++ b/platform/linux-generic/pktio/tap.c @@ -310,7 +310,8 @@ static int tap_mac_addr_get(pktio_entry_t *pktio_entry, void *mac_addr) } const pktio_if_ops_t tap_pktio_ops = { - .init = NULL, + .init_global = NULL, + .init_local = NULL, .term = NULL, .open = tap_pktio_open, .close = tap_pktio_close, -- 1.9.1 _______________________________________________ lng-odp mailing list [email protected] https://lists.linaro.org/mailman/listinfo/lng-odp
