.instance_init = my_init, .class_init = my_class_init, }; type_register_static(&my_class); 1. 2. 3. 4. 5. 6. 7. 8. 9. 一般class_size可以省略,对象类型直给出大小即可,而不用真的给一个类型,因为qom在做对象初始化的时候只申请一块内存空间,至于这块内存是什么类型的对象全由之后自己进...
.instance_init = x86_cpu_initfn, .abstract = true, .class_size = sizeof(X86CPUClass), .class_init = x86_cpu_common_class_init, }; x86_cpu类型注册: |-type_init //初始化的时候注册,main函数运行前 |-x86_cpu_register_types |-x86_cpu_type_info //class_init类似构造函数 |-x86_cpu_co...
}staticvoidmyhw_instance_init(Object *obj){ }staticconstTypeInfo myhw_info = { .name = TYPE_MYHW, .parent = TYPE_PCI_DEVICE, .instance_size =sizeof(MYHWState), .class_init = myhw_class_init, .instance_init = myhw_instance_init, .interfaces = (InterfaceInfo[]) { { INTERFACE_PCI...
staticvoidkvm_accel_class_init(ObjectClass *oc,void*data){AccelClass *ac = ACCEL_CLASS(oc);ac->name ="KVM";ac->init_machine = kvm_init;...} staticconstTypeInfo kvm_accel_type = {.name = TYPE_KVM_ACCEL,.parent = TYPE_ACCEL,.instance_init = kvm_accel_instance_init,.class_init = ...
4.2.2 instance_init 类初始化结束后,开始对象的创建: 针对Virtio-Net-PCI的实例化比较简单,作为代理,负责将它的后继对象初始化,也就是本文的前端设备Virtio-Net; 4.2.3 realize realize的调用,比较绕,简单来说,它的类继承关系中存在多个realize的函数指针,最终会从父类开始执行,一直调用到子类,而这些函数指针的...
4.2.2 instance_init 类初始化结束后,开始对象的创建:针对Virtio-Net-PCI的实例化比较简单,作为代理,负责将它的后继对象初始化,也就是本文的前端设备Virtio-Net; 4.2.3 realizerealize的调用,比较绕,简单来说,它的类继承关系中存在多个realize的函数指针,最终会从父类开始执行,一直调用到子类,而这些函数指针的初始...
.class_init =vfio_pci_dev_class_init, .instance_init = vfio_instance_init, .instance_finalize = vfio_instance_finalize, .interfaces = (InterfaceInfo[]) { { INTERFACE_PCIE_DEVICE }, { INTERFACE_CONVENTIONAL_PCI_DEVICE }, { } },
4.2.2 instance_init 类初始化结束后,开始对象的创建: 针对Virtio-Net-PCI的实例化比较简单,作为代理,负责将它的后继对象初始化,也就是本文的前端设备Virtio-Net; 4.2.3 realize realize的调用,比较绕,简单来说,它的类继承关系中存在多个realize的函数指针,最终会从父类开始执行,一直调用到子类,而这些函数指针的...
4.2.2 instance_init 类初始化结束后,开始对象的创建: 针对Virtio-Net-PCI的实例化比较简单,作为代理,负责将它的后继对象初始化,也就是本文的前端设备Virtio-Net; 4.2.3 realize realize的调用,比较绕,简单来说,它的类继承关系中存在多个realize的函数指针,最终会从父类开始执行,一直调用到子类,而这些函数指针的...
.instance_init = strng_instance_init, .class_init = strng_class_init, }; 定义中包含这个类的 名称name 父类parent 实例的大小 instance_size 是否是抽象类 abstract 初始化函数 class_init 代码底部有typeinit函数,可以看到这个函数实际是执行的registermodule_init,由于有`__attribute((constructor))`关键字,...