Patchwork [17/28] qapi: add open-coded visitors for struct tm/Int128 types

login
register
mail settings
Submitter Michael Roth
Date Oct. 31, 2012, 10:36 p.m.
Message ID <1351722972-17801-18-git-send-email-mdroth@linux.vnet.ibm.com>
Download mbox | patch
Permalink /patch/196057/
State New
Headers show

Comments

Michael Roth - Oct. 31, 2012, 10:36 p.m.
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
---
 qapi/Makefile.objs     |    1 +
 qapi/misc-qapi-visit.c |   37 +++++++++++++++++++++++++++++++++++++
 qapi/misc-qapi-visit.h |   16 ++++++++++++++++
 3 files changed, 54 insertions(+)
 create mode 100644 qapi/misc-qapi-visit.c
 create mode 100644 qapi/misc-qapi-visit.h

Patch

diff --git a/qapi/Makefile.objs b/qapi/Makefile.objs
index 5f5846e..7604b52 100644
--- a/qapi/Makefile.objs
+++ b/qapi/Makefile.objs
@@ -1,3 +1,4 @@ 
 qapi-obj-y = qapi-visit-core.o qapi-dealloc-visitor.o qmp-input-visitor.o
 qapi-obj-y += qmp-output-visitor.o qmp-registry.o qmp-dispatch.o
 qapi-obj-y += string-input-visitor.o string-output-visitor.o opts-visitor.o
+qapi-obj-y += misc-qapi-visit.o
diff --git a/qapi/misc-qapi-visit.c b/qapi/misc-qapi-visit.c
new file mode 100644
index 0000000..c3e41e3
--- /dev/null
+++ b/qapi/misc-qapi-visit.c
@@ -0,0 +1,37 @@ 
+/*
+ * Useful visitor type implementations for QAPI users
+ * that we don't have any other logical place to stick
+ *
+ * Copyright IBM, Corp. 2012
+ *
+ * Authors:
+ *  Michael Roth   <mdroth@us.ibm.com>
+ *
+ * This work is licensed under the terms of the GNU GPLv2 or later.
+ * See the COPYING file in the top-level directory.
+ *
+ */
+#include <time.h>
+#include "qapi/qapi-visit-core.h"
+#include "qapi/misc-qapi-visit.h"
+#include "int128.h"
+
+void visit_type_tm(Visitor *v, struct tm *obj, const char *name, Error **errp)
+{
+    visit_start_struct(v, NULL, "struct tm", name, 0, errp);
+    visit_type_int32(v, &obj->tm_year, "tm_year", errp);
+    visit_type_int32(v, &obj->tm_mon, "tm_mon", errp);
+    visit_type_int32(v, &obj->tm_mday, "tm_mday", errp);
+    visit_type_int32(v, &obj->tm_hour, "tm_hour", errp);
+    visit_type_int32(v, &obj->tm_min, "tm_min", errp);
+    visit_type_int32(v, &obj->tm_sec, "tm_sec", errp);
+    visit_end_struct(v, errp);
+}
+
+void visit_type_Int128(Visitor *v, Int128 **obj, const char *name, Error **errp)
+{
+    visit_start_struct(v, NULL, "Int128", name, sizeof(Int128), errp);
+    visit_type_uint64(v, &(*obj)->lo, "lo", errp);
+    visit_type_int64(v, &(*obj)->hi, "hi", errp);
+    visit_end_struct(v, errp);
+}
diff --git a/qapi/misc-qapi-visit.h b/qapi/misc-qapi-visit.h
new file mode 100644
index 0000000..fa4ff9e
--- /dev/null
+++ b/qapi/misc-qapi-visit.h
@@ -0,0 +1,16 @@ 
+/*
+ * Useful visitor type declarations for QAPI users
+ *
+ * Copyright IBM, Corp. 2012
+ *
+ * Authors:
+ *  Michael Roth   <mdroth@us.ibm.com>
+ *
+ * This work is licensed under the terms of the GNU GPLv2 or later.
+ * See the COPYING file in the top-level directory.
+ *
+ */
+#include "int128.h"
+
+void visit_type_tm(Visitor *m, struct tm *obj, const char *name, Error **errp);
+void visit_type_Int128(Visitor *v, Int128 **obj, const char *name, Error **errp);