From patchwork Thu Nov 12 05:58:31 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Isaku Yamahata X-Patchwork-Id: 38209 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 10C57B70CF for ; Thu, 12 Nov 2009 17:31:16 +1100 (EST) Received: from localhost ([127.0.0.1]:36782 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N8TD6-0003fy-Vo for incoming@patchwork.ozlabs.org; Thu, 12 Nov 2009 01:31:13 -0500 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1N8Sns-0000b1-GO for qemu-devel@nongnu.org; Thu, 12 Nov 2009 01:05:08 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1N8Snj-0000TQ-JW for qemu-devel@nongnu.org; Thu, 12 Nov 2009 01:05:04 -0500 Received: from [199.232.76.173] (port=53904 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N8Snj-0000Sf-31 for qemu-devel@nongnu.org; Thu, 12 Nov 2009 01:04:59 -0500 Received: from mail.valinux.co.jp ([210.128.90.3]:53587) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1N8Snh-0001Do-PZ for qemu-devel@nongnu.org; Thu, 12 Nov 2009 01:04:58 -0500 Received: from nm.local.valinux.co.jp (vagw.valinux.co.jp [210.128.90.14]) by mail.valinux.co.jp (Postfix) with ESMTP id EB57D4A405; Thu, 12 Nov 2009 15:04:53 +0900 (JST) Received: from yamahata by nm.local.valinux.co.jp with local (Exim 4.69) (envelope-from ) id 1N8Shk-0006bt-Jx; Thu, 12 Nov 2009 14:58:48 +0900 From: Isaku Yamahata To: qemu-devel@nongnu.org, mst@redhat.com Date: Thu, 12 Nov 2009 14:58:31 +0900 Message-Id: <1258005528-25383-4-git-send-email-yamahata@valinux.co.jp> X-Mailer: git-send-email 1.6.0.2 In-Reply-To: <1258005528-25383-1-git-send-email-yamahata@valinux.co.jp> References: <1258005528-25383-1-git-send-email-yamahata@valinux.co.jp> X-Virus-Scanned: clamav-milter 0.95.2 at va-mail.local.valinux.co.jp X-Virus-Status: Clean X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) Cc: yamahata@valinux.co.jp Subject: [Qemu-devel] [PATCH 03/20] pci: simplify pci_data_read(), pcie_mmcfg_data_read(). X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org simplify ugly switch by memcpy trick. And add one assert(). Signed-off-by: Isaku Yamahata --- hw/pci_host.c | 16 ++++------------ hw/pcie_host.c | 16 ++++------------ 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/hw/pci_host.c b/hw/pci_host.c index f4518dc..4196ebc 100644 --- a/hw/pci_host.c +++ b/hw/pci_host.c @@ -71,19 +71,11 @@ uint32_t pci_data_read(PCIBus *s, uint32_t addr, int len) uint32_t config_addr = pci_addr_to_config(addr); uint32_t val; + assert(len == 1 || len == 2 || len == 4); if (!pci_dev) { - switch(len) { - case 1: - val = 0xff; - break; - case 2: - val = 0xffff; - break; - default: - case 4: - val = 0xffffffff; - break; - } + val = 0; + memset(&val, 0xff, len); + val = le32_to_cpu(val); } else { val = pci_dev->config_read(pci_dev, config_addr, len); PCI_DPRINTF("%s: %s: addr=%02"PRIx32" val=%08"PRIx32" len=%d\n", diff --git a/hw/pcie_host.c b/hw/pcie_host.c index b52fec6..61285da 100644 --- a/hw/pcie_host.c +++ b/hw/pcie_host.c @@ -71,19 +71,11 @@ static uint32_t pcie_mmcfg_data_read(PCIBus *s, PCIDevice *pci_dev = pcie_mmcfg_addr_to_dev(s, mmcfg_addr); uint32_t val; + assert(len == 1 || len == 2 || len == 4); if (!pci_dev) { - switch(len) { - case 1: - val = 0xff; - break; - case 2: - val = 0xffff; - break; - default: - case 4: - val = 0xffffffff; - break; - } + val = 0; + memset(&val, 0xff, len); + val = le32_to_cpu(val); } else { val = pci_dev->config_read(pci_dev, PCIE_MMCFG_CONFOFFSET(mmcfg_addr), len);