From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MQdFR-0002NN-9u for qemu-devel@nongnu.org; Tue, 14 Jul 2009 04:20:25 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MQdFL-0002N9-3R for qemu-devel@nongnu.org; Tue, 14 Jul 2009 04:20:23 -0400 Received: from [199.232.76.173] (port=33373 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MQdFL-0002N6-0K for qemu-devel@nongnu.org; Tue, 14 Jul 2009 04:20:19 -0400 Received: from gecko.sbs.de ([194.138.37.40]:21899) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MQdFK-0000Ji-F7 for qemu-devel@nongnu.org; Tue, 14 Jul 2009 04:20:18 -0400 Message-ID: <4A5C3FBB.10306@siemens.com> Date: Tue, 14 Jul 2009 10:20:11 +0200 From: Jan Kiszka MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] [PATCH] monitor: Add port write command List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: qemu-devel Useful for testing hardware emulations or manipulating its state to stress guest drivers. Signed-off-by: Jan Kiszka --- monitor.c | 19 +++++++++++++++++++ qemu-monitor.hx | 5 +++++ 2 files changed, 24 insertions(+), 0 deletions(-) diff --git a/monitor.c b/monitor.c index 342af32..2ddca95 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; + } +} + /* boot_set handler */ static QEMUBootSetHandler *qemu_boot_set_handler = NULL; static void *boot_opaque; diff --git a/qemu-monitor.hx b/qemu-monitor.hx index 62edbcd..70e2475 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)" },