From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MQHxM-0004fd-Lm for qemu-devel@nongnu.org; Mon, 13 Jul 2009 05:36:20 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MQHxH-0004e2-Qf for qemu-devel@nongnu.org; Mon, 13 Jul 2009 05:36:19 -0400 Received: from [199.232.76.173] (port=38632 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MQHxH-0004ds-Dz for qemu-devel@nongnu.org; Mon, 13 Jul 2009 05:36:15 -0400 Received: from mx2.redhat.com ([66.187.237.31]:45837) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MQHxG-0003rL-Uy for qemu-devel@nongnu.org; Mon, 13 Jul 2009 05:36:15 -0400 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n6D9aEHx005134 for ; Mon, 13 Jul 2009 05:36:14 -0400 From: Gerd Hoffmann Date: Mon, 13 Jul 2009 11:36:03 +0200 Message-Id: <1247477765-17026-5-git-send-email-kraxel@redhat.com> In-Reply-To: <1247477765-17026-1-git-send-email-kraxel@redhat.com> References: <1247477765-17026-1-git-send-email-kraxel@redhat.com> Subject: [Qemu-devel] [PATCH 4/6] qdev/prop: add property for target_phys_addr_t List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Gerd Hoffmann Signed-off-by: Gerd Hoffmann --- Makefile.hw | 2 +- hw/qdev-addr.c | 31 +++++++++++++++++++++++++++++++ hw/qdev-addr.h | 2 ++ 3 files changed, 34 insertions(+), 1 deletions(-) create mode 100644 hw/qdev-addr.c create mode 100644 hw/qdev-addr.h diff --git a/Makefile.hw b/Makefile.hw index f7a9507..571e518 100644 --- a/Makefile.hw +++ b/Makefile.hw @@ -26,7 +26,7 @@ obj-y += m48t59.o escc.o # SCSI layer obj-y += lsi53c895a.o esp.o -obj-y += dma-helpers.o sysbus.o +obj-y += dma-helpers.o sysbus.o qdev-addr.o all: $(HWLIB) # Dummy command so that make thinks it has done something diff --git a/hw/qdev-addr.c b/hw/qdev-addr.c new file mode 100644 index 0000000..f1bf2fa --- /dev/null +++ b/hw/qdev-addr.c @@ -0,0 +1,31 @@ +#include "qdev.h" +#include "qdev-addr.h" +#include "targphys.h" + +/* --- target physical address --- */ + +static int parse_taddr(DeviceState *dev, Property *prop, const char *str) +{ + target_phys_addr_t *ptr = qdev_get_prop_ptr(dev, prop); + + *ptr = strtoull(str, NULL, 16); + return 0; +} + +static int print_taddr(DeviceState *dev, Property *prop, char *dest, size_t len) +{ + target_phys_addr_t *ptr = qdev_get_prop_ptr(dev, prop); + return snprintf(dest, len, "0x" TARGET_FMT_plx, *ptr); +} + +PropertyInfo qdev_prop_taddr = { + .name = "taddr", + .size = sizeof(target_phys_addr_t), + .parse = parse_taddr, + .print = print_taddr, +}; + +int qdev_prop_set_taddr(DeviceState *dev, const char *name, target_phys_addr_t value) +{ + return qdev_prop_set(dev, name, &value, sizeof(value)); +} diff --git a/hw/qdev-addr.h b/hw/qdev-addr.h new file mode 100644 index 0000000..389c1d6 --- /dev/null +++ b/hw/qdev-addr.h @@ -0,0 +1,2 @@ +extern PropertyInfo qdev_prop_taddr; +int qdev_prop_set_taddr(DeviceState *dev, const char *name, target_phys_addr_t value); -- 1.6.2.5