qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2 3/5] hpet 'driftfix': add fields to HPETTimer


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH v2 3/5] hpet 'driftfix': add fields to HPETTimer and VMStateDescription
Date: Fri, 08 Apr 2011 10:47:38 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.14) Gecko/20110223 Lightning/1.0b2 Thunderbird/3.1.8

On 04/08/2011 10:20 AM, Ulrich Obergfell wrote:
Signed-off-by: Ulrich Obergfell<address@hidden>
---
  hw/hpet.c |   14 ++++++++++++--
  1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/hw/hpet.c b/hw/hpet.c
index 45847ed..c150da5 100644
--- a/hw/hpet.c
+++ b/hw/hpet.c
@@ -55,6 +55,11 @@ typedef struct HPETTimer {  /* timers */
      uint8_t wrap_flag;      /* timer pop will indicate wrap for one-shot 
32-bit
                               * mode. Next pop will be actual timer expiration.
                               */
+    uint64_t saved_period;
+    uint64_t ticks_not_accounted;
+    uint32_t irqs_to_inject;
+    uint32_t irq_rate;
+    uint32_t divisor;
  } HPETTimer;

  typedef struct HPETState {
@@ -248,7 +253,7 @@ static int hpet_post_load(void *opaque, int version_id)

  static const VMStateDescription vmstate_hpet_timer = {
      .name = "hpet_timer",
-    .version_id = 1,
+    .version_id = 3,

Why jump from 1 to 3?

      .minimum_version_id = 1,
      .minimum_version_id_old = 1,
      .fields      = (VMStateField []) {
@@ -258,6 +263,11 @@ static const VMStateDescription vmstate_hpet_timer = {
          VMSTATE_UINT64(fsb, HPETTimer),
          VMSTATE_UINT64(period, HPETTimer),
          VMSTATE_UINT8(wrap_flag, HPETTimer),
+        VMSTATE_UINT64_V(saved_period, HPETTimer, 3),
+        VMSTATE_UINT64_V(ticks_not_accounted, HPETTimer, 3),
+        VMSTATE_UINT32_V(irqs_to_inject, HPETTimer, 3),
+        VMSTATE_UINT32_V(irq_rate, HPETTimer, 3),
+        VMSTATE_UINT32_V(divisor, HPETTimer, 3),

We ought to be able to use a subsection keyed off of whether any ticks are currently accumulated, no?

Regards,

Anthony Liguori

          VMSTATE_TIMER(qemu_timer, HPETTimer),
          VMSTATE_END_OF_LIST()
      }
@@ -265,7 +275,7 @@ static const VMStateDescription vmstate_hpet_timer = {

  static const VMStateDescription vmstate_hpet = {
      .name = "hpet",
-    .version_id = 2,
+    .version_id = 3,
      .minimum_version_id = 1,
      .minimum_version_id_old = 1,
      .pre_save = hpet_pre_save,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]