Add some missing interrupt implementations on Windows. Also add respective functions to export file.
Signed-off-by: Tal Shnaiderman <tal...@nvidia.com> Signed-off-by: Pallavi Kadam <pallavi.ka...@intel.com> Reviewed-by: Ranjit Menon <ranjit.me...@intel.com> Acked-by: Narcisa Vasile <navas...@linux.microsoft.com> v2 changes: Add remaining interrupt APIs (Dmitry Kozlyuk) --- lib/librte_eal/rte_eal_exports.def | 16 +++ lib/librte_eal/windows/eal_interrupts.c | 126 ++++++++++++++++++++++++ 2 files changed, 142 insertions(+) diff --git a/lib/librte_eal/rte_eal_exports.def b/lib/librte_eal/rte_eal_exports.def index 6a6be1cfa..dd8398f88 100644 --- a/lib/librte_eal/rte_eal_exports.def +++ b/lib/librte_eal/rte_eal_exports.def @@ -56,6 +56,9 @@ EXPORTS rte_eal_tailq_register rte_eal_using_phys_addrs rte_eal_wait_lcore + rte_epoll_ctl + rte_epoll_wait + rte_epoll_wait_interruptible rte_exit rte_free rte_get_main_lcore @@ -63,7 +66,20 @@ EXPORTS rte_get_tsc_hz rte_hexdump rte_hypervisor_get + rte_intr_ack + rte_intr_allow_others + rte_intr_callback_register + rte_intr_callback_unregister + rte_intr_callback_unregister_pending + rte_intr_cap_multiple + rte_intr_disable + rte_intr_dp_is_en + rte_intr_efd_disable + rte_intr_efd_enable + rte_intr_enable + rte_intr_free_epoll_fd rte_intr_rx_ctl + rte_intr_tls_epfd rte_lcore_count rte_lcore_has_role rte_lcore_index diff --git a/lib/librte_eal/windows/eal_interrupts.c b/lib/librte_eal/windows/eal_interrupts.c index 6c64a48f3..67928b46d 100644 --- a/lib/librte_eal/windows/eal_interrupts.c +++ b/lib/librte_eal/windows/eal_interrupts.c @@ -105,3 +105,129 @@ eal_intr_thread_schedule(void (*func)(void *arg), void *arg) return 0; } + +int +rte_intr_callback_register( + __rte_unused const struct rte_intr_handle *intr_handle, + __rte_unused rte_intr_callback_fn cb, __rte_unused void *cb_arg) +{ + return -ENOTSUP; +} + +int +rte_intr_callback_unregister_pending( + __rte_unused const struct rte_intr_handle *intr_handle, + __rte_unused rte_intr_callback_fn cb_fn, __rte_unused void *cb_arg, + __rte_unused rte_intr_unregister_callback_fn ucb_fn) +{ + return -ENOTSUP; +} + +int +rte_intr_callback_unregister( + __rte_unused const struct rte_intr_handle *intr_handle, + __rte_unused rte_intr_callback_fn cb_fn, __rte_unused void *cb_arg) +{ + return 0; +} + +int +rte_intr_enable(__rte_unused const struct rte_intr_handle *intr_handle) +{ + return -ENOTSUP; +} + +int +rte_intr_ack(__rte_unused const struct rte_intr_handle *intr_handle) +{ + return -ENOTSUP; +} + +int +rte_intr_disable(__rte_unused const struct rte_intr_handle *intr_handle) +{ + return -ENOTSUP; +} + +int +rte_intr_efd_enable(struct rte_intr_handle *intr_handle, uint32_t nb_efd) +{ + RTE_SET_USED(intr_handle); + RTE_SET_USED(nb_efd); + + return 0; +} + +void +rte_intr_efd_disable(struct rte_intr_handle *intr_handle) +{ + RTE_SET_USED(intr_handle); +} + +int +rte_intr_dp_is_en(struct rte_intr_handle *intr_handle) +{ + RTE_SET_USED(intr_handle); + return 0; +} + +int +rte_intr_allow_others(struct rte_intr_handle *intr_handle) +{ + RTE_SET_USED(intr_handle); + return 1; +} + +int +rte_intr_cap_multiple(struct rte_intr_handle *intr_handle) +{ + RTE_SET_USED(intr_handle); + return 0; +} + +int +rte_epoll_wait(int epfd, struct rte_epoll_event *events, + int maxevents, int timeout) +{ + RTE_SET_USED(epfd); + RTE_SET_USED(events); + RTE_SET_USED(maxevents); + RTE_SET_USED(timeout); + + return -ENOTSUP; +} + +int +rte_epoll_wait_interruptible(int epfd, struct rte_epoll_event *events, + int maxevents, int timeout) +{ + RTE_SET_USED(epfd); + RTE_SET_USED(events); + RTE_SET_USED(maxevents); + RTE_SET_USED(timeout); + + return -ENOTSUP; +} + +int +rte_epoll_ctl(int epfd, int op, int fd, struct rte_epoll_event *event) +{ + RTE_SET_USED(epfd); + RTE_SET_USED(op); + RTE_SET_USED(fd); + RTE_SET_USED(event); + + return -ENOTSUP; +} + +int +rte_intr_tls_epfd(void) +{ + return -ENOTSUP; +} + +void +rte_intr_free_epoll_fd(struct rte_intr_handle *intr_handle) +{ + RTE_SET_USED(intr_handle); +} -- 2.18.0.windows.1