提交 3dde52d2 编写于 作者: A Anthony Liguori

qdev: add class_init to DeviceInfo

Since we are still dynamically creating TypeInfo, we need to chain the
class_init function in order to be able to make use of it within subclasses of
TYPE_DEVICE.

This will disappear once we register TypeInfos directly.
Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
上级 3cc90eb2
...@@ -54,6 +54,10 @@ static void qdev_subclass_init(ObjectClass *klass, void *data) ...@@ -54,6 +54,10 @@ static void qdev_subclass_init(ObjectClass *klass, void *data)
/* Poison to try to detect future uses */ /* Poison to try to detect future uses */
dc->info->reset = NULL; dc->info->reset = NULL;
if (dc->info->class_init) {
dc->info->class_init(klass, data);
}
} }
DeviceInfo *qdev_get_info(DeviceState *dev) DeviceInfo *qdev_get_info(DeviceState *dev)
......
...@@ -231,6 +231,11 @@ struct DeviceInfo { ...@@ -231,6 +231,11 @@ struct DeviceInfo {
/* device state */ /* device state */
const VMStateDescription *vmsd; const VMStateDescription *vmsd;
/**
* See #TypeInfo::class_init()
*/
void (*class_init)(ObjectClass *klass, void *data);
/* Private to qdev / bus. */ /* Private to qdev / bus. */
qdev_initfn init; qdev_initfn init;
qdev_event unplug; qdev_event unplug;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册