mirror of https://gitee.com/openkylin/qemu.git
monitor: Add port write command
Useful for testing hardware emulations or manipulating its state to stress guest drivers. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
ef74679a81
commit
f114784f69
19
monitor.c
19
monitor.c
|
@ -1185,6 +1185,25 @@ static void do_ioport_read(Monitor *mon, int count, int format, int size,
|
||||||
suffix, addr, size * 2, val);
|
suffix, addr, size * 2, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void do_ioport_write(Monitor *mon, int count, int format, int size,
|
||||||
|
int addr, int val)
|
||||||
|
{
|
||||||
|
addr &= IOPORTS_MASK;
|
||||||
|
|
||||||
|
switch (size) {
|
||||||
|
default:
|
||||||
|
case 1:
|
||||||
|
cpu_outb(NULL, addr, val);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
cpu_outw(NULL, addr, val);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
cpu_outl(NULL, addr, val);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void do_boot_set(Monitor *mon, const char *bootdevice)
|
static void do_boot_set(Monitor *mon, const char *bootdevice)
|
||||||
{
|
{
|
||||||
int res;
|
int res;
|
||||||
|
|
|
@ -306,6 +306,11 @@ STEXI
|
||||||
Read I/O port.
|
Read I/O port.
|
||||||
ETEXI
|
ETEXI
|
||||||
|
|
||||||
|
{ "o", "/ii", do_ioport_write,
|
||||||
|
"/fmt addr value", "I/O port write" },
|
||||||
|
STEXI
|
||||||
|
Write to I/O port.
|
||||||
|
ETEXI
|
||||||
|
|
||||||
{ "sendkey", "si?", do_sendkey,
|
{ "sendkey", "si?", do_sendkey,
|
||||||
"keys [hold_ms]", "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)" },
|
"keys [hold_ms]", "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)" },
|
||||||
|
|
Loading…
Reference in New Issue