1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* Copyright (C) 2023, Intel Corporation. */ |
3 | |
4 | #ifndef _ICE_IRQ_H_ |
5 | #define _ICE_IRQ_H_ |
6 | |
7 | struct ice_irq_entry { |
8 | unsigned int index; |
9 | bool dynamic; /* allocation type flag */ |
10 | }; |
11 | |
12 | struct ice_irq_tracker { |
13 | struct xarray entries; |
14 | u16 num_entries; /* total vectors available */ |
15 | u16 num_static; /* preallocated entries */ |
16 | }; |
17 | |
18 | int ice_init_interrupt_scheme(struct ice_pf *pf); |
19 | void ice_clear_interrupt_scheme(struct ice_pf *pf); |
20 | |
21 | struct msi_map ice_alloc_irq(struct ice_pf *pf, bool dyn_only); |
22 | void ice_free_irq(struct ice_pf *pf, struct msi_map map); |
23 | int ice_get_max_used_msix_vector(struct ice_pf *pf); |
24 | |
25 | #endif |
26 | |