From patchwork Sun Sep 5 15:06:07 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Blue Swirl X-Patchwork-Id: 63841 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 AA877B70E7 for ; Mon, 6 Sep 2010 01:18:52 +1000 (EST) Received: from localhost ([127.0.0.1]:34294 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OsGzZ-0005Zs-0Q for incoming@patchwork.ozlabs.org; Sun, 05 Sep 2010 11:18:49 -0400 Received: from [140.186.70.92] (port=53341 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OsGne-0006g7-25 for qemu-devel@nongnu.org; Sun, 05 Sep 2010 11:06:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OsGnc-0000SN-Oo for qemu-devel@nongnu.org; Sun, 05 Sep 2010 11:06:29 -0400 Received: from mail-qw0-f45.google.com ([209.85.216.45]:34999) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OsGnc-0000SE-MX for qemu-devel@nongnu.org; Sun, 05 Sep 2010 11:06:28 -0400 Received: by qwh5 with SMTP id 5so3362003qwh.4 for ; Sun, 05 Sep 2010 08:06:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:from:date :message-id:subject:to:content-type; bh=McYA1cwqRG2z6FlC/joiMdOyprfEk2Z+tzWTQ0lG+4k=; b=SyIHf5W8m5CqMCKzTfKUyENZ4+R39cSBYCINUnWEuNKkEvP7ZRytSsHmNVbQHMKeqG kgDspceO7xwyIshSLDwiBqItlyl/Ub7qYpksT/Nx3ONncWZE2QyEGKUm1RilWAaT5TJT bpUGY8BuNBi8oPqYIk3nvKN9psXkZsooE5mlA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:content-type; b=CfXHrScyhKzKBGg02DS03/GGVmH7Ctu9XYEQ4oCA4AUnuBYDu8C+QC+JIL+OnLs4Uw FmPXx6M0F5cOQ9jfVfuqfeSdXukFw5IQTfsyJOpBSnIE7PkYRGdFMkPDYEtIOqJUjMNE XkB8sXoO3WhfNn2j069l4fmDDD/n/oTBk1H/w= Received: by 10.224.27.33 with SMTP id g33mr946474qac.148.1283699188282; Sun, 05 Sep 2010 08:06:28 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.240.135 with HTTP; Sun, 5 Sep 2010 08:06:07 -0700 (PDT) From: Blue Swirl Date: Sun, 5 Sep 2010 15:06:07 +0000 Message-ID: To: qemu-devel X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) Subject: [Qemu-devel] [PATCH 06/15] Use range_covers_byte 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 Use range_covers_byte() instead of comparisons. This also fixes some warnings with GCC flag -Wtype-limits. Signed-off-by: Blue Swirl --- hw/omap1.c | 21 +++++++++++++++------ hw/sm501.c | 5 +++-- 2 files changed, 18 insertions(+), 8 deletions(-) @@ -828,7 +829,7 @@ static void sm501_palette_write(void *opaque, /* TODO : consider BYTE/WORD access */ /* TODO : consider endian */ - assert(0 <= addr && addr < 0x400 * 3); + assert(range_covers_byte(0, 0x400 * 3, addr)); *(uint32_t*)&s->dc_palette[addr] = value; } diff --git a/hw/omap1.c b/hw/omap1.c index 06370b6..2dd62ec 100644 --- a/hw/omap1.c +++ b/hw/omap1.c @@ -26,6 +26,7 @@ /* We use pc-style serial ports. */ #include "pc.h" #include "blockdev.h" +#include "range.h" /* Should signal the TCMI/GPMC */ uint32_t omap_badwidth_read8(void *opaque, target_phys_addr_t addr) @@ -3669,37 +3670,45 @@ static const struct dma_irq_map omap1_dma_irq_map[] = { static int omap_validate_emiff_addr(struct omap_mpu_state_s *s, target_phys_addr_t addr) { - return addr >= OMAP_EMIFF_BASE && addr < OMAP_EMIFF_BASE + s->sdram_size; + return range_covers_byte(OMAP_EMIFF_BASE, + OMAP_EMIFF_BASE + s->sdram_size - OMAP_EMIFF_BASE, + addr); } static int omap_validate_emifs_addr(struct omap_mpu_state_s *s, target_phys_addr_t addr) { - return addr >= OMAP_EMIFS_BASE && addr < OMAP_EMIFF_BASE; + return range_covers_byte(OMAP_EMIFS_BASE, OMAP_EMIFF_BASE - OMAP_EMIFS_BASE, + addr); } static int omap_validate_imif_addr(struct omap_mpu_state_s *s, target_phys_addr_t addr) { - return addr >= OMAP_IMIF_BASE && addr < OMAP_IMIF_BASE + s->sram_size; + return range_covers_byte(OMAP_IMIF_BASE, + OMAP_IMIF_BASE + s->sram_size - OMAP_IMIF_BASE, + addr); } static int omap_validate_tipb_addr(struct omap_mpu_state_s *s, target_phys_addr_t addr) { - return addr >= 0xfffb0000 && addr < 0xffff0000; + return range_covers_byte(0xfffb0000, 0xffff0000 - 0xfffb0000, addr); } static int omap_validate_local_addr(struct omap_mpu_state_s *s, target_phys_addr_t addr) { - return addr >= OMAP_LOCALBUS_BASE && addr < OMAP_LOCALBUS_BASE + 0x1000000; + return range_covers_byte(OMAP_LOCALBUS_BASE, + OMAP_LOCALBUS_BASE + 0x1000000 - + OMAP_LOCALBUS_BASE, + addr); } static int omap_validate_tipb_mpui_addr(struct omap_mpu_state_s *s, target_phys_addr_t addr) { - return addr >= 0xe1010000 && addr < 0xe1020004; + return range_covers_byte(0xe1010000, 0xe1020004 - 0xe1010000, addr); } struct omap_mpu_state_s *omap310_mpu_init(unsigned long sdram_size, diff --git a/hw/sm501.c b/hw/sm501.c index 8e6932d..705e0a5 100644 --- a/hw/sm501.c +++ b/hw/sm501.c @@ -29,6 +29,7 @@ #include "devices.h" #include "sysbus.h" #include "qdev-addr.h" +#include "range.h" /* * Status: 2010/05/07 @@ -814,7 +815,7 @@ static uint32_t sm501_palette_read(void *opaque, target_phys_addr_t addr) /* TODO : consider BYTE/WORD access */ /* TODO : consider endian */ - assert(0 <= addr && addr < 0x400 * 3); + assert(range_covers_byte(0, 0x400 * 3, addr)); return *(uint32_t*)&s->dc_palette[addr]; }