msi_map
struct iommufd_sw_msi_map *msi_map)
iova = msi_map->sw_msi_start + msi_map->pgoff * PAGE_SIZE;
if (!test_bit(msi_map->id, hwpt_paging->present_sw_msi.bitmap)) {
msi_map->msi_addr, PAGE_SIZE,
__set_bit(msi_map->id, hwpt_paging->present_sw_msi.bitmap);
struct iommufd_sw_msi_map *msi_map;
msi_map = iommufd_sw_msi_get_map(handle->idev->ictx,
if (IS_ERR(msi_map))
return PTR_ERR(msi_map);
rc = iommufd_sw_msi_install(ictx, hwpt_paging, msi_map);
__set_bit(msi_map->id, handle->idev->igroup->required_sw_msi.bitmap);
iova = msi_map->sw_msi_start + msi_map->pgoff * PAGE_SIZE;
struct iommufd_sw_msi_map *msi_map);
unsigned long *msi_map __free(kfree) = bitmap_zalloc(priv->num_spis, GFP_KERNEL);
if (!msi_map)
priv->msi_map = msi_map;
retain_and_null_ptr(msi_map);
unsigned long *msi_map;
first = bitmap_find_next_zero_area(priv->msi_map, priv->num_spis, 0, num_req, 0);
bitmap_set(priv->msi_map, first, num_req);
bitmap_clear(priv->msi_map, first, num_req);
priv->msi_map = bitmap_zalloc(priv->num_irqs, GFP_KERNEL);
if (!priv->msi_map)
bitmap_free(priv->msi_map);
unsigned long *msi_map;
first = bitmap_find_free_region(priv->msi_map, priv->num_irqs,
bitmap_release_region(priv->msi_map, first, get_count_order(num_req));
data->msi_map = devm_bitmap_zalloc(&pdev->dev, data->num_irqs, GFP_KERNEL);
if (!data->msi_map) {
unsigned long *msi_map;
first = bitmap_find_free_region(data->msi_map, data->num_irqs,
bitmap_release_region(data->msi_map, hwirq, get_count_order(num_req));
struct msi_map map;
struct msi_map irq;
struct msi_map oicr_irq; /* Other interrupt cause MSIX vector */
struct msi_map ll_ts_irq; /* LL_TS interrupt MSIX vector */
struct msi_map map;
struct msi_map map;
struct msi_map ice_alloc_irq(struct ice_pf *pf, bool dyn_allowed)
struct msi_map map = { .index = -ENOENT };
void ice_free_irq(struct ice_pf *pf, struct msi_map map)
struct msi_map ice_alloc_irq(struct ice_pf *pf, bool dyn_only);
void ice_free_irq(struct ice_pf *pf, struct msi_map map);
struct msi_map irq;
struct msi_map map;
struct msi_map irq_map;
unsigned long msi_map[BITS_TO_LONGS(XILINX_NUM_MSI_IRQS)];
hwirq = bitmap_find_free_region(pcie->msi_map, XILINX_NUM_MSI_IRQS, order_base_2(nr_irqs));
bitmap_release_region(pcie->msi_map, d->hwirq, order_base_2(nr_irqs));
struct msi_map pci_msix_alloc_irq_at(struct pci_dev *dev, unsigned int index,
struct msi_map map = { .index = -ENOTSUPP };
void pci_msix_free_irq(struct pci_dev *dev, struct msi_map map)
struct msi_map map;
struct msi_map map;
struct msi_map map;
struct msi_map map;
struct msi_map msi_domain_alloc_irq_at(struct device *dev, unsigned int domid, unsigned int index,
struct msi_map pci_msix_alloc_irq_at(struct pci_dev *dev, unsigned int index,
void pci_msix_free_irq(struct pci_dev *pdev, struct msi_map map);
static inline struct msi_map pci_msix_alloc_irq_at(struct pci_dev *dev, unsigned int index,
struct msi_map map = { .index = -ENOSYS, };
static inline void pci_msix_free_irq(struct pci_dev *pdev, struct msi_map map)
static struct msi_map __msi_domain_alloc_irq_at(struct device *dev, unsigned int domid,
struct msi_map map = { };
struct msi_map msi_domain_alloc_irq_at(struct device *dev, unsigned int domid, unsigned int index,
struct msi_map map = { };