From c962247883ffd957dd7f3bccb519803e2775ced2 Mon Sep 17 00:00:00 2001 From: Anthony PERARD Date: Tue, 5 Oct 2010 16:40:22 +0100 Subject: xen: Add Xen hypercall for sleep state in the cmos_s3 callback. Signed-off-by: Anthony PERARD Signed-off-by: Alexander Graf --- hw/pc_piix.c | 6 +++++- hw/xen.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'hw') diff --git a/hw/pc_piix.c b/hw/pc_piix.c index 62cdf71..9a22a8a 100644 --- a/hw/pc_piix.c +++ b/hw/pc_piix.c @@ -179,7 +179,11 @@ static void pc_init1(ram_addr_t ram_size, if (pci_enabled && acpi_enabled) { i2c_bus *smbus; - cmos_s3 = qemu_allocate_irqs(pc_cmos_set_s3_resume, rtc_state, 1); + if (!xen_enabled()) { + cmos_s3 = qemu_allocate_irqs(pc_cmos_set_s3_resume, rtc_state, 1); + } else { + cmos_s3 = qemu_allocate_irqs(xen_cmos_set_s3_resume, rtc_state, 1); + } smi_irq = qemu_allocate_irqs(pc_acpi_smi_interrupt, first_cpu, 1); /* TODO: Populate SPD eeprom data. */ smbus = piix4_pm_init(pci_bus, piix3_devfn + 3, 0xb100, diff --git a/hw/xen.h b/hw/xen.h index 6245b38..d435ca0 100644 --- a/hw/xen.h +++ b/hw/xen.h @@ -43,6 +43,7 @@ static inline int xen_mapcache_enabled(void) int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num); void xen_piix3_set_irq(void *opaque, int irq_num, int level); void xen_piix_pci_write_config_client(uint32_t address, uint32_t val, int len); +void xen_cmos_set_s3_resume(void *opaque, int irq, int level); qemu_irq *xen_interrupt_controller_init(void); -- cgit v1.1