1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2019 Marvell International Ltd.
3  */
4 
5 #ifndef _OTX2_IRQ_H_
6 #define _OTX2_IRQ_H_
7 
8 #include <rte_pci.h>
9 #include <rte_interrupts.h>
10 
11 #include "otx2_common.h"
12 
13 typedef struct {
14 /* 128 devices translate to two 64 bits dwords */
15 #define MAX_VFPF_DWORD_BITS 2
16 	uint64_t bits[MAX_VFPF_DWORD_BITS];
17 } otx2_intr_t;
18 
19 __rte_internal
20 int otx2_register_irq(struct rte_intr_handle *intr_handle,
21 		      rte_intr_callback_fn cb, void *data, unsigned int vec);
22 __rte_internal
23 void otx2_unregister_irq(struct rte_intr_handle *intr_handle,
24 			 rte_intr_callback_fn cb, void *data, unsigned int vec);
25 __rte_internal
26 int otx2_disable_irqs(struct rte_intr_handle *intr_handle);
27 
28 #endif /* _OTX2_IRQ_H_ */
29