欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

qemu-参数解析

程序员文章站 2022-07-07 20:11:22
qemu参数解析工作分为两部分1: 参数合法性验证。2 参数名称和值的解析。参数合法性验证主要是预先声明支持的参数信息,这些信息使用QEMUOption数据结构进行描述, 如下:typedef struct QEMUOption { const char *name; int flags; int index; uint32_t arch_mask;} QEMUOption;name代表参数名称, 比如-m 512 , m就表示这个name。flags目前只...

qemu-参数解析启动命令:
gdb –args /usr/bin/bin/qemu-system-x86_64 linux-0.2.img -m 512 -enable-kvm -smp 1,sockets=1,cores=1,threads=1 -realtime mlock=off -device ivshmem,shm=ivshmem,size=1 -device ivshmem,shm=ivshmem1,size=2

解析后的数据结构如下:

qemu-参数解析

struct QemuOptsList {
    const char *name;
    const char *implied_opt_name;
    bool merge_lists;  /* Merge multiple uses of option into a single list? */
    QTAILQ_HEAD(, QemuOpts) head;
    QemuOptDesc desc[];
};

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


struct QemuOpt {
    char *name;
    char *str;

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

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

主要api都在util/qemu-option.c 文件

参考: http://terenceli.github.io/%E6%8A%80%E6%9C%AF/2015/09/26/qemu-options

本文地址:https://blog.csdn.net/woai110120130/article/details/107169226