move ipi_pcpu to evtchn.c
This commit is contained in:
parent
3488b48a00
commit
852c25eda2
@ -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
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user