QEMU代码分析(2) - 构造函数type_init(x86_cpu_register_types)

本文深入探讨QEMU中的type_init(x86_cpu_register_types)构造函数,解析其调用流程和作用。该函数主要负责将不同类型的CPU信息注册到哈希表中,包括名称、父类型及初始化函数等,为后续CPU类型的查找和初始化提供支持。
摘要由CSDN通过智能技术生成

QEMU代码分析(1)中说了,QEMU中有很多构造函数都定义为module_init()。

但是在在main执行之前,都主要执行了哪些构造函数?都做了哪些初始化操作呢?

今天主要讲和CPU相关的type_init(x86_cpu_register_types).  (target-i386/cpu.c)

 

1.调用关系

 

2.代码分析

2.1  type_register_internal(info)

static TypeImpl *type_register_internal(const TypeInfo *info)
{
    TypeImpl *ti;
    ti = type_new(info); //根据info信息,创建一个TypeImpl对象

    type_table_add(ti); //将TypeTmpl插入一个hash表中(第一次调用会新建hash表)。这个表中就存储了各种不同类型cpu的信息:name, parent,class_init,instance_init...
    return ti;
}

 

2.2 x86_cpu_register_types()

static void x86_cpu_register_types(void)
{
    int i;

    type
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值