[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 48/58] qom: TYPE_INFO macro
From: |
Eduardo Habkost |
Subject: |
[PATCH v2 48/58] qom: TYPE_INFO macro |
Date: |
Wed, 19 Aug 2020 20:12:26 -0400 |
Provide a TYPE_INFO macro that can be used to register a TypeInfo
struct declaratively. This will allow QOM type registration to
be 100% declarative.
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
Changes v1 -> v2: none
---
include/qom/object.h | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/include/qom/object.h b/include/qom/object.h
index 1d6a520d35..81bea3b4ed 100644
--- a/include/qom/object.h
+++ b/include/qom/object.h
@@ -655,6 +655,14 @@ struct Object
struct InstanceType##Class { ParentClassType parent_class; };
+#define TYPE_INFO(type_info_var) \
+ static void \
+ register_type_info_##type_info_var(void) \
+ { \
+ type_register_static(&type_info_var); \
+ } \
+ type_init(register_type_info_##type_info_var);
+
/**
* OBJECT_DEFINE_TYPE_EXTENDED:
* @ModuleObjName: the object name with initial caps
@@ -700,12 +708,7 @@ struct Object
.interfaces = (InterfaceInfo[]) { __VA_ARGS__ } , \
}; \
\
- static void \
- module_obj_name##_register_types(void) \
- { \
- type_register_static(&module_obj_name##_info); \
- } \
- type_init(module_obj_name##_register_types);
+ TYPE_INFO(module_obj_name##_info)
/**
* OBJECT_DEFINE_TYPE:
--
2.26.2
- [PATCH v2 41/58] kvm: Move QOM macros to kvm.h, (continued)
- [PATCH v2 41/58] kvm: Move QOM macros to kvm.h, Eduardo Habkost, 2020/08/19
- [PATCH v2 42/58] vfio/pci: Move QOM macros to header, Eduardo Habkost, 2020/08/19
- [PATCH v2 43/58] qom: make object_ref/unref use a void * instead of Object *., Eduardo Habkost, 2020/08/19
- [PATCH v2 45/58] qom: Allow class type name to be specified in OBJECT_DECLARE*, Eduardo Habkost, 2020/08/19
- [PATCH v2 47/58] qom: Make type checker functions accept const pointers, Eduardo Habkost, 2020/08/19
- [PATCH v2 46/58] qom: DECLARE_*_CHECKERS macros, Eduardo Habkost, 2020/08/19
- [PATCH v2 48/58] qom: TYPE_INFO macro,
Eduardo Habkost <=
- [PATCH v2 50/58] [automated] Delete duplicate QOM typedefs, Eduardo Habkost, 2020/08/19
- [PATCH v2 44/58] qom: provide convenient macros for declaring and defining types, Eduardo Habkost, 2020/08/19
- [PATCH v2 54/58] [semi-automated] Use DECLARE_*CHECKER* when possible (--force mode), Eduardo Habkost, 2020/08/19
- [PATCH v2 56/58] [automated] Use OBJECT_DECLARE_SIMPLE_TYPE when possible, Eduardo Habkost, 2020/08/19