summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--hw/hw.h7
-rw-r--r--hw/ptimer.c21
2 files changed, 28 insertions, 0 deletions
diff --git a/hw/hw.h b/hw/hw.h
index f3cc98171a..0ae4000f20 100644
--- a/hw/hw.h
+++ b/hw/hw.h
@@ -324,6 +324,7 @@ extern const VMStateInfo vmstate_info_uint32;
 extern const VMStateInfo vmstate_info_uint64;
 
 extern const VMStateInfo vmstate_info_timer;
+extern const VMStateInfo vmstate_info_ptimer;
 extern const VMStateInfo vmstate_info_buffer;
 
 #define type_check_array(t1,t2,n) ((t1(*)[n])0 - (t2*)0)
@@ -470,6 +471,12 @@ extern const VMStateDescription vmstate_pci_device;
 #define VMSTATE_TIMER(_f, _s)                                         \
     VMSTATE_TIMER_V(_f, _s, 0)
 
+#define VMSTATE_PTIMER_V(_f, _s, _v)                                  \
+    VMSTATE_POINTER(_f, _s, _v, vmstate_info_ptimer, ptimer_state *)
+
+#define VMSTATE_PTIMER(_f, _s)                                        \
+    VMSTATE_PTIMER_V(_f, _s, 0)
+
 #define VMSTATE_UINT32_ARRAY_V(_f, _s, _n, _v)                        \
     VMSTATE_ARRAY(_f, _s, _n, _v, vmstate_info_uint32, uint32_t)
 
diff --git a/hw/ptimer.c b/hw/ptimer.c
index f1994bd2b1..a4343b67c6 100644
--- a/hw/ptimer.c
+++ b/hw/ptimer.c
@@ -212,6 +212,27 @@ void qemu_get_ptimer(QEMUFile *f, ptimer_state *s)
     qemu_get_timer(f, s->timer);
 }
 
+static int get_ptimer(QEMUFile *f, void *pv, size_t size)
+{
+    ptimer_state *v = pv;
+
+    qemu_get_ptimer(f, v);
+    return 0;
+}
+
+static void put_ptimer(QEMUFile *f, const void *pv, size_t size)
+{
+    ptimer_state *v = (void *)pv;
+
+    qemu_put_ptimer(f, v);
+}
+
+const VMStateInfo vmstate_info_ptimer = {
+    .name = "ptimer",
+    .get  = get_ptimer,
+    .put  = put_ptimer,
+};
+
 ptimer_state *ptimer_init(QEMUBH *bh)
 {
     ptimer_state *s;