#include <linux/export.h>
#include <linux/rbtree.h>
#include <linux/slab.h>
#include <linux/irq.h>
#include <asm/irqdomain.h>
#include <asm/apic.h>
#include <asm/uv/uv_irq.h>
#include <asm/uv/uv_hub.h>
struct uv_irq_2_mmr_pnode { … };
static void uv_program_mmr(struct irq_cfg *cfg, struct uv_irq_2_mmr_pnode *info)
{ … }
static void uv_noop(struct irq_data *data) { … }
static int
uv_set_irq_affinity(struct irq_data *data, const struct cpumask *mask,
bool force)
{ … }
static struct irq_chip uv_irq_chip = …;
static int uv_domain_alloc(struct irq_domain *domain, unsigned int virq,
unsigned int nr_irqs, void *arg)
{ … }
static void uv_domain_free(struct irq_domain *domain, unsigned int virq,
unsigned int nr_irqs)
{ … }
static int uv_domain_activate(struct irq_domain *domain,
struct irq_data *irq_data, bool reserve)
{ … }
static void uv_domain_deactivate(struct irq_domain *domain,
struct irq_data *irq_data)
{ … }
static const struct irq_domain_ops uv_domain_ops = …;
static struct irq_domain *uv_get_irq_domain(void)
{ … }
int uv_setup_irq(char *irq_name, int cpu, int mmr_blade,
unsigned long mmr_offset, int limit)
{ … }
EXPORT_SYMBOL_GPL(…);
void uv_teardown_irq(unsigned int irq)
{ … }
EXPORT_SYMBOL_GPL(…);