From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcelo Tosatti Subject: qemu-kvm: testdev: add monitor device parameter Date: Thu, 2 Sep 2010 20:45:07 -0300 Message-ID: <20100902234507.GB30976@amt.cnet> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Avi Kivity To: kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:63577 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756290Ab0ICROm (ORCPT ); Fri, 3 Sep 2010 13:14:42 -0400 Received: from int-mx03.intmail.prod.int.phx2.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o83HEgCJ017105 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 3 Sep 2010 13:14:42 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx03.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o83HEgap006780 for ; Fri, 3 Sep 2010 13:14:42 -0400 Received: from amt.cnet (vpn-8-81.rdu.redhat.com [10.11.8.81]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id o83HEeVb007830 for ; Fri, 3 Sep 2010 13:14:41 -0400 Received: from amt.cnet (localhost.localdomain [127.0.0.1]) by amt.cnet (Postfix) with ESMTP id 5AF9D68A06E for ; Fri, 3 Sep 2010 14:14:01 -0300 (BRT) Received: (from marcelo@localhost) by amt.cnet (8.14.4/8.14.4/Submit) id o83HE0Ff011880 for kvm@vger.kernel.org; Fri, 3 Sep 2010 14:14:00 -0300 Content-Disposition: inline Sender: kvm-owner@vger.kernel.org List-ID: So we can connect this chardev to a monitor, for example using a socket. Signed-off-by: Marcelo Tosatti diff --git a/hw/testdev.c b/hw/testdev.c index a8c49a3..2017798 100644 --- a/hw/testdev.c +++ b/hw/testdev.c @@ -5,6 +5,7 @@ struct testdev { ISADevice dev; CharDriverState *chr; + CharDriverState *mon; }; static void test_device_serial_write(void *opaque, uint32_t addr, uint32_t data) @@ -17,6 +18,16 @@ static void test_device_serial_write(void *opaque, uint32_t addr, uint32_t data) } } +static void test_device_mon_write(void *opaque, uint32_t addr, uint32_t data) +{ + struct testdev *dev = opaque; + uint8_t buf[1] = { data }; + + if (dev->mon) { + qemu_chr_write(dev->mon, buf, 1); + } +} + static void test_device_exit(void *opaque, uint32_t addr, uint32_t data) { exit(data); @@ -96,6 +107,7 @@ static int init_test_device(ISADevice *isa) int iomem; register_ioport_write(0xf1, 1, 1, test_device_serial_write, dev); + register_ioport_write(0xf2, 1, 1, test_device_mon_write, dev); register_ioport_write(0xf4, 1, 4, test_device_exit, dev); register_ioport_read(0xd1, 1, 4, test_device_memsize_read, dev); register_ioport_read(0xe0, 1, 1, test_device_ioport_read, dev); @@ -117,6 +129,7 @@ static ISADeviceInfo testdev_info = { .init = init_test_device, .qdev.props = (Property[]) { DEFINE_PROP_CHR("chardev", struct testdev, chr), + DEFINE_PROP_CHR("mon", struct testdev, mon), DEFINE_PROP_END_OF_LIST(), }, };