aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--monitor.c19
-rw-r--r--qemu-monitor.hx5
2 files changed, 24 insertions, 0 deletions
diff --git a/monitor.c b/monitor.c
index c3ef099bda..e38c86e1a3 100644
--- a/monitor.c
+++ b/monitor.c
@@ -1185,6 +1185,25 @@ static void do_ioport_read(Monitor *mon, int count, int format, int size,
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)
{
int res;
diff --git a/qemu-monitor.hx b/qemu-monitor.hx
index 62edbcde75..70e24758cc 100644
--- a/qemu-monitor.hx
+++ b/qemu-monitor.hx
@@ -306,6 +306,11 @@ STEXI
Read I/O port.
ETEXI
+ { "o", "/ii", do_ioport_write,
+ "/fmt addr value", "I/O port write" },
+STEXI
+Write to I/O port.
+ETEXI
{ "sendkey", "si?", do_sendkey,
"keys [hold_ms]", "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)" },