[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v2 6/6] suspend: make rtc alarm wakeup the guest.



Add a 'wakeup' property to the mc146818rtc.  It is on by default.
When enabled the rtc will wake up the guest when the alarm fires.

Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx>
---
 hw/mc146818rtc.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/hw/mc146818rtc.c b/hw/mc146818rtc.c
index ae4e16c..039c603 100644
--- a/hw/mc146818rtc.c
+++ b/hw/mc146818rtc.c
@@ -86,6 +86,7 @@ typedef struct RTCState {
     uint8_t cmos_index;
     struct tm current_tm;
     int32_t base_year;
+    uint32_t wakeup;
     qemu_irq irq;
     qemu_irq sqw_irq;
     int it_shift;
@@ -431,6 +432,9 @@ static void rtc_update_second2(void *opaque)
             ((s->cmos_data[RTC_HOURS_ALARM] & 0xc0) == 0xc0 ||
              rtc_from_bcd(s, s->cmos_data[RTC_HOURS_ALARM]) == 
s->current_tm.tm_hour)) {
 
+            if (s->wakeup) {
+                qemu_system_wakeup_request();
+            }
             s->cmos_data[RTC_REG_C] |= 0xa0;
             qemu_irq_raise(s->irq);
         }
@@ -714,6 +718,7 @@ static ISADeviceInfo mc146818rtc_info = {
     .init          = rtc_initfn,
     .qdev.props    = (Property[]) {
         DEFINE_PROP_INT32("base_year", RTCState, base_year, 1980),
+        DEFINE_PROP_UINT32("wakeup",   RTCState, wakeup,    1),
         DEFINE_PROP_END_OF_LIST(),
     }
 };
-- 
1.7.1


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.