From patchwork Sun Mar 14 23:29:06 2021 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: 12138101 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0B982C433E9 for ; Sun, 14 Mar 2021 23:30:39 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 734BA64E76 for ; Sun, 14 Mar 2021 23:30:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 734BA64E76 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:45046 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lLaBx-0000h3-3a for qemu-devel@archiver.kernel.org; Sun, 14 Mar 2021 19:30:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44078) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lLaAm-0007Sp-HQ for qemu-devel@nongnu.org; Sun, 14 Mar 2021 19:29:24 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:44112) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lLaAl-0003S7-4N for qemu-devel@nongnu.org; Sun, 14 Mar 2021 19:29:24 -0400 Received: by mail-wr1-x42c.google.com with SMTP id o14so3990190wrm.11 for ; Sun, 14 Mar 2021 16:29:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KfOJpmdDqxdEOJJRaB9vA8l3aZbZ2PjO+Vki+heinaM=; b=cF2Q+wArsHomAAkgDbsDz9gbCl59YbsgrIsOixISLjE26TcbS4kHvq/ZDezbZO50CW J29szc9EBbgRPi6I2uQq762g5fWNoFDKtIgp93ICZxcR5hS0qxOgrPTdQwU2wJXzVXtY 2P7HssfMkTPFC8FK7gU6TzHn+8o7ULGqp+ZYpx9jvS04MKDS9hVTGtVZYZpZyhaEkD6i 2nFkcuoVMsaDCx6o6CDKEm+SGqR0nIHZnUwhSpEtOMBQ/1x0PKyxtbuoYV/ddUjfptqk HokjENbBJTL+j48FGYOBBmaug4jRaCJ1ZHtP59n1KwRbpq9T49b9VUNrgVzWfbT2JEUJ 5unA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=KfOJpmdDqxdEOJJRaB9vA8l3aZbZ2PjO+Vki+heinaM=; b=BeVOAFjdoXnUfPsMFpZQ6aeHNV4/XfgeEJHNgGIkFIIfp77DJJEd5koK5Bvafr34Ce 61PcYJr3kgPmZ3REjxGyjxXRDAFjfcHV4r+BjtDWHOMYnLNJMsff6FLnDVQgSK1i5D+c //ooVYlwPVsSJ+0y7Sk/hvhVIRkNDgrAZBzWCWSb5csy8ZW9DJGXNItIaN2U1Eoeno40 CG4Hk2vi7WTk1f9i12ufVWHCHeDM1TqveSQqqn0H4rorGObK7seoNW0ePWXBY7vww2Bx uZLKycp9uf6W3EJqiCudzDJSE/A6Ik+7j3k6Rb+RdfvUx/TV9qY1S1FMhM1/YkB0O+dt tugg== X-Gm-Message-State: AOAM530B/+xoceUvccUlr+1XiXrowxzRidE+FT2a1FOTZ2QXyWt+OiUB SsD54+qotCw/8N4mcdjv8MzotiKoVTIYyQ== X-Google-Smtp-Source: ABdhPJw7ANf/PufSHWo/b5rKEhcHlAfaKXj7Tndpw5ogdZa+c3xIBrXP5x/2OLhhMuveZeQ1u2G33Q== X-Received: by 2002:a5d:6205:: with SMTP id y5mr24456623wru.238.1615764561426; Sun, 14 Mar 2021 16:29:21 -0700 (PDT) Received: from localhost.localdomain (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id l9sm10092495wmq.2.2021.03.14.16.29.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Mar 2021 16:29:21 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [RFC PATCH 1/8] softmmu/physmem: Rename io_mem_unassigned -> unassigned_mr Date: Mon, 15 Mar 2021 00:29:06 +0100 Message-Id: <20210314232913.2607360-2-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210314232913.2607360-1-f4bug@amsat.org> References: <20210314232913.2607360-1-f4bug@amsat.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42c; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-x42c.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action 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: Paolo Bonzini , Richard Henderson , Claudio Fontana , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" 'io_mem_unassigned' memory region is not specific to I/O, rename it using a more generic 'unassigned_mr', matching the '_mr' suffix pattern used in various places in the code base. Signed-off-by: Philippe Mathieu-Daudé --- softmmu/physmem.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/softmmu/physmem.c b/softmmu/physmem.c index 7e8b0fab89a..115679f8d1a 100644 --- a/softmmu/physmem.c +++ b/softmmu/physmem.c @@ -93,7 +93,7 @@ static MemoryRegion *system_io; AddressSpace address_space_io; AddressSpace address_space_memory; -static MemoryRegion io_mem_unassigned; +static MemoryRegion unassigned_mr; typedef struct PhysPageEntry PhysPageEntry; @@ -458,7 +458,7 @@ static MemoryRegionSection address_space_translate_iommu(IOMMUMemoryRegion *iomm return *section; unassigned: - return (MemoryRegionSection) { .mr = &io_mem_unassigned }; + return (MemoryRegionSection) { .mr = &unassigned_mr }; } /** @@ -534,7 +534,7 @@ IOMMUTLBEntry address_space_get_iotlb_entry(AddressSpace *as, hwaddr addr, attrs); /* Illegal translation */ - if (section.mr == &io_mem_unassigned) { + if (section.mr == &unassigned_mr) { goto iotlb_fail; } @@ -1212,7 +1212,7 @@ static void register_subpage(FlatView *fv, MemoryRegionSection *section) }; hwaddr start, end; - assert(existing->mr->subpage || existing->mr == &io_mem_unassigned); + assert(existing->mr->subpage || existing->mr == &unassigned_mr); if (!(existing->mr->subpage)) { subpage = subpage_init(fv, base); @@ -2573,7 +2573,7 @@ MemoryRegionSection *iotlb_to_section(CPUState *cpu, static void io_mem_init(void) { - memory_region_init_io(&io_mem_unassigned, NULL, &unassigned_mem_ops, NULL, + memory_region_init_io(&unassigned_mr, NULL, &unassigned_mem_ops, NULL, NULL, UINT64_MAX); } @@ -2582,7 +2582,7 @@ AddressSpaceDispatch *address_space_dispatch_new(FlatView *fv) AddressSpaceDispatch *d = g_new0(AddressSpaceDispatch, 1); uint16_t n; - n = dummy_section(&d->map, fv, &io_mem_unassigned); + n = dummy_section(&d->map, fv, &unassigned_mr); assert(n == PHYS_SECTION_UNASSIGNED); d->phys_map = (PhysPageEntry) { .ptr = PHYS_MAP_NODE_NIL, .skip = 1 }; From patchwork Sun Mar 14 23:29:07 2021 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: 12138107 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E391CC433E0 for ; Sun, 14 Mar 2021 23:32:44 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 34B5E64E69 for ; Sun, 14 Mar 2021 23:32:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 34B5E64E69 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:51056 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lLaDz-0003Ei-7F for qemu-devel@archiver.kernel.org; Sun, 14 Mar 2021 19:32:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44166) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lLaAt-0007gt-K7 for qemu-devel@nongnu.org; Sun, 14 Mar 2021 19:29:31 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]:45229) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lLaAq-0003V3-QH for qemu-devel@nongnu.org; Sun, 14 Mar 2021 19:29:31 -0400 Received: by mail-wr1-x431.google.com with SMTP id e10so7780398wro.12 for ; Sun, 14 Mar 2021 16:29:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=h5PCnHeuw663l7VaVIolY9Ne6WKSedqc+Qdhk8tXZxI=; b=ar+Fg8rz24oRhbuiwycxqds9OHpHo9VC298sJTVByLXIEO/y3tU2tfJ4WmjMtUal4M ZL+WKKcS3MIUxV4a4/O28CkNDvTihLtaN72s31DBYsOIfhfUXcn7u8fQzdGdwzjgHmY6 eti2xAwInvH4bdixt4DSmT/jJDH2XSy5ZkjBz+Ws1gu5f/0FRfyXh5NrJbquYP/n3AUb XVbgGjLFVnFY2iuY3egv2lPv0dptei+bZIHX3aCmlNm8vhzNieeRxUvlkqeqg/AjuCf4 CVi3J5MsdNZ6aqTQF3NoZZKAi5N2VgSpzmVw51iNI+Hcnyk7k2/9ml69U2I55aQVHiz+ UixQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=h5PCnHeuw663l7VaVIolY9Ne6WKSedqc+Qdhk8tXZxI=; b=ic9CkvermyCTI3SwND7uR/V4O6t6pbL26XTHcDqdKkZ0WD2J9atdYs6tMVJMu+yRT8 cn81XnMxw+mTEh5P8jlL42C3jZ8b5n3DkmdSRKKT1olHJBeSs2N9XOiEcG9houZ+vN1F A+4x933tqXxP6gJazZ00LcVDqGgykJtcKsxpje6U4E9lLlStjn2DI1AdaPvglCx/AvB9 ooZKpSQ/jCGbzVv2mpKzpDCkfJwrnvmsk13RZlIFSDXcSp7APvxdndp54l1yIkmY22Pr /i+QOC4hKJldMxCRnwRwq3upIK3aSq/7aOKHHn1kgIcwoz8a4cNaGSiW4wgMGSrDkfYc lXhw== X-Gm-Message-State: AOAM532wNVJrnZwlo41Q8II5ejrzMkcX32ubQJ+xIDlw8rgYZYDvG3E3 9MiEQAEcEuuzG0TaxgY3noNV5JS19Kw0pQ== X-Google-Smtp-Source: ABdhPJzIEwujHVQs/5HxbmUBLWEk5042vfAG0vNbusCoXJvUxDP6j8s8K0Uh5L5pj5Ks/wAVIwiXAQ== X-Received: by 2002:adf:e412:: with SMTP id g18mr25206215wrm.159.1615764567139; Sun, 14 Mar 2021 16:29:27 -0700 (PDT) Received: from localhost.localdomain (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id a8sm10533573wmm.46.2021.03.14.16.29.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Mar 2021 16:29:26 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [RFC PATCH 2/8] exec: Extract CPU I/O instructions to "cpu-io.h" Date: Mon, 15 Mar 2021 00:29:07 +0100 Message-Id: <20210314232913.2607360-3-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210314232913.2607360-1-f4bug@amsat.org> References: <20210314232913.2607360-1-f4bug@amsat.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::431; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-x431.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action 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: Laurent Vivier , Thomas Huth , Stefano Stabellini , Eduardo Habkost , Paul Durrant , "Michael S. Tsirkin" , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= , Markus Armbruster , Alexander Bulekov , Bandan Das , Claudio Fontana , "open list:X86 Xen CPUs" , Anthony Perard , Paolo Bonzini , Stefan Hajnoczi , "Dr. David Alan Gilbert" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Not all architectures use an I/O bus. Extract the CPU I/O instruction helpers into a specific unit named cpu-io.c (and its equivalent "cpu-io.h" header). Signed-off-by: Philippe Mathieu-Daudé --- include/exec/cpu-io.h | 30 +++++++++++ include/exec/ioport.h | 7 --- hw/i386/xen/xen-hvm.c | 1 + monitor/misc.c | 2 +- softmmu/cpu-io.c | 88 +++++++++++++++++++++++++++++++ softmmu/ioport.c | 60 --------------------- softmmu/qtest.c | 1 + tests/qtest/fuzz/qtest_wrappers.c | 3 +- softmmu/meson.build | 3 +- 9 files changed, 125 insertions(+), 70 deletions(-) create mode 100644 include/exec/cpu-io.h create mode 100644 softmmu/cpu-io.c diff --git a/include/exec/cpu-io.h b/include/exec/cpu-io.h new file mode 100644 index 00000000000..6538c451177 --- /dev/null +++ b/include/exec/cpu-io.h @@ -0,0 +1,30 @@ +/* + * QEMU CPU I/O instructions + * + * Copyright (c) 2003 Fabrice Bellard + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef CPU_IO_H +#define CPU_IO_H + +void cpu_outb(uint32_t addr, uint8_t val); +void cpu_outw(uint32_t addr, uint16_t val); +void cpu_outl(uint32_t addr, uint32_t val); +uint8_t cpu_inb(uint32_t addr); +uint16_t cpu_inw(uint32_t addr); +uint32_t cpu_inl(uint32_t addr); + +#endif /* CPU_IO_H */ diff --git a/include/exec/ioport.h b/include/exec/ioport.h index e34f668998d..e58f475a7f0 100644 --- a/include/exec/ioport.h +++ b/include/exec/ioport.h @@ -44,13 +44,6 @@ typedef struct MemoryRegionPortio { extern const MemoryRegionOps unassigned_io_ops; #endif -void cpu_outb(uint32_t addr, uint8_t val); -void cpu_outw(uint32_t addr, uint16_t val); -void cpu_outl(uint32_t addr, uint32_t val); -uint8_t cpu_inb(uint32_t addr); -uint16_t cpu_inw(uint32_t addr); -uint32_t cpu_inl(uint32_t addr); - typedef struct PortioList { const struct MemoryRegionPortio *ports; Object *owner; diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c index 7ce672e5a5c..56e0018a50e 100644 --- a/hw/i386/xen/xen-hvm.c +++ b/hw/i386/xen/xen-hvm.c @@ -34,6 +34,7 @@ #include "sysemu/xen-mapcache.h" #include "trace.h" #include "exec/address-spaces.h" +#include "exec/cpu-io.h" #include #include diff --git a/monitor/misc.c b/monitor/misc.c index a7650ed7470..d40c7d5afc0 100644 --- a/monitor/misc.c +++ b/monitor/misc.c @@ -77,7 +77,7 @@ #include "qapi/qmp-event.h" #include "sysemu/cpus.h" #include "qemu/cutils.h" - +#include "exec/cpu-io.h" #if defined(TARGET_S390X) #include "hw/s390x/storage-keys.h" #include "hw/s390x/storage-attributes.h" diff --git a/softmmu/cpu-io.c b/softmmu/cpu-io.c new file mode 100644 index 00000000000..6ee03555f2c --- /dev/null +++ b/softmmu/cpu-io.c @@ -0,0 +1,88 @@ +/* + * QEMU CPU I/O instructions + * + * Copyright (c) 2003-2008 Fabrice Bellard + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "qemu/osdep.h" +#include "exec/address-spaces.h" +#include "exec/cpu-io.h" +#include "cpu.h" +#include "trace.h" + +void cpu_outb(uint32_t addr, uint8_t val) +{ + trace_cpu_out(addr, 'b', val); + address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, + &val, 1); +} + +void cpu_outw(uint32_t addr, uint16_t val) +{ + uint8_t buf[2]; + + trace_cpu_out(addr, 'w', val); + stw_p(buf, val); + address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, + buf, 2); +} + +void cpu_outl(uint32_t addr, uint32_t val) +{ + uint8_t buf[4]; + + trace_cpu_out(addr, 'l', val); + stl_p(buf, val); + address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, + buf, 4); +} + +uint8_t cpu_inb(uint32_t addr) +{ + uint8_t val; + + address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, + &val, 1); + trace_cpu_in(addr, 'b', val); + return val; +} + +uint16_t cpu_inw(uint32_t addr) +{ + uint8_t buf[2]; + uint16_t val; + + address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, buf, 2); + val = lduw_p(buf); + trace_cpu_in(addr, 'w', val); + return val; +} + +uint32_t cpu_inl(uint32_t addr) +{ + uint8_t buf[4]; + uint32_t val; + + address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, buf, 4); + val = ldl_p(buf); + trace_cpu_in(addr, 'l', val); + return val; +} diff --git a/softmmu/ioport.c b/softmmu/ioport.c index cb8adb0b936..69b13eed5e6 100644 --- a/softmmu/ioport.c +++ b/softmmu/ioport.c @@ -26,7 +26,6 @@ */ #include "qemu/osdep.h" -#include "cpu.h" #include "exec/ioport.h" #include "exec/memory.h" #include "exec/address-spaces.h" @@ -54,65 +53,6 @@ const MemoryRegionOps unassigned_io_ops = { .endianness = DEVICE_NATIVE_ENDIAN, }; -void cpu_outb(uint32_t addr, uint8_t val) -{ - trace_cpu_out(addr, 'b', val); - address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, - &val, 1); -} - -void cpu_outw(uint32_t addr, uint16_t val) -{ - uint8_t buf[2]; - - trace_cpu_out(addr, 'w', val); - stw_p(buf, val); - address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, - buf, 2); -} - -void cpu_outl(uint32_t addr, uint32_t val) -{ - uint8_t buf[4]; - - trace_cpu_out(addr, 'l', val); - stl_p(buf, val); - address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, - buf, 4); -} - -uint8_t cpu_inb(uint32_t addr) -{ - uint8_t val; - - address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, - &val, 1); - trace_cpu_in(addr, 'b', val); - return val; -} - -uint16_t cpu_inw(uint32_t addr) -{ - uint8_t buf[2]; - uint16_t val; - - address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, buf, 2); - val = lduw_p(buf); - trace_cpu_in(addr, 'w', val); - return val; -} - -uint32_t cpu_inl(uint32_t addr) -{ - uint8_t buf[4]; - uint32_t val; - - address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, buf, 4); - val = ldl_p(buf); - trace_cpu_in(addr, 'l', val); - return val; -} - void portio_list_init(PortioList *piolist, Object *owner, const MemoryRegionPortio *callbacks, diff --git a/softmmu/qtest.c b/softmmu/qtest.c index 130c3666154..ff253068657 100644 --- a/softmmu/qtest.c +++ b/softmmu/qtest.c @@ -31,6 +31,7 @@ #ifdef CONFIG_PSERIES #include "hw/ppc/spapr_rtas.h" #endif +#include "exec/cpu-io.h" #define MAX_IRQ 256 diff --git a/tests/qtest/fuzz/qtest_wrappers.c b/tests/qtest/fuzz/qtest_wrappers.c index 0580f8df860..921d1e5ed3a 100644 --- a/tests/qtest/fuzz/qtest_wrappers.c +++ b/tests/qtest/fuzz/qtest_wrappers.c @@ -12,8 +12,9 @@ */ #include "qemu/osdep.h" +#include "exec/address-spaces.h" +#include "exec/cpu-io.h" #include "hw/core/cpu.h" -#include "exec/ioport.h" #include "fuzz.h" diff --git a/softmmu/meson.build b/softmmu/meson.build index d8e03018abf..ebf063b8990 100644 --- a/softmmu/meson.build +++ b/softmmu/meson.build @@ -2,11 +2,11 @@ 'arch_init.c', 'balloon.c', 'cpus.c', + 'cpu-io.c', 'cpu-throttle.c', 'datadir.c', 'globals.c', 'physmem.c', - 'ioport.c', 'rtc.c', 'runstate.c', 'memory.c', @@ -24,6 +24,7 @@ softmmu_ss.add(files( 'bootdevice.c', 'dma-helpers.c', + 'ioport.c', 'qdev-monitor.c', ), sdl, libpmem, libdaxctl) From patchwork Sun Mar 14 23:29:08 2021 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: 12138103 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A289EC433DB for ; Sun, 14 Mar 2021 23:30:51 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 2BF9064E69 for ; Sun, 14 Mar 2021 23:30:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2BF9064E69 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:46108 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lLaCA-00019z-9n for qemu-devel@archiver.kernel.org; Sun, 14 Mar 2021 19:30:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44180) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lLaAx-0007nf-2o for qemu-devel@nongnu.org; Sun, 14 Mar 2021 19:29:35 -0400 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]:39878) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lLaAv-0003XV-NY for qemu-devel@nongnu.org; Sun, 14 Mar 2021 19:29:34 -0400 Received: by mail-wr1-x435.google.com with SMTP id e18so4810788wrt.6 for ; Sun, 14 Mar 2021 16:29:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=lpMrq2wl7tmbBfa/QUj59Ff3j8xcGG28cgdr4SMcAKU=; b=TAb8AB+nb2GDC4JtYhd9CpvSLG+l4XhtP3YqWMMdKZ3XOMw9gpSShXKAN/9bOtbw/n iIVbxaN87pRvuNq/GfizEx7XOypvHZmiiU/XTJIxgt5Mpjo0wk4FOx6QzElQGS3O0tdQ b0dXrfty2C6U5y9wb73h6DsrwRbhS/4Qo2BySVLxBfRR65zwQmrP3regZurPLYRUZAsi Y/9unTlqnsbdoAy4Eb8lREPtLny0m3iLSAsEwercRPkeR4uAFJ7tl9jS5tMv7a9K/KYa meRDAaEYYRuA7jszi86BvfR8c1EUTFGqwwc9jAClsmIZsmNM8JZxQv1ZqlcJzZscWDAM wZyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=lpMrq2wl7tmbBfa/QUj59Ff3j8xcGG28cgdr4SMcAKU=; b=e4heWo6amWk+3tuR3TiEuauO8zEOX7Cq9BgLr8IdB8T33sUJ7frCrYYqB+e6Jh/i5c IvcKE3A4tL6J1HKO+ZBHRVF9r8KKuAeVjbQNnT63FJIZ7qyHEGwr6MI+nicEm6ZD2bFk 7O0tvzzuX4/0pP8oSZO398HLvktxDg+J2Le8hr00v1uqbOjqIPi7FjK6MpJ0dvcVi2go /mRHtzS43YZXhgfCa9CzbH1xNcZTgIayUdYfy/6JvnXL17wZMC8amz6ryVtORocJpp1p X+QbZw7oleF5M3LjvmIAyP1p1cio1bquCXfMpdiQY6GxV62xZ2IUT8Qij88u9UXZIV1x /79A== X-Gm-Message-State: AOAM530/6EvrRhr3l3us6ofZaDrQNw/oQT53kj2Oy8JdoB9eX3XO2K2R 4ea9GAo1v9Gu0F/w5xqbWIm8O38gizi13A== X-Google-Smtp-Source: ABdhPJwyfXUbRK3t/WOE6dO5sJ2XrOeNoIE7Xi+kpEQzmpezA5Nj+OBE1U9z4VGM5QTJSLZlt9Xx2Q== X-Received: by 2002:adf:9544:: with SMTP id 62mr906615wrs.128.1615764572160; Sun, 14 Mar 2021 16:29:32 -0700 (PDT) Received: from localhost.localdomain (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id s23sm10102316wmc.29.2021.03.14.16.29.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Mar 2021 16:29:31 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [RFC PATCH 3/8] target: Introduce TARGET_HAS_IOPORT Date: Mon, 15 Mar 2021 00:29:08 +0100 Message-Id: <20210314232913.2607360-4-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210314232913.2607360-1-f4bug@amsat.org> References: <20210314232913.2607360-1-f4bug@amsat.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::435; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-x435.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action 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: Sarah Harris , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= , Michael Rolnik , Claudio Fontana , Paolo Bonzini Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Have target architectures providing CPU access to I/O bus define TARGET_HAS_IOPORT. Signed-off-by: Philippe Mathieu-Daudé --- default-configs/targets/avr-softmmu.mak | 1 + default-configs/targets/i386-softmmu.mak | 1 + default-configs/targets/x86_64-softmmu.mak | 1 + 3 files changed, 3 insertions(+) diff --git a/default-configs/targets/avr-softmmu.mak b/default-configs/targets/avr-softmmu.mak index e3f921c0199..4652ce136bc 100644 --- a/default-configs/targets/avr-softmmu.mak +++ b/default-configs/targets/avr-softmmu.mak @@ -1,2 +1,3 @@ TARGET_ARCH=avr +TARGET_HAS_IOPORT=y TARGET_XML_FILES= gdb-xml/avr-cpu.xml diff --git a/default-configs/targets/i386-softmmu.mak b/default-configs/targets/i386-softmmu.mak index 5babf71895d..969008859b6 100644 --- a/default-configs/targets/i386-softmmu.mak +++ b/default-configs/targets/i386-softmmu.mak @@ -1,3 +1,4 @@ TARGET_ARCH=i386 +TARGET_HAS_IOPORT=y TARGET_SUPPORTS_MTTCG=y TARGET_XML_FILES= gdb-xml/i386-32bit.xml diff --git a/default-configs/targets/x86_64-softmmu.mak b/default-configs/targets/x86_64-softmmu.mak index 75e42bc8404..2d35270f020 100644 --- a/default-configs/targets/x86_64-softmmu.mak +++ b/default-configs/targets/x86_64-softmmu.mak @@ -1,4 +1,5 @@ TARGET_ARCH=x86_64 TARGET_BASE_ARCH=i386 +TARGET_HAS_IOPORT=y TARGET_SUPPORTS_MTTCG=y TARGET_XML_FILES= gdb-xml/i386-64bit.xml From patchwork Sun Mar 14 23:29:09 2021 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: 12138109 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CF214C433DB for ; Sun, 14 Mar 2021 23:33:09 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 7D9A764E69 for ; Sun, 14 Mar 2021 23:33:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7D9A764E69 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:52304 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lLaEO-0003kL-LS for qemu-devel@archiver.kernel.org; Sun, 14 Mar 2021 19:33:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44256) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lLaB2-00081l-TI for qemu-devel@nongnu.org; Sun, 14 Mar 2021 19:29:40 -0400 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]:44110) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lLaB0-0003a1-Uy for qemu-devel@nongnu.org; Sun, 14 Mar 2021 19:29:40 -0400 Received: by mail-wr1-x429.google.com with SMTP id o14so3990340wrm.11 for ; Sun, 14 Mar 2021 16:29:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MR0TI0p/wk8rjHEQtPPg4Akk9TSXYFy78Mij8j91GoM=; b=YkpxnBpdjI6gHJi9CH80xVmsuUsuX5J2D2vr5VxrX3sp/wEkEz7SFmKOx6SrkIwUGv Ks5aWy0xn65GNztYWRi2OKdXabOZABQswFGPAkSMsYfCF+PjQ5bFS1IMbVusgUzC8w3H APrgIEsVGU1qI7+PkyrUpOwj4TAhXh9eLpHpl87M1BuXGZRwMssJk08lkKaVjNDimWbE f6ragMe8GjebD8vmZ54hAahrs7rNT0gs/mtb2a2ZzOGrQ7PyKgCwSZzi03ly/TYdLCDY TQOMzXoDFMkoqjKpjsLnf89C2ssXCuPMq+fncyPzejkG9cqYYF0cT5CEgj49orBqXfWo SBeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=MR0TI0p/wk8rjHEQtPPg4Akk9TSXYFy78Mij8j91GoM=; b=pIxuuWhfJxuO9fTdVzW8nP8iOEN6awr1vnA1A++fr7/Y/64036QII1dPq9msnvvMb6 iHf+1ygo9qe7IK6BvrnY8wSyWQqHH4H+jQY0b3QvjVVpYzK2DfFaiDMfvpMNF8tm3hUx 246v8AIvH2NZmn8G+KsBLmcqWJOuuEXjWypAawKBq124OFz8zuji4MGksBSsMCbrpfbe OZaoSMS9uNGdQOh7qCLspGb6JuEaXi+nhMfkXKM9KF9L/+ekeWGxt/LAxDMqdxy037KJ Owx74OFsCxFBSXiIdY2pUt14E8/K161N2hYIgSy6FW/Rfqk9T9SdDqeqsfBw44G+d4VG BEBw== X-Gm-Message-State: AOAM530rNdQyanB5Gk1qqbTrQ3YRxqH2zghi/XA7fX/v5sW7UF8+USgG jhar0XIVvkcYz2v+5OrL0IcS7vxkBFFqBQ== X-Google-Smtp-Source: ABdhPJwH4XXN0wlyakrsIVtQFO33BnUjaxGyPiNfwEKk18FV8cpayJc8q5Fxq24nWbabDr4kFPoVhQ== X-Received: by 2002:a5d:4e0b:: with SMTP id p11mr25198732wrt.343.1615764577344; Sun, 14 Mar 2021 16:29:37 -0700 (PDT) Received: from localhost.localdomain (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id y205sm12699717wmc.18.2021.03.14.16.29.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Mar 2021 16:29:36 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [RFC PATCH 4/8] qtest/fuzz: Restrict CPU I/O instructions Date: Mon, 15 Mar 2021 00:29:09 +0100 Message-Id: <20210314232913.2607360-5-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210314232913.2607360-1-f4bug@amsat.org> References: <20210314232913.2607360-1-f4bug@amsat.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::429; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-x429.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action 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: Laurent Vivier , Thomas Huth , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= , Alexander Bulekov , Bandan Das , Claudio Fontana , Stefan Hajnoczi , Paolo Bonzini Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Restrict CPU I/O instructions to architectures providing I/O bus. Signed-off-by: Philippe Mathieu-Daudé --- tests/qtest/fuzz/generic_fuzz.c | 16 ++++++++++------ tests/qtest/fuzz/qtest_wrappers.c | 4 ++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/tests/qtest/fuzz/generic_fuzz.c b/tests/qtest/fuzz/generic_fuzz.c index ee8c17a04c4..3e0089f4a63 100644 --- a/tests/qtest/fuzz/generic_fuzz.c +++ b/tests/qtest/fuzz/generic_fuzz.c @@ -304,6 +304,13 @@ static bool get_io_address(address_range *result, AddressSpace *as, return cb_info.found; } +static bool get_mmio_address(address_range *result, + uint8_t index, uint32_t offset) +{ + return get_io_address(result, &address_space_memory, index, offset); +} + +#ifdef TARGET_HAS_IOPORT static bool get_pio_address(address_range *result, uint8_t index, uint16_t offset) { @@ -318,12 +325,6 @@ static bool get_pio_address(address_range *result, return result->addr <= 0xFFFF ? found : false; } -static bool get_mmio_address(address_range *result, - uint8_t index, uint32_t offset) -{ - return get_io_address(result, &address_space_memory, index, offset); -} - static void op_in(QTestState *s, const unsigned char * data, size_t len) { enum Sizes {Byte, Word, Long, end_sizes}; @@ -395,6 +396,7 @@ static void op_out(QTestState *s, const unsigned char * data, size_t len) break; } } +#endif /* TARGET_HAS_IOPORT */ static void op_read(QTestState *s, const unsigned char * data, size_t len) { @@ -626,8 +628,10 @@ static void handle_timeout(int sig) static void generic_fuzz(QTestState *s, const unsigned char *Data, size_t Size) { void (*ops[]) (QTestState *s, const unsigned char* , size_t) = { +#ifdef TARGET_HAS_IOPORT [OP_IN] = op_in, [OP_OUT] = op_out, +#endif /* TARGET_HAS_IOPORT */ [OP_READ] = op_read, [OP_WRITE] = op_write, [OP_PCI_READ] = op_pci_read, diff --git a/tests/qtest/fuzz/qtest_wrappers.c b/tests/qtest/fuzz/qtest_wrappers.c index 921d1e5ed3a..d56dda9e9b8 100644 --- a/tests/qtest/fuzz/qtest_wrappers.c +++ b/tests/qtest/fuzz/qtest_wrappers.c @@ -24,12 +24,14 @@ static bool serialize = true; RET_TYPE __wrap_##NAME_AND_ARGS;\ RET_TYPE __real_##NAME_AND_ARGS; +#ifdef TARGET_HAS_IOPORT WRAP(uint8_t , qtest_inb(QTestState *s, uint16_t addr)) WRAP(uint16_t , qtest_inw(QTestState *s, uint16_t addr)) WRAP(uint32_t , qtest_inl(QTestState *s, uint16_t addr)) WRAP(void , qtest_outb(QTestState *s, uint16_t addr, uint8_t value)) WRAP(void , qtest_outw(QTestState *s, uint16_t addr, uint16_t value)) WRAP(void , qtest_outl(QTestState *s, uint16_t addr, uint32_t value)) +#endif /* TARGET_HAS_IOPORT */ WRAP(uint8_t , qtest_readb(QTestState *s, uint64_t addr)) WRAP(uint16_t , qtest_readw(QTestState *s, uint64_t addr)) WRAP(uint32_t , qtest_readl(QTestState *s, uint64_t addr)) @@ -50,6 +52,7 @@ WRAP(void, qtest_memset(QTestState *s, uint64_t addr, uint8_t patt, size_t size)) +#ifdef TARGET_HAS_IOPORT uint8_t __wrap_qtest_inb(QTestState *s, uint16_t addr) { if (!serialize) { @@ -103,6 +106,7 @@ void __wrap_qtest_outl(QTestState *s, uint16_t addr, uint32_t value) __real_qtest_outl(s, addr, value); } } +#endif /* TARGET_HAS_IOPORT */ uint8_t __wrap_qtest_readb(QTestState *s, uint64_t addr) { From patchwork Sun Mar 14 23:29:10 2021 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: 12138113 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 02584C433DB for ; Sun, 14 Mar 2021 23:34:46 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id A6C6C601FE for ; Sun, 14 Mar 2021 23:34:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A6C6C601FE Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:56874 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lLaFw-0005ez-So for qemu-devel@archiver.kernel.org; Sun, 14 Mar 2021 19:34:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44286) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lLaB7-0008D8-Dz for qemu-devel@nongnu.org; Sun, 14 Mar 2021 19:29:45 -0400 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:34635) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lLaB5-0003cm-Ty for qemu-devel@nongnu.org; Sun, 14 Mar 2021 19:29:45 -0400 Received: by mail-wm1-x331.google.com with SMTP id n11-20020a05600c4f8bb029010e5cf86347so1547440wmq.1 for ; Sun, 14 Mar 2021 16:29:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=70oiTPRv0w7FE2MLsRVbgiZ8dTQJ/B4k2Scty1V1FuU=; b=O3RPy4rqGH8KkAP9tNHKtelgXjEIHJ/q+IGzTj/RHP6qVTpSzef7VZ9jPcp1Yev19u aFAa4Kr/DqXbD0DK7+tZqJFYFGPLiT3Vu4jOceIlJdg45+a4Je6HHo39/I6SoW9CVTsk EuAzY3Ym2YyY+nPp9vfsHi/StLuHhi/1biptIAb4kuFOkjGA2ZZSQ6oRVR/z1PV0lRbS qX6jpKzkFX5bT6UQSAeGUj8pMQ5wBYY490zTejvw9Ig79CKtXEEaBbckMx5umTbGJLoL jTdyqx/AL1IaccQ6IHMEXkSLHmolQtwS1sOvfAmiIekqyhDETsQoB3YYjKjnbxLoiaF1 sH5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=70oiTPRv0w7FE2MLsRVbgiZ8dTQJ/B4k2Scty1V1FuU=; b=fBk2Rt4qlALiJc6Ubi60Hl1jIRG5ur5B5P5esg5rtBGoUuQKnWNmBzlG/ksWhbLgqi 7m18kj+zPJunbL07YCEmKJtA+V+EHN+aYbg4ENDR0pbpp9ZPuj6KCcJp95tRV8Q57fZl 1QLx6ynrqqryDoehOdPFJ/+Ds7igx6IpzTCJd5+JkaQK0VYholanOgyUgA8ZV6g5ddg1 vtNiO7V/Z3iCPBsJxfJA7UK3m5q2tm0sogC/gzkF5DMDISjr+aHjupeoEd+sSMlV/wPm cHGcINGLf32xeo7XJhlMyHtd33whaFO7pHwIr5R1RikQVGOod2IjlwEgDE/JKO/LXJZB IjEA== X-Gm-Message-State: AOAM532ap933ymuw/9r8Zc03ZE44LsyuYiqx5VwqRG4bHBVK8Efgj7t6 OGfwSGx9xlCt66etqbumTNe6YsNFQP4VCA== X-Google-Smtp-Source: ABdhPJy66fgwB1Ba3PO0EzjRIMd2orHQBICO/MbU+2p/kHOK2oRT4j2q7ViAewvH9o5kiQ+h43/psQ== X-Received: by 2002:a05:600c:1550:: with SMTP id f16mr23245428wmg.97.1615764582442; Sun, 14 Mar 2021 16:29:42 -0700 (PDT) Received: from localhost.localdomain (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id b15sm12054487wmd.41.2021.03.14.16.29.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Mar 2021 16:29:42 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [RFC PATCH 5/8] qtest/libqos: Restrict CPU I/O instructions Date: Mon, 15 Mar 2021 00:29:10 +0100 Message-Id: <20210314232913.2607360-6-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210314232913.2607360-1-f4bug@amsat.org> References: <20210314232913.2607360-1-f4bug@amsat.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::331; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x331.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action 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: Laurent Vivier , Thomas Huth , Laszlo Ersek , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= , Claudio Fontana , Paolo Bonzini , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Gerd Hoffmann Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Restrict CPU I/O instructions to architectures providing I/O bus. Signed-off-by: Philippe Mathieu-Daudé --- tests/qtest/libqos/fw_cfg.h | 3 +++ tests/qtest/libqos/fw_cfg.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/tests/qtest/libqos/fw_cfg.h b/tests/qtest/libqos/fw_cfg.h index c6a7cf8cf05..3bfb6d6d55b 100644 --- a/tests/qtest/libqos/fw_cfg.h +++ b/tests/qtest/libqos/fw_cfg.h @@ -36,6 +36,8 @@ size_t qfw_cfg_get_file(QFWCFG *fw_cfg, const char *filename, QFWCFG *mm_fw_cfg_init(QTestState *qts, uint64_t base); void mm_fw_cfg_uninit(QFWCFG *fw_cfg); + +#ifdef TARGET_HAS_IOPORT QFWCFG *io_fw_cfg_init(QTestState *qts, uint16_t base); void io_fw_cfg_uninit(QFWCFG *fw_cfg); @@ -48,6 +50,7 @@ static inline void pc_fw_cfg_uninit(QFWCFG *fw_cfg) { io_fw_cfg_uninit(fw_cfg); } +#endif /* TARGET_HAS_IOPORT */ G_DEFINE_AUTOPTR_CLEANUP_FUNC(QFWCFG, mm_fw_cfg_uninit) diff --git a/tests/qtest/libqos/fw_cfg.c b/tests/qtest/libqos/fw_cfg.c index 6b8e1babe51..db2b83f5212 100644 --- a/tests/qtest/libqos/fw_cfg.c +++ b/tests/qtest/libqos/fw_cfg.c @@ -131,6 +131,7 @@ void mm_fw_cfg_uninit(QFWCFG *fw_cfg) g_free(fw_cfg); } +#ifdef TARGET_HAS_IOPORT static void io_fw_cfg_select(QFWCFG *fw_cfg, uint16_t key) { qtest_outw(fw_cfg->qts, fw_cfg->base, key); @@ -162,3 +163,4 @@ void io_fw_cfg_uninit(QFWCFG *fw_cfg) { g_free(fw_cfg); } +#endif /* TARGET_HAS_IOPORT */ From patchwork Sun Mar 14 23:29:11 2021 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: 12138111 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A3C6AC433E0 for ; Sun, 14 Mar 2021 23:33:43 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 3A53464E69 for ; Sun, 14 Mar 2021 23:33:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3A53464E69 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:55038 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lLaEw-0004sZ-9X for qemu-devel@archiver.kernel.org; Sun, 14 Mar 2021 19:33:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44314) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lLaBC-0008Im-CE for qemu-devel@nongnu.org; Sun, 14 Mar 2021 19:29:50 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]:35631) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lLaBA-0003fI-VQ for qemu-devel@nongnu.org; Sun, 14 Mar 2021 19:29:50 -0400 Received: by mail-wm1-x329.google.com with SMTP id c76-20020a1c9a4f0000b029010c94499aedso19205529wme.0 for ; Sun, 14 Mar 2021 16:29:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=PKZDm7LBM+uCSZ92Wt+YMih/9De/7VVZu7v4tDHJtE8=; b=p5v+x/1QlWlHY0VY8mBhtjnEIZCtCoTnIOACAX692stBUd1U0Ai+43He3mGlWHXEsb C6VrwhzXYl5eZ+8YeecOJbu5vqOrvIF8hM7QqceLjRwUd6xpOjgtd+PyXmLa+x5h9yOp URhXsCdGhkRgpfHfkXeE0pI1d95cNXUPD31RHgcnQgAEdUX0TphU9zexk6p6Ax6f8VpA c2I9UE3GRKoVULQVkKIRDnlwMnShMYiTxRbd5MviLIU3SA+NJTjvHdDLXqxLfb8OHzkO CmZayf46ovUI3yAHLEuthtQ7q4g81a/TSYT3JrJcRRcO1Aniut5ThdW8F7ntM3zkwWfo 1aTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=PKZDm7LBM+uCSZ92Wt+YMih/9De/7VVZu7v4tDHJtE8=; b=OEQnGkbCPiLsmkepb8S10mIzgfjw4jfr9u3wWRBdYe5QG5r8VvZsceQNEym3kJDj1U xUW5zaDDPXh8QjBsKrIIumx4cICZQk6BzQkZEK3HOygV0BQRdvH07AH7qIiOJ0osC/B5 aGAO//3AhisPzc61oAGG0U2TkkNhu5GXngQnPegCmQ4s8ori7M7wcmsJpN8LY5ARTuhM Ko25FmGnsstgYJ2k3wlyEBWV5QMUSCeJ9NGIfX2UrT7kQvAydJ1oijE5D+fd+tfEOa79 uXXXoa6QR6UekLV6to55HnuJ03QzJFeNnSGYT9PX8YAfNi5jML1eG2kHVJtiIvqdTgrj xIig== X-Gm-Message-State: AOAM531dQ7ligYozkBkpTyGxid5wd18rPnpCVtiG/MetvVbK70hF3PHq 9qIDEc5OkL6KuP24sHWqOXN+2DujtbBlWw== X-Google-Smtp-Source: ABdhPJx8Xw1Sf+WDisRX3hjPlqSZUXSLTBbDNSX495xW79OqhGHaCl9RPKAASeduWqbTUCCAhic2KA== X-Received: by 2002:a7b:ce16:: with SMTP id m22mr23974993wmc.65.1615764587452; Sun, 14 Mar 2021 16:29:47 -0700 (PDT) Received: from localhost.localdomain (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id d204sm10785054wmc.17.2021.03.14.16.29.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Mar 2021 16:29:47 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [RFC PATCH 6/8] qtest: Restrict CPU I/O instructions Date: Mon, 15 Mar 2021 00:29:11 +0100 Message-Id: <20210314232913.2607360-7-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210314232913.2607360-1-f4bug@amsat.org> References: <20210314232913.2607360-1-f4bug@amsat.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::329; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x329.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action 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: Laurent Vivier , Thomas Huth , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= , Claudio Fontana , Paolo Bonzini Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Restrict CPU I/O instructions to architectures providing I/O bus. Signed-off-by: Philippe Mathieu-Daudé --- softmmu/qtest.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/softmmu/qtest.c b/softmmu/qtest.c index ff253068657..51fe256297a 100644 --- a/softmmu/qtest.c +++ b/softmmu/qtest.c @@ -31,7 +31,9 @@ #ifdef CONFIG_PSERIES #include "hw/ppc/spapr_rtas.h" #endif +#ifdef TARGET_HAS_IOPORT #include "exec/cpu-io.h" +#endif #define MAX_IRQ 256 @@ -462,7 +464,9 @@ static void qtest_process_command(CharBackend *chr, gchar **words) qemu_set_irq(irq, level); qtest_send_prefix(chr); qtest_send(chr, "OK\n"); - } else if (strcmp(words[0], "outb") == 0 || + } +#ifdef TARGET_HAS_IOPORT + else if (strcmp(words[0], "outb") == 0 || strcmp(words[0], "outw") == 0 || strcmp(words[0], "outl") == 0) { unsigned long addr; @@ -506,7 +510,9 @@ static void qtest_process_command(CharBackend *chr, gchar **words) } qtest_send_prefix(chr); qtest_sendf(chr, "OK 0x%04x\n", value); - } else if (strcmp(words[0], "writeb") == 0 || + } +#endif /* TARGET_HAS_IOPORT */ + else if (strcmp(words[0], "writeb") == 0 || strcmp(words[0], "writew") == 0 || strcmp(words[0], "writel") == 0 || strcmp(words[0], "writeq") == 0) { From patchwork Sun Mar 14 23:29:12 2021 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: 12138115 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0D15CC433E0 for ; Sun, 14 Mar 2021 23:35:38 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id B95B364E77 for ; Sun, 14 Mar 2021 23:35:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B95B364E77 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:59524 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lLaGm-0006kv-T3 for qemu-devel@archiver.kernel.org; Sun, 14 Mar 2021 19:35:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44330) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lLaBH-0008QJ-PQ for qemu-devel@nongnu.org; Sun, 14 Mar 2021 19:29:56 -0400 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]:35161) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lLaBG-0003iL-8o for qemu-devel@nongnu.org; Sun, 14 Mar 2021 19:29:55 -0400 Received: by mail-wr1-x433.google.com with SMTP id l12so7795719wry.2 for ; Sun, 14 Mar 2021 16:29:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jJdhWW4fK4y5udXyK0NB1puC8z9XRvo9dDPHL5cwnpk=; b=r23GqKf9+DtJ9Us3Xw4RWewY3fgqXnWHzcUXztmGXO8letFa6EU5fLl4bK+gYVBUYj tEqXSSM+HU67zV+HEz8NAT58Uja0m+AV46WwapNqunaX3j688C0jX8Q+kspzUoBJhBvO yJ3pQ0JhI0u2oF6QUXYkAcH9siR4jLVPMfv5en/9WvimhshaTz10F+oAiT2T9iR2QawV q9PwwPuHTJS26EJn5tO3ht1luBVPFajRnOJEYyqrt94aKKbUhSz8Sj8ODcwuB1FitaPR QURDaEU+vfA3zfZmuPzP3odY8NhKcuxL35OCDB2C1ZtpXgA6hp1TbhtwoUvuQ78iNesz PoaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=jJdhWW4fK4y5udXyK0NB1puC8z9XRvo9dDPHL5cwnpk=; b=L4zJnO5KFvT3qKO0jmPaSF0woap14zp6jVvU/OIH5jLT9lGK/SHkO5RhJtmGmTihX3 zTgjMb6ermjW0UV0bHcB+btkkRMqHohVqrPKWJ+TS64G85Eiea8gSVjxYWA/oRBc52ve FiuTidmk4dbd8NOgFjGAth+0ZzOcdWDUT6Pt6dFJQdG31Ubqw8hfPrFQlxSc1+i26ZQC Hf2es/jtmbY/vl1aiWY7hBta6ev5IuYfpnRttU6vAEpG5c9aom1r7jKIouvLddmocD5G /TEm079qNvnn9BvJDeU3dT4y95MReXo25aN/fi2LwtuGJTKVTRIADT3x7nCKIEnhKouY ZFuA== X-Gm-Message-State: AOAM530eRTah5xAz7dI9hZgj5ODqG5jlpEsQfZuwTP7AdMLTuKGea2zm LpkrjdwCuNsWdAYY6WCrOhkHW+OGLrH2OQ== X-Google-Smtp-Source: ABdhPJzKTB63rtSEOGIVWIkzGei/LAwidsPG0NwIli/yvBSG5aam3MaMz0qu0bu7YgHi6TsGinIyHg== X-Received: by 2002:a5d:4903:: with SMTP id x3mr24656623wrq.143.1615764592458; Sun, 14 Mar 2021 16:29:52 -0700 (PDT) Received: from localhost.localdomain (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id o2sm7336952wmc.23.2021.03.14.16.29.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Mar 2021 16:29:52 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [RFC PATCH 7/8] monitor: Restrict CPU I/O instructions Date: Mon, 15 Mar 2021 00:29:12 +0100 Message-Id: <20210314232913.2607360-8-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210314232913.2607360-1-f4bug@amsat.org> References: <20210314232913.2607360-1-f4bug@amsat.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::433; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-x433.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action 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: Richard Henderson , Markus Armbruster , "Dr. David Alan Gilbert" , Claudio Fontana , Paolo Bonzini , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Restrict CPU I/O instructions to architectures providing I/O bus. Signed-off-by: Philippe Mathieu-Daudé --- monitor/misc.c | 4 ++++ hmp-commands.hx | 2 ++ 2 files changed, 6 insertions(+) diff --git a/monitor/misc.c b/monitor/misc.c index d40c7d5afc0..b59f11433eb 100644 --- a/monitor/misc.c +++ b/monitor/misc.c @@ -77,7 +77,9 @@ #include "qapi/qmp-event.h" #include "sysemu/cpus.h" #include "qemu/cutils.h" +#ifdef TARGET_HAS_IOPORT #include "exec/cpu-io.h" +#endif #if defined(TARGET_S390X) #include "hw/s390x/storage-keys.h" #include "hw/s390x/storage-attributes.h" @@ -884,6 +886,7 @@ static void hmp_mouse_button(Monitor *mon, const QDict *qdict) mouse_button_state = button_state; } +#ifdef TARGET_HAS_IOPORT static void hmp_ioport_read(Monitor *mon, const QDict *qdict) { int size = qdict_get_int(qdict, "size"); @@ -939,6 +942,7 @@ static void hmp_ioport_write(Monitor *mon, const QDict *qdict) break; } } +#endif /* TARGET_HAS_IOPORT */ static void hmp_boot_set(Monitor *mon, const QDict *qdict) { diff --git a/hmp-commands.hx b/hmp-commands.hx index d4001f9c5dc..cedcedf7d8d 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -561,6 +561,7 @@ SRST used. ERST +#ifdef TARGET_HAS_IOPORT { .name = "i", .args_type = "fmt:/,addr:i,index:i.", @@ -586,6 +587,7 @@ SRST ``o/``\ *fmt* *addr* *val* Write to I/O port. ERST +#endif /* TARGET_HAS_IOPORT */ { .name = "sendkey", From patchwork Sun Mar 14 23:29:13 2021 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: 12138117 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DCD64C433DB for ; Sun, 14 Mar 2021 23:36:15 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 4DDBB64E69 for ; Sun, 14 Mar 2021 23:36:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4DDBB64E69 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:32900 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lLaHO-0007P7-EX for qemu-devel@archiver.kernel.org; Sun, 14 Mar 2021 19:36:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44376) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lLaBM-00007P-DQ for qemu-devel@nongnu.org; Sun, 14 Mar 2021 19:30:00 -0400 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]:46832) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lLaBK-0003kJ-P6 for qemu-devel@nongnu.org; Sun, 14 Mar 2021 19:30:00 -0400 Received: by mail-wr1-x42a.google.com with SMTP id v4so4812189wrp.13 for ; Sun, 14 Mar 2021 16:29:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=omYqz1dBbqgnwbqos/CkuFX5mITKAgtBS0In2um2yKk=; b=garltiyyObrLsT9P5uLMXRvWWCELa8cLtHJfM8XThPwu3/v2SxJLT7FurF9FWULH5o WxErGQbvn6eiS/u0rGtJT3R6cNkzhiCh9iSBp02OET4i9ml1zVMTOfMd/+zRqlLRNNJT aNqj+60YC3huNDaUgluI8FY2Rrbqn9iq8wFM7N9sH9zgkQYT6fV54rCUvxu6FUw/xEvC 9/g4CUDoPtIImspXQkUSaoCAUtrz16gCjE9SuM4ja1EHIyPRl0Dq9CEd5zaxBuPSLlkI /WbUao93T2lfGuTsWKjrVzZcKJNlybKdqZdPisooYRRZXoXm0msvJpVnxTQaTJnq/bys jXuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=omYqz1dBbqgnwbqos/CkuFX5mITKAgtBS0In2um2yKk=; b=ijygDyGkPvV2YoxlZJ3DEAgV9XQAmcsq3UnHXZsdKwC+6IIMr/TrDU6fQP7rOTxZ5V StDnZn8cKkvH3ErnLqhdfDecLoJhWkmqAD0hfMIImjx1zLrAKH1zaJ0r0XfvKYJnk83R 3MwxTFV1Mzf2lCqNOjwNEvGNfN+7ZtZyoaN61MvotxFcRuMwmn9O0T+JG0UGkOngjNBK PR6HtM/+FhfmaRyqmzhACRSoV9F51XFPaUefJjrUxqrYlSggfXJHa5u8X1XnGCRuOUFP R4urre8H+zyb29Udc8a/av+P6TUiAoPQFxhpf7umjX9MMekSxoZVma5i8LCE+Su93hjJ drBA== X-Gm-Message-State: AOAM532Q5vZ3Gr/6zwpIsHdf8oFu8lXNBsjgxEqr4kCLHm4aN9HB44YQ zjzmboe2X2ZELf+uvAQBQIvvoax21LCIVQ== X-Google-Smtp-Source: ABdhPJxAmp1QFt+9Wcs/WVlU4KvZUtK8eq0jGOwzLGfLhpejtzagvwU5JLVVPE0+A+Rzmy6WSZwL4A== X-Received: by 2002:a5d:6312:: with SMTP id i18mr24967028wru.149.1615764597150; Sun, 14 Mar 2021 16:29:57 -0700 (PDT) Received: from localhost.localdomain (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id q19sm17336065wrg.80.2021.03.14.16.29.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Mar 2021 16:29:56 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [RFC PATCH 8/8] softmmu: Restrict CPU I/O instructions Date: Mon, 15 Mar 2021 00:29:13 +0100 Message-Id: <20210314232913.2607360-9-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210314232913.2607360-1-f4bug@amsat.org> References: <20210314232913.2607360-1-f4bug@amsat.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42a; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-x42a.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action 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: Paolo Bonzini , Richard Henderson , Claudio Fontana , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Restrict CPU I/O instructions to architectures providing I/O bus. Signed-off-by: Philippe Mathieu-Daudé --- softmmu/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/softmmu/meson.build b/softmmu/meson.build index ebf063b8990..3df196917a0 100644 --- a/softmmu/meson.build +++ b/softmmu/meson.build @@ -2,7 +2,6 @@ 'arch_init.c', 'balloon.c', 'cpus.c', - 'cpu-io.c', 'cpu-throttle.c', 'datadir.c', 'globals.c', @@ -16,6 +15,7 @@ 'cpu-timers.c', 'runstate-action.c', )]) +specific_ss.add(when: 'TARGET_HAS_IOPORT', if_true: files('cpu-io.c')) specific_ss.add(when: ['CONFIG_SOFTMMU', 'CONFIG_TCG'], if_true: [files( 'icount.c'