[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 18/22] qidl: qidl.h
From: |
Michael Roth |
Subject: |
[Qemu-devel] [PATCH 18/22] qidl: qidl.h |
Date: |
Tue, 24 Jul 2012 12:20:50 -0500 |
Signed-off-by: Michael Roth <address@hidden>
---
qidl.h | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
create mode 100644 qidl.h
diff --git a/qidl.h b/qidl.h
new file mode 100644
index 0000000..75ae5af
--- /dev/null
+++ b/qidl.h
@@ -0,0 +1,58 @@
+/*
+ * QEMU IDL Macros/stubs
+ *
+ * See docs/qidl.txt for usage information.
+ *
+ * Copyright IBM, Corp. 2012
+ *
+ * Authors:
+ * Michael Roth <address@hidden>
+ *
+ * This work is licensed under the terms of the GNU GPLv2.
+ * See the COPYING file in the top-level directory.
+ *
+ */
+
+#ifndef QIDL_H
+#define QIDL_H
+
+#include "qapi/qapi-visit-core.h"
+#include "qemu/object.h"
+#include "hw/qdev-properties.h"
+
+#ifdef QIDL_GEN
+
+/* we pass the code through the preprocessor with QIDL_GEN defined to parse
+ * structures as they'd appear after preprocessing, and use the following
+ * definitions mostly to re-insert the initial macros/annotations so they
+ * stick around for the parser to process
+ */
+#define QIDL(...) QIDL(__VA_ARGS__)
+#define QIDL_START(...) QIDL_START(__VA_ARGS__)
+#define QIDL_END(...) QIDL_END(__VA_ARGS__)
+
+#define QIDL_VISIT_TYPE(...)
+#define QIDL_SCHEMA_ADD_LINK(...)
+#define QIDL_PROPERTIES(...)
+
+#else /* !QIDL_GEN */
+
+#define QIDL(...)
+#define QIDL_START(name, ...)
+#define QIDL_END(name) \
+ static struct { \
+ void (*visitor)(Visitor *, struct name **, const char *, Error **); \
+ const char *schema_json_text; \
+ Object *schema_obj; \
+ Property *properties; \
+ } qidl_data_##name;
+
+#define QIDL_VISIT_TYPE(name, v, s, f, e) qidl_data_##name.visitor(v, s, f, e)
+#define QIDL_SCHEMA_ADD_LINK(name, obj, path, errp) \
+ object_property_add_link(obj, path, "container", \
+ &qidl_data_##name.schema_obj, errp);
+#define QIDL_PROPERTIES(name) qidl_data_##name.properties;
+
+#endif /* QIDL_GEN */
+
+#endif
--
1.7.9.5
- Re: [Qemu-devel] [PATCH 11/22] qapi: add open-coded visitor for struct tm types, (continued)
- [Qemu-devel] [PATCH 13/22] module additions for schema registration, Michael Roth, 2012/07/24
- [Qemu-devel] [PATCH 15/22] qidl: Add documentation, Michael Roth, 2012/07/24
- [Qemu-devel] [PATCH 14/22] qdev: move Property-related declarations to qdev-properties.h, Michael Roth, 2012/07/24
- [Qemu-devel] [PATCH 20/22] qemu-timer: add visit_type_QEMUTimer, Michael Roth, 2012/07/24
- [Qemu-devel] [PATCH 19/22] qidl: unit tests, Michael Roth, 2012/07/24
- [Qemu-devel] [PATCH 22/22] cirrus_vga: add QIDL annotations, Michael Roth, 2012/07/24
- [Qemu-devel] [PATCH 16/22] qidl: parser, initial import from qc.git, Michael Roth, 2012/07/24
- [Qemu-devel] [PATCH 17/22] qidl: codegen, initial commit, Michael Roth, 2012/07/24
- [Qemu-devel] [PATCH 18/22] qidl: qidl.h,
Michael Roth <=
- [Qemu-devel] [PATCH 21/22] rtc: add QIDL annotations, Michael Roth, 2012/07/24