QEMU源码全解析4 —— QEMU参数解析(4)

news2024/10/7 14:30:46

接前一篇文章:QEMU源码全解析3 —— QEMU参数解析(3)

本文内容参考:

《趣谈Linux操作系统》 —— 刘超,极客时间

《QEMU/KVM》源码解析与应用 —— 李强,机械工业出版社

特此致谢!

本回讲解QemuOpt结构的具体定义以及QemuOptsList、QemuOpt、QemuOpts等结构之间的关系。

前文提到,每个QEMU子选项由一个QemuOpt结构表示。QemuOpt结构在include/qemu/option_int.h中定义,代码如下:

struct QemuOpt {
    char *name;
    char *str;

    const QemuOptDesc *desc;
    union {
        bool boolean;
        uint64_t uint;
    } value;

    QemuOpts     *opts;
    QTAILQ_ENTRY(QemuOpt) next;
};

name表示子选项的字符串表示;str表示对应的值。

QEMUOptsList并不和QemuOpt直接联系,中间还有一层QemuOpts。从名字上也能看出来,QemuOpts代表的是多个QemuOpt。为什么需要QemuOpts?这是因为QEMU命令行可以指定创建两个相同的设备,此时这类设备都在QemuOptList链表上,这是两个独立的QemuOpts,每个QemuOpts有自己的QemuOpt链表。QemuOpts结构的定义也在include/qemu/option_int.h中(这个文件中就struct QemuOpt和struct QemuOpts两个定义),代码如下:

struct QemuOpts {
    char *id;
    QemuOptsList *list;
    Location loc;
    QTAILQ_HEAD(, QemuOpt) head;
    QTAILQ_ENTRY(QemuOpts) next;
};

head是QemuOpts下的QemuOpt链表头;next用来连接相同QemuOptsList下同一种QemuOpts。

QemuOptsList、QemuOpts与QemuOpt三者的关系如下图所示(注:图中最上边一行的qemu_smp_opts在新版本中已经不存在了):

在这里插入图片描述

QemuOptsList、QemuOpts、QemuOpt三者关系图

本文就介绍到这里,下一篇文章会以-device参数项为例简单分析参数的处理过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/743766.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaWeb学生考勤签到请假系统

一、项目简介 本项目是一套JavaWeb学生考勤签到请假系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,ecl…

生成图片验证码-Google Kaptcha

CaptchaImage生成 验证码 图片 captchaProducerMath.createText() 类似 captchaProducer.createText() 混合带字符的char如下 从若依学的,先看他的引用方式 package com.ruoyi.web.controller.common;import java.awt.image.BufferedImage; import java.io.IOExcept…

【导航算路(RP)模块功能】

什么是RP Route Production/Route Planning 就是在给定自车位置和目的地的情况下,按照用户设定的不同条件,计算出一条或多条从自车位置到目的地的花费(根据用户的设定,可能是指时间,费用等)最少的最优路以供用户使用。 为什么要…

【新版系统架构】第十七章-通信系统架构设计理论与实践

软考-系统架构设计师知识点提炼-系统架构设计师教程(第2版) 第一章-绪论第二章-计算机系统基础知识(一)第二章-计算机系统基础知识(二)第三章-信息系统基础知识第四章-信息安全技术基础知识第五章-软件工程…

ColddBoxEasy_EN靶机详解

ColddBoxEasy_EN靶机详解 上来扫描ip,找到ip后对这个ip进行一个单独的扫描。发现ssh开到4512端口上了,这里其实没用上,给我们挖的坑。 打开网页左下角有个login登陆,是一个wordpress搭建的网站,扫描一下用户名&#x…

U盘文件恢复,简单4步快速恢复文件!

U盘中删除的文件还能恢复吗?从理论上来看,u盘删除的文件其实还没有永久的被删除,但是这取决于多种因素。如果我们及时在新数据写入前对u盘中的数据进行恢复,那么恢复的可能性还是比较大的。 那么可能有朋友会好奇:u盘文…

开源LLM大模型微调简明教程

我相信你们大多数人都听说过 ChatGPT 并尝试过它来回答你的问题! 有没有想过幕后发生了什么? 它由 Open AI 开发的大型语言模型 GPT-3 提供支持。 这些大型语言模型(通常称为LLM)开启了自然语言处理的许多可能性。 推荐&#xff1…

datagrip 更改表名报错

