5 #ifndef _RTE_INTERRUPTS_H_
6 #define _RTE_INTERRUPTS_H_
12 #include <rte_compat.h>
27 struct rte_intr_handle;
34 #define RTE_INTR_INSTANCE_F_PRIVATE UINT32_C(0)
36 #define RTE_INTR_INSTANCE_F_SHARED RTE_BIT32(0)
38 #define RTE_MAX_RXTX_INTR_VEC_ID 512
39 #define RTE_INTR_VEC_ZERO_OFFSET 0
40 #define RTE_INTR_VEC_RXTX_OFFSET 1
197 int rte_intr_ack(
const struct rte_intr_handle *intr_handle);
235 struct rte_intr_handle *
337 rte_intr_tls_epfd(
void);
358 rte_intr_rx_ctl(
struct rte_intr_handle *intr_handle,
359 int epfd,
int op,
unsigned int vec,
void *data);
370 rte_intr_free_epoll_fd(
struct rte_intr_handle *intr_handle);
389 rte_intr_efd_enable(
struct rte_intr_handle *intr_handle, uint32_t nb_efd);
401 rte_intr_efd_disable(
struct rte_intr_handle *intr_handle);
412 rte_intr_dp_is_en(
struct rte_intr_handle *intr_handle);
424 rte_intr_allow_others(
struct rte_intr_handle *intr_handle);
436 rte_intr_cap_multiple(
struct rte_intr_handle *intr_handle);
450 struct rte_intr_handle *
451 rte_intr_instance_dup(
const struct rte_intr_handle *src);
469 rte_intr_dev_fd_set(
struct rte_intr_handle *intr_handle,
int fd);
484 rte_intr_dev_fd_get(
const struct rte_intr_handle *intr_handle);
502 rte_intr_max_intr_set(
struct rte_intr_handle *intr_handle,
int max_intr);
517 rte_intr_max_intr_get(
const struct rte_intr_handle *intr_handle);
535 rte_intr_nb_efd_set(
struct rte_intr_handle *intr_handle,
int nb_efd);
551 rte_intr_nb_efd_get(
const struct rte_intr_handle *intr_handle);
571 rte_intr_nb_intr_get(
const struct rte_intr_handle *intr_handle);
589 rte_intr_efd_counter_size_set(
struct rte_intr_handle *intr_handle,
590 uint8_t efd_counter_size);
606 rte_intr_efd_counter_size_get(
const struct rte_intr_handle *intr_handle);
625 rte_intr_efds_index_set(
struct rte_intr_handle *intr_handle,
int index,
int fd);
642 rte_intr_efds_index_get(
const struct rte_intr_handle *intr_handle,
int index);
662 rte_intr_elist_index_set(
struct rte_intr_handle *intr_handle,
int index,
681 rte_intr_elist_index_get(
struct rte_intr_handle *intr_handle,
int index);
701 rte_intr_vec_list_alloc(
struct rte_intr_handle *intr_handle,
const char *name,
722 rte_intr_vec_list_index_set(
struct rte_intr_handle *intr_handle,
int index,
740 rte_intr_vec_list_index_get(
const struct rte_intr_handle *intr_handle,
756 rte_intr_vec_list_free(
struct rte_intr_handle *intr_handle);
778 rte_intr_event_list_update(
struct rte_intr_handle *intr_handle,
int size);
793 rte_intr_instance_windows_handle_get(
struct rte_intr_handle *intr_handle);
810 rte_intr_instance_windows_handle_set(
struct rte_intr_handle *intr_handle,
811 void *windows_handle);