ice: track interrupt vectors with xarray
[platform/kernel/linux-starfive.git] / drivers / net / ethernet / intel / ice / ice_irq.h
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 };
10
11 struct ice_irq_tracker {
12         struct xarray entries;
13         u16 num_entries;        /* total vectors available */
14 };
15
16 int ice_init_interrupt_scheme(struct ice_pf *pf);
17 void ice_clear_interrupt_scheme(struct ice_pf *pf);
18
19 struct msi_map ice_alloc_irq(struct ice_pf *pf);
20 void ice_free_irq(struct ice_pf *pf, struct msi_map map);
21
22 #endif