我就想改个表名报错 报错提示 Error Refactoring cannot be performed File D:\datagrip\lib\platform-impl.jar!\standardSchemas\xhtml1-frameset.xsd is located in a read-only container. 后面还有一大堆的错误,当时没有截图 试探: 注:再次之前我已经用use选择…

VMWare在Ubuntu系统下无法启动问题

项目场景: 在Ubuntu系统安装了VMWare虚拟机,已开始还能打开VMWare,能进入正常VM界面。最近怎么进入不了VM主界面。启动虚拟机发现报错:Unable to install all modules. See ****; 问题描述 1、启动VMware:提示内核需…

c++中的时间处理(1)localtime、localtime_r和localtime_s

c中对时间的处理有好几个函数,很多C程序员可能用过,但不一定完全搞得清楚。这里,我先讲解下:localtime、localtime_r和localtime_s的使用 1、localtime localtime用来获取系统时间,精度为秒。 struct tm *localtime…

路径规划算法:基于鹰栖息优化的路径规划算法- 附代码

路径规划算法:基于鹰栖息优化的路径规划算法- 附代码 文章目录 路径规划算法:基于鹰栖息优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法…

动态规划16题

目录 91. 解码方法 1646. 获取生成数组中的最大值 1043. 分隔数组以得到最大和 139. 单词拆分 1277. 统计全为 1 的正方形子矩阵 剑指 Offer II 091. 粉刷房子 剑指 Offer 42. 连续子数组的最大和 300. 最长递增子序列 方案一 方案二 贪心,二分 1027. …

CSS-Grid网格布局笔记

文章目录 父元素属性 基本使用:display 、grid-template-rows、grid-template-columns 合并单元格:grid-template-areas 间距:gap 网格对齐 - item对齐 网格对齐 - 内容对齐 显示单元格与隐式单元格 - 自适应布局 子元素属性 修改子元素起始与…

Visual Studio 2019 + Git 提交命令释解:全部提交、全部提交并推送、全部提交并同步

Visual Studio 2019 Git 提交命令释解:全部提交、全部提交并推送、全部提交并同步。 一、操作命令理解: A、全部提交:即把本地工作区的修改(包括添加、删除)提交到本地仓库。 B、全部提交并推送:即把本地…

java: 程序包sun.misc不存在

报错java: 程序包sun.misc不存在 解决办法:降JDK版本 切个1.8即可

IMX6ULL-Linux6.3.5版本网卡调试深入讲解

目录 一、先来了解一下imx6ull的网络节点的如何定义的 二、使用默认网卡配置 三、查找eth1对应FEC1复位失败原因 1.修改smsc_phy_reset函数 2.ENET1和ENET2的TX_CLK引脚复位寄存器的SION位为1 3.读取phy寄存器 4.使用正点原子给的内核和设备树文件 5.使用linux-5.19版本…

python量化实用版教程 初级

目录 前言 第一部分 了解python Python特点 Python简单代码示例 方式一 方式二 Python三方库的安装以pandas为例 操作步骤 以numpy为例认识三方库及其使用 import导入三方库 关于NumPy 了解Numpy 数组 了解NumPy 统计函数 python引入其他py文件或模块 引用其他py文件的方式 …

vue+vant2完美实现香奈儿移动端商城网站

目录 一、前言 二、项目效果图及实现关键点 1.首页 2.分类 3.购物车 4.我的 5.登录、注册 6.商品详情 7.订单结算,动态生成订单 8.订单 9.收货地址 10. 商品搜索 三、代码关键 1.数据分离维护 2.购物车实现完整代码 四、总结 五、其他作品集合 一、前言 项…

vs2022+qt+opencv+pcl开发环境配置摸索记录

一、安装VS2022 二、安装opencv 此处我安装的是opencv452,可自行选择其他版本; 下载安装opencv链接: Releases - OpenCV 三、安装pcl 参考链接:http://t.csdn.cn/J4exj 四、安装QT6.5.1 1、官方下载地址: https://download…

element-ui 子组件表格中选中数据,回显到父组件,并显示选中多少条

当子组件选中&#xff0c;但并未保存并未与数据库交互的情况下&#xff0c;关闭了页面&#xff0c;再次打开子组件弹窗需要回显之前选中的数据 //子组件 <el-tablehighlight-current-rowv-loading"loading":data"tableData":size"tableSize"…