2. System mode下的机器(machine)管理
QEMU Sytem mode模拟的整个硬件平台,硬件平台最核心的是我们常说的板子,PC上常说是主板,其中包括了主要的元素如CPU、ROM空间、RAM空间等,而这里所说的machine就是对这个机器层次的模拟。
2.1 machine数据结构
qemu提供了通用的QEMUMachine结构用来描述machine,新增一个machine时只需在machine自己的文件中实例化该数据结构。实例化时最重要的是将自己的初始化函数注册在该数据结构中。
1) 通用接口
位置:hw/boards.h
typedef struct QEMUMachine {
const char *name;
const char *alias;
const char *desc; //description
QEMUMachineInitFunc *init; //machine init function,[board]_init
int use_scsi; //use scsi standard
int max_cpus;
unsigned int no_serial:1,
no_parallel:1,
use_virtcon:1,
no_vga:1,
no_floppy:1,
no_cdrom:1,
no_sdcard:1;
int is_default; //mark as default machine
GlobalProperty *compat_props;
struct QEMUMachine *next; //指向machine列表中下一个machine
} QEMUMachine;
2) 接口实例化
例如arm的一板子做如下实例化: