xref: /dpdk/lib/eal/common/eal_interrupts.h (revision 2490bb897182f57de80fd924dd3ae48dda819b8c)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2010-2014 Intel Corporation
3  */
4 
5 #ifndef EAL_INTERRUPTS_H
6 #define EAL_INTERRUPTS_H
7 
8 struct rte_intr_handle {
9 	RTE_STD_C11
10 	union {
11 		struct {
12 			int dev_fd; /**< VFIO/UIO cfg device file descriptor */
13 			int fd;	/**< interrupt event file descriptor */
14 		};
15 		void *windows_handle; /**< device driver handle */
16 	};
17 	uint32_t alloc_flags;	/**< flags passed at allocation */
18 	enum rte_intr_handle_type type;  /**< handle type */
19 	uint32_t max_intr;             /**< max interrupt requested */
20 	uint32_t nb_efd;               /**< number of available efd(event fd) */
21 	uint8_t efd_counter_size;      /**< size of efd counter, used for vdev */
22 	uint16_t nb_intr;
23 		/**< Max vector count, default RTE_MAX_RXTX_INTR_VEC_ID */
24 	int *efds;  /**< intr vectors/efds mapping */
25 	struct rte_epoll_event *elist; /**< intr vector epoll event */
26 	uint16_t vec_list_size;
27 	int *intr_vec;                 /**< intr vector number array */
28 };
29 
30 #endif /* EAL_INTERRUPTS_H */
31