move ipi_pcpu to evtchn.c

This commit is contained in:
Kip Macy 2008-09-26 05:54:24 +00:00
parent 3488b48a00
commit 852c25eda2
3 changed files with 17 additions and 18 deletions

View File

@ -59,6 +59,7 @@ notify_remote_via_evtchn(int port)
*/
int irq_to_evtchn_port(int irq);
void ipi_pcpu(unsigned int cpu, int vector);
/*
* CHARACTER-DEVICE DEFINITIONS

View File

@ -85,6 +85,7 @@ __FBSDID("$FreeBSD$");
#include <machine/xen/xen-os.h>
#include <machine/xen/evtchn.h>
#include <machine/xen/hypervisor.h>
#include <xen/interface/vcpu.h>
@ -906,17 +907,6 @@ smp_masked_invlpg_range(u_int mask, vm_offset_t addr1, vm_offset_t addr2)
}
}
static __inline void
ipi_pcpu(unsigned int cpu, int vector)
{
#ifdef notyet
int irq = per_cpu(ipi_to_irq, cpu)[vector];
notify_remote_via_irq(irq);
#endif
}
void
ipi_bitmap_handler(struct trapframe frame)
{

View File

@ -112,14 +112,14 @@ enum {
#define index_from_irq(irq) ((uint8_t)(irq_info[irq] >> 16))
#define type_from_irq(irq) ((uint8_t)(irq_info[irq] >> 24))
/* IRQ <-> VIRQ mapping. */
DEFINE_PER_CPU(int, virq_to_irq[NR_VIRQS]);
/* IRQ <-> IPI mapping. */
#ifndef NR_IPIS
/* IRQ <-> VIRQ mapping. */
DEFINE_PER_CPU(int, virq_to_irq[NR_VIRQS]) = {[0 ... NR_VIRQS-1] = -1};
/* IRQ <-> IPI mapping. */
#ifndef NR_IPIS
#define NR_IPIS 1
#endif
DEFINE_PER_CPU(int, ipi_to_irq[NR_IPIS]);
#endif
DEFINE_PER_CPU(int, ipi_to_irq[NR_IPIS]) = {[0 ... NR_IPIS-1] = -1};
/* Bitmap indicating which PIRQs require Xen to be notified on unmask. */
static unsigned long pirq_needs_unmask_notify[NR_PIRQS/sizeof(unsigned long)];
@ -219,6 +219,14 @@ evtchn_do_upcall(struct trapframe *frame)
}
}
void
ipi_pcpu(unsigned int cpu, int vector)
{
int irq = per_cpu(ipi_to_irq, cpu)[vector];
notify_remote_via_irq(irq);
}
static int
find_unbound_irq(void)
{