|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 05/16] x86: PIT emulation is common to both PV and HVM
Move the file to x86 common code and change its name to emul-i8254.c.
Put HVM only code under CONFIG_HVM or is_hvm_domain.
Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
---
v3: remove some CONFIG_HVMs, rely on DCE
v2: move the whole file.
---
xen/arch/x86/Makefile | 1 +
xen/arch/x86/{hvm/i8254.c => emul-i8254.c} | 18 +++++++++++++-----
xen/arch/x86/hvm/Makefile | 1 -
3 files changed, 14 insertions(+), 6 deletions(-)
rename xen/arch/x86/{hvm/i8254.c => emul-i8254.c} (97%)
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 2f2ad3adfd..162b0b94c0 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -27,6 +27,7 @@ obj-y += domain.o
obj-bin-y += dom0_build.init.o
obj-y += domain_page.o
obj-y += e820.o
+obj-y += emul-i8254.o
obj-y += extable.o
obj-y += flushtlb.o
obj-$(CONFIG_CRASH_DEBUG) += gdbstub.o
diff --git a/xen/arch/x86/hvm/i8254.c b/xen/arch/x86/emul-i8254.c
similarity index 97%
rename from xen/arch/x86/hvm/i8254.c
rename to xen/arch/x86/emul-i8254.c
index b8ec56f8d3..7f1ded2623 100644
--- a/xen/arch/x86/hvm/i8254.c
+++ b/xen/arch/x86/emul-i8254.c
@@ -379,6 +379,7 @@ static uint32_t pit_ioport_read(struct PITState *pit,
uint32_t addr)
return ret;
}
+#ifdef CONFIG_HVM
void pit_stop_channel0_irq(PITState *pit)
{
if ( !has_vpit(current->domain) )
@@ -438,6 +439,7 @@ static int pit_load(struct domain *d, hvm_domain_context_t
*h)
}
HVM_REGISTER_SAVE_RESTORE(PIT, pit_save, pit_load, 1, HVMSR_PER_DOM);
+#endif
void pit_reset(struct domain *d)
{
@@ -448,9 +450,12 @@ void pit_reset(struct domain *d)
if ( !has_vpit(d) )
return;
- TRACE_0D(TRC_HVM_EMUL_PIT_STOP_TIMER);
- destroy_periodic_time(&pit->pt0);
- pit->pt0.source = PTSRC_isa;
+ if ( is_hvm_domain(d) )
+ {
+ TRACE_0D(TRC_HVM_EMUL_PIT_STOP_TIMER);
+ destroy_periodic_time(&pit->pt0);
+ pit->pt0.source = PTSRC_isa;
+ }
spin_lock(&pit->lock);
@@ -490,8 +495,11 @@ void pit_deinit(struct domain *d)
if ( !has_vpit(d) )
return;
- TRACE_0D(TRC_HVM_EMUL_PIT_STOP_TIMER);
- destroy_periodic_time(&pit->pt0);
+ if ( is_hvm_domain(d) )
+ {
+ TRACE_0D(TRC_HVM_EMUL_PIT_STOP_TIMER);
+ destroy_periodic_time(&pit->pt0);
+ }
}
/* the intercept action for PIT DM retval:0--not handled; 1--handled */
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 5bd38f633f..5e04bc1429 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -10,7 +10,6 @@ obj-y += grant_table.o
obj-y += hpet.o
obj-y += hvm.o
obj-y += hypercall.o
-obj-y += i8254.o
obj-y += intercept.o
obj-y += io.o
obj-y += ioreq.o
--
2.11.0
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |