xref: /kernel/linux/linux-6.6/drivers/net/ethernet/intel/ice/ice_irq.h
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /kernel/linux/linux-6.6/drivers/net/ethernet/intel/ice/
162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/* Copyright (C) 2023, Intel Corporation. */
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci#ifndef _ICE_IRQ_H_
562306a36Sopenharmony_ci#define _ICE_IRQ_H_
662306a36Sopenharmony_ci
762306a36Sopenharmony_cistruct ice_irq_entry {
862306a36Sopenharmony_ci	unsigned int index;
962306a36Sopenharmony_ci	bool dynamic;	/* allocation type flag */
1062306a36Sopenharmony_ci};
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cistruct ice_irq_tracker {
1362306a36Sopenharmony_ci	struct xarray entries;
1462306a36Sopenharmony_ci	u16 num_entries;	/* total vectors available */
1562306a36Sopenharmony_ci	u16 num_static;	/* preallocated entries */
1662306a36Sopenharmony_ci};
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciint ice_init_interrupt_scheme(struct ice_pf *pf);
1962306a36Sopenharmony_civoid ice_clear_interrupt_scheme(struct ice_pf *pf);
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_cistruct msi_map ice_alloc_irq(struct ice_pf *pf, bool dyn_only);
2262306a36Sopenharmony_civoid ice_free_irq(struct ice_pf *pf, struct msi_map map);
2362306a36Sopenharmony_ciint ice_get_max_used_msix_vector(struct ice_pf *pf);
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci#endif
26

Indexes created Thu Nov 07 10:32:03 CST 2024