linux/arch/x86/hyperv/irqdomain.c

// SPDX-License-Identifier: GPL-2.0

/*
 * Irqdomain for Linux to run as the root partition on Microsoft Hypervisor.
 *
 * Authors:
 *  Sunil Muthuswamy <[email protected]>
 *  Wei Liu <[email protected]>
 */

#include <linux/pci.h>
#include <linux/irq.h>
#include <asm/mshyperv.h>

static int hv_map_interrupt(union hv_device_id device_id, bool level,
		int cpu, int vector, struct hv_interrupt_entry *entry)
{}

static int hv_unmap_interrupt(u64 id, struct hv_interrupt_entry *old_entry)
{}

#ifdef CONFIG_PCI_MSI
struct rid_data {};

static int get_rid_cb(struct pci_dev *pdev, u16 alias, void *data)
{}

static union hv_device_id hv_build_pci_dev_id(struct pci_dev *dev)
{}

static int hv_map_msi_interrupt(struct pci_dev *dev, int cpu, int vector,
				struct hv_interrupt_entry *entry)
{}

static inline void entry_to_msi_msg(struct hv_interrupt_entry *entry, struct msi_msg *msg)
{}

static int hv_unmap_msi_interrupt(struct pci_dev *dev, struct hv_interrupt_entry *old_entry);
static void hv_irq_compose_msi_msg(struct irq_data *data, struct msi_msg *msg)
{}

static int hv_unmap_msi_interrupt(struct pci_dev *dev, struct hv_interrupt_entry *old_entry)
{}

static void hv_teardown_msi_irq(struct pci_dev *dev, struct irq_data *irqd)
{}

static void hv_msi_free_irq(struct irq_domain *domain,
			    struct msi_domain_info *info, unsigned int virq)
{}

/*
 * IRQ Chip for MSI PCI/PCI-X/PCI-Express Devices,
 * which implement the MSI or MSI-X Capability Structure.
 */
static struct irq_chip hv_pci_msi_controller =;

static struct msi_domain_ops pci_msi_domain_ops =;

static struct msi_domain_info hv_pci_msi_domain_info =;

struct irq_domain * __init hv_create_pci_msi_domain(void)
{}

#endif /* CONFIG_PCI_MSI */

int hv_unmap_ioapic_interrupt(int ioapic_id, struct hv_interrupt_entry *entry)
{}
EXPORT_SYMBOL_GPL();

int hv_map_ioapic_interrupt(int ioapic_id, bool level, int cpu, int vector,
		struct hv_interrupt_entry *entry)
{}
EXPORT_SYMBOL_GPL();