TYPE_CPU
Qemu中所有CPU类型都有一个父类TYPE_CPU。所以研究这个结构是开展后续研究的基础。
继承关系
按照老规矩,我们还是先看一下类型的继承层次关系。
TYPE_OBJECT
+-------------------------------+
|class_init | = object_class_init
| |
|instance_size | = sizeof(Object)
+-------------------------------+
TYPE_DEVICE
+-------------------------------+
|class_size | = sizeof(DeviceClass)
|class_init | = device_class_init
| |
|instance_size | = sizeof(Object)
|instance_init | = device_initfn
|instance_finalize | = device_finalize
| |
|realize | = cpu_common_realizefn
+-------------------------------+
TYPE_CPU
+-------------------------------+
|class_size | = sizeof(CPUClass)
|class_init | = cpu_class_init
| |
|instance_size | = sizeof(CPUState)
|instance_init | = cpu_common_initfn
|instance_finalize | = cpu_common_finalize
+-------------------------------+
可以看到,TYPE_CPU是TYPE_DEVICE的子类,也就是CPU类型的初始化遵从Device类型初始化的方法。
大家可以看到realize函数也被我着重标出了。
初始化
针对TYPE_CPU,我们能看到的初始化过程就是普通的类型初始化的流程,以及Device类型realize时所做的工作。
具体的工作流程将根据不同的CPU类型而有所不同,还需要按照不同的CPU和Machine类型来处理。
Last updated
Was this helpful?