QEMU 新增QMP&HMP指令【原文阅读】

0x0 QEMU原文

https://www.qemu.org/docs/master/devel/writing-monitor-commands.html

0x1

0x11 How to write monitor commands

本文档是关于如何使用QAPI框架和HMP命令编写新的QMP命令的分步指南。
本文不讨论QMP协议级别的细节,也不深入讨论QAPI框架的实现。
有关QAPI框架的深入介绍,请参考
关于QMP协议,请参考

新命令只能在QMP中实现。新的HMP命令应该在QMP的基础上实现。
典型的HMP命令包装在等效的QMP命令周围,但从QMP构建块构建的HMP方便命令也很好。
长期目标是使所有现有的HMP命令都符合此要求,以便将HMP与QEMU的内部完全隔离。
请参阅编写返回非结构化文本的调试辅助工具一节,了解有关传统上仅为HMP的命令的进一步指导。

0x12 Overview

一般来说,为了编写一个新的QMP命令,应该采取以下步骤:
1、在适当的QAPI模式模块中定义命令和它需要的任何类型。
2、编写QMP命令本身,这是一个常规的C函数。最好,该命令应该由某个QEMU子系统导出。但也可以将其添加到monitor/qmp-cmds.c文件中
3、此时可以在QMP协议下测试命令。
4、这不是必需的,只有当在HMP中具有该功能确实有意义时,才应该这样做。

HMP命令是通过QMP命令来实现的,下面的部分将演示上面的每个步骤。我们将从非常简单的开始,并随着我们的进展而变得更加复杂。

0x13 Testing

对于下一节中的所有示例,测试设置都是相同的,如下所示。
首先,QEMU应该像这样启动:

# qemu-system-TARGET [...] \
    -chardev socket,id=qmp,port=4444,host=localhost,server=on \
    -mon chardev=qmp,mode=control,pretty=on

然后,在另一个终端中:

$ telnet localhost 4444
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
{
   
    "QMP": {
   
        "version": {
   
            "qemu": {
   
                "micro": 50,
                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值