aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/hvm/irq.c
diff options
context:
space:
mode:
authorkaf24@localhost.localdomain <kaf24@localhost.localdomain>2006-11-26 13:37:27 +0000
committerkaf24@localhost.localdomain <kaf24@localhost.localdomain>2006-11-26 13:37:27 +0000
commit00a70f44a68c762a6a369e5400064ecf31b0bbed (patch)
treece3f71d980032372f73cc772a029d62f2d4c8eec /xen/arch/x86/hvm/irq.c
parent9d4052382a56f83b7800b915aea878c99cad2c06 (diff)
downloadxen-00a70f44a68c762a6a369e5400064ecf31b0bbed.tar.gz
xen-00a70f44a68c762a6a369e5400064ecf31b0bbed.tar.bz2
xen-00a70f44a68c762a6a369e5400064ecf31b0bbed.zip
[HVM] Update VPIC device model for new interrupt delivery code.
Move BSP VLAPIC initialisation to hvmloader. Remove callback_irq update hack from Linux unmodified drivers. Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/arch/x86/hvm/irq.c')
-rw-r--r--xen/arch/x86/hvm/irq.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c
index f32e57e2b2..b65799b2aa 100644
--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -48,7 +48,7 @@ void hvm_pci_intx_assert(
(hvm_irq->gsi_assert_count[isa_irq]++ == 0) )
{
vioapic_irq_positive_edge(d, isa_irq);
- pic_set_irq(&hvm_irq->vpic, isa_irq, 1);
+ vpic_irq_positive_edge(d, isa_irq);
}
out:
@@ -75,7 +75,7 @@ void hvm_pci_intx_deassert(
isa_irq = hvm_irq->pci_link_route[link];
if ( (--hvm_irq->pci_link_assert_count[link] == 0) && isa_irq &&
(--hvm_irq->gsi_assert_count[isa_irq] == 0) )
- pic_set_irq(&hvm_irq->vpic, isa_irq, 0);
+ vpic_irq_negative_edge(d, isa_irq);
out:
spin_unlock(&hvm_irq->lock);
@@ -94,7 +94,7 @@ void hvm_isa_irq_assert(
(hvm_irq->gsi_assert_count[isa_irq]++ == 0) )
{
vioapic_irq_positive_edge(d, isa_irq);
- pic_set_irq(&hvm_irq->vpic, isa_irq, 1);
+ vpic_irq_positive_edge(d, isa_irq);
}
spin_unlock(&hvm_irq->lock);
@@ -111,7 +111,7 @@ void hvm_isa_irq_deassert(
if ( __test_and_clear_bit(isa_irq, &hvm_irq->isa_irq) &&
(--hvm_irq->gsi_assert_count[isa_irq] == 0) )
- pic_set_irq(&hvm_irq->vpic, isa_irq, 0);
+ vpic_irq_negative_edge(d, isa_irq);
spin_unlock(&hvm_irq->lock);
}
@@ -140,7 +140,7 @@ void hvm_set_callback_irq_level(void)
{
vioapic_irq_positive_edge(d, gsi);
if ( gsi <= 15 )
- pic_set_irq(&hvm_irq->vpic, gsi, 1);
+ vpic_irq_positive_edge(d, gsi);
}
}
else
@@ -149,7 +149,7 @@ void hvm_set_callback_irq_level(void)
(--hvm_irq->gsi_assert_count[gsi] == 0) )
{
if ( gsi <= 15 )
- pic_set_irq(&hvm_irq->vpic, gsi, 0);
+ vpic_irq_negative_edge(d, gsi);
}
}
@@ -175,12 +175,12 @@ void hvm_set_pci_link_route(struct domain *d, u8 link, u8 isa_irq)
goto out;
if ( old_isa_irq && (--hvm_irq->gsi_assert_count[old_isa_irq] == 0) )
- pic_set_irq(&hvm_irq->vpic, isa_irq, 0);
+ vpic_irq_negative_edge(d, isa_irq);
if ( isa_irq && (hvm_irq->gsi_assert_count[isa_irq]++ == 0) )
{
vioapic_irq_positive_edge(d, isa_irq);
- pic_set_irq(&hvm_irq->vpic, isa_irq, 1);
+ vpic_irq_positive_edge(d, isa_irq);
}
out:
@@ -210,13 +210,13 @@ void hvm_set_callback_gsi(struct domain *d, unsigned int gsi)
if ( old_gsi && (--hvm_irq->gsi_assert_count[old_gsi] == 0) )
if ( old_gsi <= 15 )
- pic_set_irq(&hvm_irq->vpic, old_gsi, 0);
+ vpic_irq_negative_edge(d, old_gsi);
if ( gsi && (hvm_irq->gsi_assert_count[gsi]++ == 0) )
{
vioapic_irq_positive_edge(d, gsi);
if ( gsi <= 15 )
- pic_set_irq(&hvm_irq->vpic, gsi, 1);
+ vpic_irq_positive_edge(d, gsi);
}
out: