From patchwork Fri Feb 21 13:25:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 1242140 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=CDGCXH60; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48PCFg6smcz9sP7 for ; Sat, 22 Feb 2020 00:37:59 +1100 (AEDT) Received: from localhost ([::1]:57924 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j58VB-0003Jt-TH for incoming@patchwork.ozlabs.org; Fri, 21 Feb 2020 08:37:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33035) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j58Jk-00032r-Lk for qemu-devel@nongnu.org; Fri, 21 Feb 2020 08:26:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j58Jj-0007RA-5J for qemu-devel@nongnu.org; Fri, 21 Feb 2020 08:26:08 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:24507 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1j58Jj-0007Oi-0R for qemu-devel@nongnu.org; Fri, 21 Feb 2020 08:26:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1582291560; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cMOXko/4H0FB0S7u3dYzICgeqoNZW5DiwbZ8PiLJoXI=; b=CDGCXH604QY7wRTvtKgJiPnNmS6hgCSdAEmsS5J4EEiPmn2c4VmiYHoPsGcdohT9OOobR0 XnyCi8jIBgggeKFSg1m18Xa86FYcTDv6Xpp0LbtmMvVeQhCRMcPza9i33SOcQNOpgtY4bf HnqNZ3xJpNoV2bUOWvUmULHD49I9ALA= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-301-N3A-jZskOpi5RdEk2JQk_A-1; Fri, 21 Feb 2020 08:25:58 -0500 X-MC-Unique: N3A-jZskOpi5RdEk2JQk_A-1 Received: by mail-wm1-f70.google.com with SMTP id q125so571169wme.1 for ; Fri, 21 Feb 2020 05:25:58 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hcg1mTPNvTqu5kw0kpHNtRAtcOajm8vfSJTKD9bWkbM=; b=P08dPs+cqYM0TQd2gLLTluIZx5W+983qBCx1bQUP9LUkPTHIWuz+o9Cygc2LmIhphW L8T0PVza/usMLArJz0V/4kDETyI0/r0SYcrv7ONMw24MZ7FuZDYzQUam+eRRJ5FnW4Te v03H1wepEAlgNzmcFAxczjGg6O0Lv6cflSwatrwwSmPKBMgACOjJ8rJexJ6f/Lo4KO7c LFA1S/3Nufb4pF0ZA1LbFztAJ2DbrFZSS4E7uMa13dbKouoJNiEQAeNP4a12anzvWYVp e9V03yexY9pntsX3JOqEbfkmnvD3eywX6ke4IpRbeewx3k/NUyrp4l8UdPAOaN0qdTdY b7yQ== X-Gm-Message-State: APjAAAXDCEh0qOrss6f4ZfifsGZuuwaI3+LEfexu9CC9FXNy98Fz4KoW LLpKk6mXTDRevKeVBqwoe5rX6uA2hSlmkCNkFPBBzYOllZ8XJEQ9YxsaqWf+hEZhN6bI8Y+b7nI IDXSVJV8aGcDWRuc= X-Received: by 2002:adf:f80c:: with SMTP id s12mr49130629wrp.1.1582291557231; Fri, 21 Feb 2020 05:25:57 -0800 (PST) X-Google-Smtp-Source: APXvYqyZ8zRwQjRSOapQpvHA7eWW8PLfsp1CYzT1rJ38J4VZUnRLds4ZKYRE30wnQupHSJYRW3+npQ== X-Received: by 2002:adf:f80c:: with SMTP id s12mr49130596wrp.1.1582291556925; Fri, 21 Feb 2020 05:25:56 -0800 (PST) Received: from x1w.redhat.com (78.red-88-21-202.staticip.rima-tde.net. [88.21.202.78]) by smtp.gmail.com with ESMTPSA id t13sm3947679wrw.19.2020.02.21.05.25.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2020 05:25:55 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 3/3] hw/net/pcnet: Let phys_mem_read/write take void pointer and boolean Date: Fri, 21 Feb 2020 14:25:50 +0100 Message-Id: <20200221132550.22156-4-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200221132550.22156-1-philmd@redhat.com> References: <20200221132550.22156-1-philmd@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 207.211.31.120 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng , Peter Maydell , Jason Wang , Mark Cave-Ayland , Laurent Vivier , Paolo Bonzini , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?b?w6k=?= Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Both PCNetState::phys_mem_read/write handlers end calling dma_memory_read/write, which both take void pointers (since introduced in commit d86a77f8). The PCNetState phys_mem_read/write handlers can take a void pointer too. As the length is always a sizeof(), use a size_t type. The 'do_bswap' is used as a boolean argument. Use an explicit boolean type. The changes in hw/net/pcnet.c are produced using the following Coccinelle script: @@ expression E1, E2, E3, E4; @@ ( - s->phys_mem_read(E1, E2, (void *)(E3), E4, 0); + s->phys_mem_read(E1, E2, E3, E4, false); | - s->phys_mem_write(E1, E2, (void *)(E3), E4, 0); + s->phys_mem_write(E1, E2, E3, E4, false); | - s->phys_mem_read(E1, E2, (void *)(E3), E4, 1); + s->phys_mem_read(E1, E2, E3, E4, true); | - s->phys_mem_write(E1, E2, (void *)(E3), E4, 1); + s->phys_mem_write(E1, E2, E3, E4, true); ) Signed-off-by: Philippe Mathieu-Daudé --- hw/net/pcnet.h | 4 ++-- include/hw/sparc/sparc32_dma.h | 4 ++-- hw/dma/sparc32_dma.c | 4 ++-- hw/net/pcnet-pci.c | 5 +++-- hw/net/pcnet.c | 16 ++++++++-------- 5 files changed, 17 insertions(+), 16 deletions(-) diff --git a/hw/net/pcnet.h b/hw/net/pcnet.h index f49b213c57..3f15e6f065 100644 --- a/hw/net/pcnet.h +++ b/hw/net/pcnet.h @@ -47,9 +47,9 @@ struct PCNetState_st { uint8_t buffer[4096]; qemu_irq irq; void (*phys_mem_read)(void *dma_opaque, hwaddr addr, - uint8_t *buf, int len, int do_bswap); + void *buf, size_t len, bool do_bswap); void (*phys_mem_write)(void *dma_opaque, hwaddr addr, - uint8_t *buf, int len, int do_bswap); + const void *buf, size_t len, bool do_bswap); DeviceState *dma_opaque; int tx_busy; int looptest; diff --git a/include/hw/sparc/sparc32_dma.h b/include/hw/sparc/sparc32_dma.h index b3811b617d..db42f7440d 100644 --- a/include/hw/sparc/sparc32_dma.h +++ b/include/hw/sparc/sparc32_dma.h @@ -58,8 +58,8 @@ typedef struct SPARC32DMAState { /* sparc32_dma.c */ void ledma_memory_read(void *opaque, hwaddr addr, - uint8_t *buf, int len, int do_bswap); + void *buf, size_t len, bool do_bswap); void ledma_memory_write(void *opaque, hwaddr addr, - uint8_t *buf, int len, int do_bswap); + const void *buf, size_t len, bool do_bswap); #endif diff --git a/hw/dma/sparc32_dma.c b/hw/dma/sparc32_dma.c index fbe58b8fea..629f9830f7 100644 --- a/hw/dma/sparc32_dma.c +++ b/hw/dma/sparc32_dma.c @@ -72,7 +72,7 @@ enum { /* Note: on sparc, the lance 16 bit bus is swapped */ void ledma_memory_read(void *opaque, hwaddr addr, - uint8_t *buf, int len, int do_bswap) + void *buf, size_t len, bool do_bswap) { DMADeviceState *s = opaque; IOMMUState *is = (IOMMUState *)s->iommu; @@ -93,7 +93,7 @@ void ledma_memory_read(void *opaque, hwaddr addr, } void ledma_memory_write(void *opaque, hwaddr addr, - uint8_t *buf, int len, int do_bswap) + const void *buf, size_t len, bool do_bswap) { DMADeviceState *s = opaque; IOMMUState *is = (IOMMUState *)s->iommu; diff --git a/hw/net/pcnet-pci.c b/hw/net/pcnet-pci.c index d1f31e0272..4e4d60b046 100644 --- a/hw/net/pcnet-pci.c +++ b/hw/net/pcnet-pci.c @@ -167,13 +167,14 @@ static const MemoryRegionOps pcnet_mmio_ops = { }; static void pci_physical_memory_write(void *dma_opaque, hwaddr addr, - uint8_t *buf, int len, int do_bswap) + const void *buf, size_t len, + bool do_bswap) { pci_dma_write(dma_opaque, addr, buf, len); } static void pci_physical_memory_read(void *dma_opaque, hwaddr addr, - uint8_t *buf, int len, int do_bswap) + void *buf, size_t len, bool do_bswap) { pci_dma_read(dma_opaque, addr, buf, len); } diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c index f3f18d8598..d669ca2aa3 100644 --- a/hw/net/pcnet.c +++ b/hw/net/pcnet.c @@ -305,14 +305,14 @@ static inline void pcnet_tmd_load(PCNetState *s, struct pcnet_TMD *tmd, int16_t length; int16_t status; } xda; - s->phys_mem_read(s->dma_opaque, addr, (void *)&xda, sizeof(xda), 0); + s->phys_mem_read(s->dma_opaque, addr, &xda, sizeof(xda), false); tmd->tbadr = le32_to_cpu(xda.tbadr) & 0xffffff; tmd->length = le16_to_cpu(xda.length); tmd->status = (le32_to_cpu(xda.tbadr) >> 16) & 0xff00; tmd->misc = le16_to_cpu(xda.status) << 16; tmd->res = 0; } else { - s->phys_mem_read(s->dma_opaque, addr, (void *)tmd, sizeof(*tmd), 0); + s->phys_mem_read(s->dma_opaque, addr, tmd, sizeof(*tmd), false); le32_to_cpus(&tmd->tbadr); le16_to_cpus((uint16_t *)&tmd->length); le16_to_cpus((uint16_t *)&tmd->status); @@ -339,7 +339,7 @@ static inline void pcnet_tmd_store(PCNetState *s, const struct pcnet_TMD *tmd, ((tmd->status & 0xff00) << 16)); xda.length = cpu_to_le16(tmd->length); xda.status = cpu_to_le16(tmd->misc >> 16); - s->phys_mem_write(s->dma_opaque, addr, (void *)&xda, sizeof(xda), 0); + s->phys_mem_write(s->dma_opaque, addr, &xda, sizeof(xda), false); } else { struct { uint32_t tbadr; @@ -358,7 +358,7 @@ static inline void pcnet_tmd_store(PCNetState *s, const struct pcnet_TMD *tmd, xda.tbadr = xda.misc; xda.misc = tmp; } - s->phys_mem_write(s->dma_opaque, addr, (void *)&xda, sizeof(xda), 0); + s->phys_mem_write(s->dma_opaque, addr, &xda, sizeof(xda), false); } } @@ -371,14 +371,14 @@ static inline void pcnet_rmd_load(PCNetState *s, struct pcnet_RMD *rmd, int16_t buf_length; int16_t msg_length; } rda; - s->phys_mem_read(s->dma_opaque, addr, (void *)&rda, sizeof(rda), 0); + s->phys_mem_read(s->dma_opaque, addr, &rda, sizeof(rda), false); rmd->rbadr = le32_to_cpu(rda.rbadr) & 0xffffff; rmd->buf_length = le16_to_cpu(rda.buf_length); rmd->status = (le32_to_cpu(rda.rbadr) >> 16) & 0xff00; rmd->msg_length = le16_to_cpu(rda.msg_length); rmd->res = 0; } else { - s->phys_mem_read(s->dma_opaque, addr, (void *)rmd, sizeof(*rmd), 0); + s->phys_mem_read(s->dma_opaque, addr, rmd, sizeof(*rmd), false); le32_to_cpus(&rmd->rbadr); le16_to_cpus((uint16_t *)&rmd->buf_length); le16_to_cpus((uint16_t *)&rmd->status); @@ -405,7 +405,7 @@ static inline void pcnet_rmd_store(PCNetState *s, struct pcnet_RMD *rmd, ((rmd->status & 0xff00) << 16)); rda.buf_length = cpu_to_le16(rmd->buf_length); rda.msg_length = cpu_to_le16(rmd->msg_length); - s->phys_mem_write(s->dma_opaque, addr, (void *)&rda, sizeof(rda), 0); + s->phys_mem_write(s->dma_opaque, addr, &rda, sizeof(rda), false); } else { struct { uint32_t rbadr; @@ -424,7 +424,7 @@ static inline void pcnet_rmd_store(PCNetState *s, struct pcnet_RMD *rmd, rda.rbadr = rda.msg_length; rda.msg_length = tmp; } - s->phys_mem_write(s->dma_opaque, addr, (void *)&rda, sizeof(rda), 0); + s->phys_mem_write(s->dma_opaque, addr, &rda, sizeof(rda), false); } }