xref: /dpdk/lib/eal/common/eal_interrupts.h (revision 971d2b57972919527e27ed683032a71864a2eb56)
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 	union {
10 		struct {
11 			int dev_fd; /**< VFIO/UIO cfg device file descriptor */
12 			int fd;	/**< interrupt event file descriptor */
13 		};
14 		void *windows_handle; /**< device driver handle */
15 	};
16 	uint32_t alloc_flags;	/**< flags passed at allocation */
17 	enum rte_intr_handle_type type;  /**< handle type */
18 	uint32_t max_intr;             /**< max interrupt requested */
19 	uint32_t nb_efd;               /**< number of available efd(event fd) */
20 	uint8_t efd_counter_size;      /**< size of efd counter, used for vdev */
21 	uint16_t nb_intr;
22 		/**< Max vector count, default RTE_MAX_RXTX_INTR_VEC_ID */
23 	int *efds;  /**< intr vectors/efds mapping */
24 	struct rte_epoll_event *elist; /**< intr vector epoll event */
25 	uint16_t vec_list_size;
26 	int *intr_vec;                 /**< intr vector number array */
27 };
28 
29 #endif /* EAL_INTERRUPTS_H */
30