aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/hvm/vpic.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-05-20 14:17:15 +0100
committerKeir Fraser <keir.fraser@citrix.com>2008-05-20 14:17:15 +0100
commit509529e99148111a429d9ec39d524e462b80332a (patch)
tree3296cf1ed09add9ff8031cd7a4c52b5a855936ff /xen/arch/x86/hvm/vpic.c
parentcc62c82dd2086625d42e0cacd2901ab686b23922 (diff)
downloadxen-509529e99148111a429d9ec39d524e462b80332a.tar.gz
xen-509529e99148111a429d9ec39d524e462b80332a.tar.bz2
xen-509529e99148111a429d9ec39d524e462b80332a.zip
x86 hvm: Xen interface and implementation for virtual S3
Signed-off-by: Tian Kevin <kevin.tian@intel.com> Signed-off-by: Yu Ke <ke.yu@intel.com> Signed-off-by: Ke Liping <liping.ke@intel.com> Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/arch/x86/hvm/vpic.c')
-rw-r--r--xen/arch/x86/hvm/vpic.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/xen/arch/x86/hvm/vpic.c b/xen/arch/x86/hvm/vpic.c
index a3d6f2d9ca..30486ce935 100644
--- a/xen/arch/x86/hvm/vpic.c
+++ b/xen/arch/x86/hvm/vpic.c
@@ -395,7 +395,7 @@ static int vpic_load(struct domain *d, hvm_domain_context_t *h)
HVM_REGISTER_SAVE_RESTORE(PIC, vpic_save, vpic_load, 2, HVMSR_PER_DOM);
-void vpic_init(struct domain *d)
+void vpic_reset(struct domain *d)
{
struct hvm_hw_vpic *vpic;
@@ -404,13 +404,20 @@ void vpic_init(struct domain *d)
memset(vpic, 0, sizeof(*vpic));
vpic->is_master = 1;
vpic->elcr = 1 << 2;
- register_portio_handler(d, 0x20, 2, vpic_intercept_pic_io);
- register_portio_handler(d, 0x4d0, 1, vpic_intercept_elcr_io);
/* Slave PIC. */
vpic++;
memset(vpic, 0, sizeof(*vpic));
+}
+
+void vpic_init(struct domain *d)
+{
+ vpic_reset(d);
+
+ register_portio_handler(d, 0x20, 2, vpic_intercept_pic_io);
register_portio_handler(d, 0xa0, 2, vpic_intercept_pic_io);
+
+ register_portio_handler(d, 0x4d0, 1, vpic_intercept_elcr_io);
register_portio_handler(d, 0x4d1, 1, vpic_intercept_elcr_io);
}