From nobody Sat May 4 17:44:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584320941; cv=none; d=zohomail.com; s=zohoarc; b=MDd4kD0kc+6Gv4ISW6G3VP84qFiIuyK4zA+zoAa38SdscwauKLmg7yY99kSBnRHzlKEqtwD3gwGhhxRrFpgYHUByd9C9oKe7Ln2XT9xvAMTNIgaIMR6Jf/Mjq0dgXXi8DtR2nJ8LSi6a6prECFRNKTQ4nmRbidwTLtSx+JbwR74= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584320941; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=jznyG6ZwK2HqBmm0XWTDAnNXPpietF898ys70w4PLHk=; b=Aofu4hbpgOJtvyGH3Yiy+OptDLrhm6fXW9F7GnIzUFq8Y+9HUQHWeJ8NBpJ3VlxslGFdf8EAL+ULcKZTLcgSMZcfi79fU8J/uR4PlmIdWxonKSB+/9oh+6zRB7+ZHCsB9UspOis+9p2yHjIkuJkb9rJvYFQIS9/EJbfurNqbS7Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584320941320424.0370554327974; Sun, 15 Mar 2020 18:09:01 -0700 (PDT) Received: from localhost ([::1]:32772 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDeFX-0005kb-AL for importer@patchew.org; Sun, 15 Mar 2020 21:08:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57168) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDdLr-0008DR-9x for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDdLp-00046D-61 for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:26 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:39068 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 1jDdLp-00044B-1A for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:25 -0400 Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-439-lG9mLbDeNnOgNNSjR1vUTA-1; Sun, 15 Mar 2020 20:11:21 -0400 Received: by mail-wr1-f69.google.com with SMTP id t10so1852435wrp.15 for ; Sun, 15 Mar 2020 17:11:21 -0700 (PDT) Received: from localhost.localdomain (191.red-83-42-66.dynamicip.rima-tde.net. [83.42.66.191]) by smtp.gmail.com with ESMTPSA id f15sm16109952wrt.9.2020.03.15.17.11.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2020 17:11:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584317484; 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=jznyG6ZwK2HqBmm0XWTDAnNXPpietF898ys70w4PLHk=; b=Su1olYXksk3/ivw8SeEMoD8lsZluSD0O8RLOLVPAVASNZXSyGrApHkvo23Fsmgg3BxzR5U KLZdeIblREKundgO5WXjVlpqbs1+6HSADwUFtqARF6saTypppT8w7b7lwB/8hO3xvcuJCY j92Yceoy5vMAJBwxhHVHoyYFxzEdftg= X-MC-Unique: lG9mLbDeNnOgNNSjR1vUTA-1 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=cjkIxsGDVLhIoi2wxX81/gLAzGZQZKT/spQLce8K0hQ=; b=Iyufo3tsX7LDDKcBe/kKTYGGq1mYJWOFnSgTISK66CglK3c5XOfiCkv4qYkbV6iDsk 033twQPQWbjsQJqbzB3ZASMQwCVlrsKjqTKeqOQKY8idPyIc5bcHhfnRptpOL3vimzMm 1wLH8d1qOzc9F7bjO4gCjZBAT6HMCS1FK16TC1Dz+INx9FBrXWqNUtsJhLG3G19ioPPH SSbOwPq0BRRMPa2ZED+dI53QRfN9WYn+TdhWLkiW6802H0mj+wWaQ/BeHIXcsPqaLjW8 YVX6/Km+YXGQbCVwujdeWFOCg3m9YfAHgmhrDn3qnAKzd+s/pjMeldhZno/CzjVD3XvH rkIw== X-Gm-Message-State: ANhLgQ1HyJxwRnGeTU5FTrSWhJ9g2wZCOdiuYpy72wz4mVTGBGbLQMQJ r44pxGp0gtsNYLRvzNst0nPd60Ck9XrHCuwXsp0oNE6HLwuLO4vqhyv1kr6HIfoEJUdzyFARokz EYj9D0i0J0FJmEaw= X-Received: by 2002:a1c:6605:: with SMTP id a5mr24393043wmc.32.1584317479913; Sun, 15 Mar 2020 17:11:19 -0700 (PDT) X-Google-Smtp-Source: ADFU+vuo0cRj+iuolTs3FlbHkV8ErFMyIFtT512xgxL4hi8D0xSKaiNthiT2j73tAx6df9E9vsCwHw== X-Received: by 2002:a1c:6605:: with SMTP id a5mr24393015wmc.32.1584317479669; Sun, 15 Mar 2020 17:11:19 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v2 1/9] hw/core/qdev-properties: Use qemu_strtol() in set_mac() handler Date: Mon, 16 Mar 2020 01:11:03 +0100 Message-Id: <20200316001111.31004-2-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200316001111.31004-1-philmd@redhat.com> References: <20200316001111.31004-1-philmd@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable 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: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Eduardo Habkost , Richard Henderson , Michael Roth , Markus Armbruster , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8"; text/plain; charset="utf-8" The MACAddr structure contains an array of uint8_t. Previously if a value was out of the [0..255] range, it was silently casted and no input validation was done. Replace strtol() by qemu_strtol() -- so checkpatch.pl won't complain if we move this code later -- and return EINVAL if the input is invalid. Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- v2: Comment we added input validation (rth) --- hw/core/qdev-properties.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 59380ed761..48e4c98cf0 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -1,4 +1,5 @@ #include "qemu/osdep.h" +#include "qemu/cutils.h" #include "net/net.h" #include "hw/qdev-properties.h" #include "qapi/error.h" @@ -532,7 +533,8 @@ static void set_mac(Object *obj, Visitor *v, const char= *name, void *opaque, MACAddr *mac =3D qdev_get_prop_ptr(dev, prop); Error *local_err =3D NULL; int i, pos; - char *str, *p; + char *str; + const char *p; =20 if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); @@ -546,6 +548,8 @@ static void set_mac(Object *obj, Visitor *v, const char= *name, void *opaque, } =20 for (i =3D 0, pos =3D 0; i < 6; i++, pos +=3D 3) { + long val; + if (!qemu_isxdigit(str[pos])) { goto inval; } @@ -561,7 +565,10 @@ static void set_mac(Object *obj, Visitor *v, const cha= r *name, void *opaque, goto inval; } } - mac->a[i] =3D strtol(str+pos, &p, 16); + if (qemu_strtol(str + pos, &p, 16, &val) < 0 || val > 0xff) { + goto inval; + } + mac->a[i] =3D val; } g_free(str); return; --=20 2.21.1 From nobody Sat May 4 17:44:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584322544; cv=none; d=zohomail.com; s=zohoarc; b=STw+UsgB1uZYadH7xGx5gbTUSGqGP5Z6EqvhJbIA2bb9mqO3dF5SNgz9CP4Wjf5AcPUaK/Kjot/NScDBjchqiOhE91u8cjQhmHePAOU1bh9ThHUwIgaUp+4vmMT+Hmku/OmqfZLZCkmkZS9MQl696akeMvaOEWp5+nkU5l0PZ/k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584322544; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=PL9v4CeGO/2oc9s92a/R9E/v/MDOYA5KsXid6uFaEzU=; b=VQlRH5AU66aFOAIjRE8NdC1PcYvDy6dJz1n7TD+RlqNp/QkWjoGD+nWWR3hDc2wMVAd64DmjY/slVcvN5aNwy8YtbGxzhS3hjPNdYlmMvRngn447HA798qneYAhxRFm/Idug6zsbvls1JVOwhU6KVfQZksSV+TDaCqZxPHamfnw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 158432254456461.31510009533656; Sun, 15 Mar 2020 18:35:44 -0700 (PDT) Received: from localhost ([::1]:32946 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDefP-0006ST-8r for importer@patchew.org; Sun, 15 Mar 2020 21:35:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57273) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDdLw-0008FJ-Km for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDdLu-0004SK-Is for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:32 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:54767 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jDdLu-0004OK-EA for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:30 -0400 Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-74-12iizrilNICfVH_XfYAsBA-1; Sun, 15 Mar 2020 20:11:27 -0400 Received: by mail-wr1-f70.google.com with SMTP id b12so8207499wro.4 for ; Sun, 15 Mar 2020 17:11:27 -0700 (PDT) Received: from localhost.localdomain (191.red-83-42-66.dynamicip.rima-tde.net. [83.42.66.191]) by smtp.gmail.com with ESMTPSA id m10sm713458wmc.24.2020.03.15.17.11.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2020 17:11:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584317489; 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=PL9v4CeGO/2oc9s92a/R9E/v/MDOYA5KsXid6uFaEzU=; b=KboQaqPKwqrDJMghpJFVZjRTiQYxnt3GEaXcWJort8dZzYNBJb6xeT/ovFopXL1e17P856 oxXZdcrn+LS4AxtJ0iSrW9sqGmgPLk6/qjjwUTjqka1Cq3sqX3dDg+jwHQEvgPYk5LGw3l sz2zREJusMAARoOsH/uzqwXV++7fzg0= X-MC-Unique: 12iizrilNICfVH_XfYAsBA-1 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=Z/zbte99k4d/M7DBGyDBjG9o4G746mqNhzLp9Pz4m/w=; b=e7cL6xsFbojZIywZ3p2aE9A7QcsLYG4QLbeplkgV/4DuccdoqMoaq/cGUP7n80hsc3 BcL6xyElZ2U8MTcoTztgIXMyrga5xkeH7T6B3XGe6bFAy6sLmlR7pVmzKWfkD4I/D03e 61Z2/udQ32lqg6+6sq38/EF6jg4BDxtRpADXjj6QS/M4+PTFgzU/lh9zqB2txMO+XgF/ uozVqyr8H+26MrtOrL6JtejPIGhF8MyWUZg9bsJlboO9GhewGpyNJDk07uS99a9t/qy4 p87gE3qBx76AhIFmnemVv0VvfLWfXucllj91S/7FV1a4l2qAWmH2PEfOOZxRRqeUTR5v FqnQ== X-Gm-Message-State: ANhLgQ0VfK8FrEt3Q6IOFg8Qc+ebX2XlIKYQnVuKKrukQ8nQ0s9YxnZC zLWcGENQgTyx/OlhpT8GGjmSTumQqKQSVhuefIBwIqFzyKdylyUhZF/U5RhkEIyR7VQ9xp8eqje lmJ1LOQAt3CGpGZs= X-Received: by 2002:a1c:2358:: with SMTP id j85mr25807428wmj.137.1584317485187; Sun, 15 Mar 2020 17:11:25 -0700 (PDT) X-Google-Smtp-Source: ADFU+vtymsgRj0mrAJNPsEgdU5AEA8Svcc7shBBY9ByFbMcPebmUKjEk2yAZlPPkxZkTU9TPcTsfpw== X-Received: by 2002:a1c:2358:: with SMTP id j85mr25807406wmj.137.1584317484960; Sun, 15 Mar 2020 17:11:24 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v2 2/9] hw/core/qdev-properties: Use qemu_strtoul() in set_pci_host_devaddr() Date: Mon, 16 Mar 2020 01:11:04 +0100 Message-Id: <20200316001111.31004-3-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200316001111.31004-1-philmd@redhat.com> References: <20200316001111.31004-1-philmd@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 205.139.110.61 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: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Eduardo Habkost , Michael Roth , Markus Armbruster , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8"; text/plain; charset="utf-8" Replace strtoul() by qemu_strtoul() so checkpatch.pl won't complain if we move this code later. Increase the slot and func local variables to unsigned long so that the range check isn't truncated. Remove the 'e =3D=3D p' test which is done in check_strtox_error(), called by qemu_strtoul(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- v2: drop the e =3D=3D p test, do not do modify range check (rth) --- hw/core/qdev-properties.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 48e4c98cf0..0e4da655c1 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -820,10 +820,10 @@ static void set_pci_host_devaddr(Object *obj, Visitor= *v, const char *name, PCIHostDeviceAddress *addr =3D qdev_get_prop_ptr(dev, prop); Error *local_err =3D NULL; char *str, *p; - char *e; + const char *e; unsigned long val; unsigned long dom =3D 0, bus =3D 0; - unsigned int slot =3D 0, func =3D 0; + unsigned long slot =3D 0, func =3D 0; =20 if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); @@ -837,23 +837,23 @@ static void set_pci_host_devaddr(Object *obj, Visitor= *v, const char *name, } =20 p =3D str; - val =3D strtoul(p, &e, 16); - if (e =3D=3D p || *e !=3D ':') { + if (qemu_strtoul(p, &e, 16, &val) < 0) { + goto inval; + } + if (*e !=3D ':') { goto inval; } bus =3D val; =20 - p =3D e + 1; - val =3D strtoul(p, &e, 16); - if (e =3D=3D p) { + p =3D (char *)e + 1; + if (qemu_strtoul(p, &e, 16, &val) < 0) { goto inval; } if (*e =3D=3D ':') { dom =3D bus; bus =3D val; - p =3D e + 1; - val =3D strtoul(p, &e, 16); - if (e =3D=3D p) { + p =3D (char *)e + 1; + if (qemu_strtoul(p, &e, 16, &val) < 0) { goto inval; } } @@ -862,9 +862,8 @@ static void set_pci_host_devaddr(Object *obj, Visitor *= v, const char *name, if (*e !=3D '.') { goto inval; } - p =3D e + 1; - val =3D strtoul(p, &e, 10); - if (e =3D=3D p) { + p =3D (char *)e + 1; + if (qemu_strtoul(p, &e, 10, &val) < 0) { goto inval; } func =3D val; --=20 2.21.1 From nobody Sat May 4 17:44:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584321841; cv=none; d=zohomail.com; s=zohoarc; b=ASs9u7kC0r5Xmg/H2uIE8kLNpb7fA9e//U9TyebIFvtz5vJfXcbpOuklHZFHNm86zJrsk8KiKsytiCnebRcJTgqlAEV/xPKen5d22/L828xVMYwXWREFeakWJDmG0w6d/5TytKOklFGGhOnFjil2nygFGGly0YnQDNoDPmju6FE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584321841; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XIuJH9XweykhZcigkBeWkONlanSTYG2zvlCgRMYIfdo=; b=YU6xkRz+cHSgaWjllay9yhSh2CN5sjOWLHed+kMFDW7UoW+/zuA/ApTG2YnOnw1XdUMeN5cbIfAlC3JsdV3pMgeKuIZz9gOI3lNW3dXXPjIciKjPDfsagIlnAvtgh2RcFkswtefn101xY7PADPcBCaae0uBc0UULZYuxEXL6Lpo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584321841410437.59952859400005; Sun, 15 Mar 2020 18:24:01 -0700 (PDT) Received: from localhost ([::1]:32872 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDeU2-0002KB-Lt for importer@patchew.org; Sun, 15 Mar 2020 21:23:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57363) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDdM4-0008IG-DL for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDdLz-0004nD-A4 for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:40 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:57380 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jDdLz-0004ej-5P for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:35 -0400 Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-56-HyX-pBpYPZCJE7WVVb7aQg-1; Sun, 15 Mar 2020 20:11:32 -0400 Received: by mail-wr1-f69.google.com with SMTP id v6so8067561wrg.22 for ; Sun, 15 Mar 2020 17:11:31 -0700 (PDT) Received: from localhost.localdomain (191.red-83-42-66.dynamicip.rima-tde.net. [83.42.66.191]) by smtp.gmail.com with ESMTPSA id c23sm28103571wme.39.2020.03.15.17.11.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2020 17:11:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584317493; 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=XIuJH9XweykhZcigkBeWkONlanSTYG2zvlCgRMYIfdo=; b=MDSzN5KB7/XjpcXLHR157CxdNbsSqusoRutuGrhgFzeymMU7v50o59mc38PKfzLguu2z4O BfAqJYouutEBe8Obo1S6HS/MnbUwD3heakf8CRwr6OGWVTDlzDh6hNuquptc+fw0vm71Ce GzflsXzToA731clvq6Ugc2wOPWq/m9c= X-MC-Unique: HyX-pBpYPZCJE7WVVb7aQg-1 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=T07f0oxk6PiljPlit4vlu7WFh9/oVHLX+IM98LA5apA=; b=VIqOBozc89M61Aa1wskCTmEJAg0CCeQYpOAb42S6ZgFvROt54+mCWGykpQXh1fGt27 uF9j6zp87aX10CUdjhE2MQsTGuZn82hfhy1SHQAOKeAYuLq17TZfYzCqxcBT45UPK22V VXYs+5KT0ymcj+/U7+s4vCC5fnlzooxHZeo/UM9iLTJ6d0YQdvhxhV7hai650IbzibV6 c4+AgWZL/UVE0bpu+c1gsMip6P9ClSbvFJVmuz0zxvHaEFKLDaGk+n8pxwF03B4CZUAS 1Re1nBeH2tGyZxZ26o0eiK5C5YILJQ27jves/o5UbES9Cd+iGQ7h5Zpw66KqKty8UixO s18g== X-Gm-Message-State: ANhLgQ0YUg0j6NQC1QDMqHBFuTXdjLIK0ojZgHTspz8K+xFDScT7OGKO UnXx2aznCe+x7qPZQ/rkZtToER7ikbvGAyeN4hPsZXmsiqf6ygFJJxZevX/iaMECODiAOQE6fkm CqkpDYN5vCTNcLNc= X-Received: by 2002:a5d:6245:: with SMTP id m5mr32313873wrv.154.1584317490615; Sun, 15 Mar 2020 17:11:30 -0700 (PDT) X-Google-Smtp-Source: ADFU+vtwUJ6968d0frHLgVPd6S8Vf6H9zyITIH0xkdCdyffmSNEg2DYRaM4NprVOT4DPsH2kfw/JQw== X-Received: by 2002:a5d:6245:: with SMTP id m5mr32313855wrv.154.1584317490453; Sun, 15 Mar 2020 17:11:30 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v2 3/9] hw/core/qdev-properties: Fix code style Date: Mon, 16 Mar 2020 01:11:05 +0100 Message-Id: <20200316001111.31004-4-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200316001111.31004-1-philmd@redhat.com> References: <20200316001111.31004-1-philmd@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 205.139.110.61 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: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Eduardo Habkost , Richard Henderson , Michael Roth , Markus Armbruster , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8"; text/plain; charset="utf-8" We will soon move this code, fix its style to avoid checkpatch.pl to complain. Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/core/qdev-properties.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 0e4da655c1..8ef949e3bd 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -553,15 +553,15 @@ static void set_mac(Object *obj, Visitor *v, const ch= ar *name, void *opaque, if (!qemu_isxdigit(str[pos])) { goto inval; } - if (!qemu_isxdigit(str[pos+1])) { + if (!qemu_isxdigit(str[pos + 1])) { goto inval; } if (i =3D=3D 5) { - if (str[pos+2] !=3D '\0') { + if (str[pos + 2] !=3D '\0') { goto inval; } } else { - if (str[pos+2] !=3D ':' && str[pos+2] !=3D '-') { + if (str[pos + 2] !=3D ':' && str[pos + 2] !=3D '-') { goto inval; } } @@ -767,8 +767,8 @@ static void set_blocksize(Object *obj, Visitor *v, cons= t char *name, /* We rely on power-of-2 blocksizes for bitmasks */ if ((value & (value - 1)) !=3D 0) { error_setg(errp, - "Property %s.%s doesn't take value '%" PRId64 "', it's n= ot a power of 2", - dev->id ?: "", name, (int64_t)value); + "Property %s.%s doesn't take value '%" PRId64 "', " + "it's not a power of 2", dev->id ?: "", name, (int64_t)v= alue); return; } =20 --=20 2.21.1 From nobody Sat May 4 17:44:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584322368; cv=none; d=zohomail.com; s=zohoarc; b=d9u+Q0tYK0Ge6GbksDfnipDTph6gEdkqadY0m4BXzhqjsdUMqB97/dUcOjcLglxr0U5fRto4kAxkETUYQ36RMJXx6pp0/DwJ6DDVuMNexpJqXnhIqqNLFBqG49/47kPyedzaSKL0EBZOjd+FOFdqCGZ0p9gjRkPgnLEH9wjvoog= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584322368; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Ua1jkYmzCnlEiV4PtiMK/WHhXHx6VUTub5ZWx4B5YBY=; b=hmP8m6iYM169OOyhogSo02VjH7bR9qP66blX9TR7ZKuO5CL9eYP6CE7yd7fKgVx05Pw5cwqkdhsNqI8IbTqUtG3NzVzLdDzU5ZHyf7SdA7zhq43P9+9WILkqUEnG+O9zpI/KMSvSWSMNNKGN6Hc90ia+RzvCxJMhBj7nO+He0eg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584322368820559.5479053948133; Sun, 15 Mar 2020 18:32:48 -0700 (PDT) Received: from localhost ([::1]:32934 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDecY-0005Lr-So for importer@patchew.org; Sun, 15 Mar 2020 21:32:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57404) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDdM7-0008KD-EW for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDdM3-0004y5-Si for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:43 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:58961 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jDdM3-0004wV-OC for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:39 -0400 Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-60-kfGGnpaxPgaaF73tWyaevA-1; Sun, 15 Mar 2020 20:11:37 -0400 Received: by mail-wr1-f69.google.com with SMTP id q18so8131215wrw.5 for ; Sun, 15 Mar 2020 17:11:37 -0700 (PDT) Received: from localhost.localdomain (191.red-83-42-66.dynamicip.rima-tde.net. [83.42.66.191]) by smtp.gmail.com with ESMTPSA id b5sm20354999wrw.86.2020.03.15.17.11.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2020 17:11:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584317499; 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=Ua1jkYmzCnlEiV4PtiMK/WHhXHx6VUTub5ZWx4B5YBY=; b=GY1hy7myzlsCHyQ95o0OI/eGFrh8sYFD440uKdSuqKbVqZnA9yyGdIoFK4sWTfYAOgL039 acch58wEMW3s4/S4n2ZHejPtzffdcWLiwJxpGtl7U1GUamS2XZ9ORRBjFdYnpEUJOtnipg VztSGkzxMCwVEdD54tBsE1YXwiFwxls= X-MC-Unique: kfGGnpaxPgaaF73tWyaevA-1 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=s8oVuWi5Pwe/IVfF1LT+AZqvbsSLy1BWdX/KcJ8rJNU=; b=duEwFAB9ZyTwmi1k13lLnaPeS04XjK3Fe2zAUoCaVdB40uaWC6ON4iB7GFFwgUtfjW Vqa02jsRnuhCnOOKkAL25zHilRxOZglRLc74X6s4PjCZ2CWNH8TZJyVKfwvvj23zPaM0 LNKh9XRFkylEVqVYxUPXmmrkcD2WoipyuYKqlSEAlKQLRB/C7GofiDwp0S/DVx7+kHzd R/OH2Z7Ajl5dyKFk2Ssyh4Wm8s1SlFyzYGtDZUiIPsriKQbXXzKeNhISHFOOvvFuI2TS vJNGvTrn1r/QENukO9nL0w6GFKXtJs/0yfILLW7UPWWgz6zx0NZwhzZ3xQE3MZNLBGhT ryaQ== X-Gm-Message-State: ANhLgQ1TAIhBb0+YA2AnhtOAsldvwYleRmgATR+pP6n0YUDWhqlwODx+ q1N2NoskOxmo6IVHaItqJ3YYR9T7zF/7khKABcnthbIQz9zc9RXptJ2oLyV7d2hyN/qAi8t/Rl3 EWFukaLz6Q6bw3qQ= X-Received: by 2002:a1c:c5:: with SMTP id 188mr24067955wma.89.1584317495996; Sun, 15 Mar 2020 17:11:35 -0700 (PDT) X-Google-Smtp-Source: ADFU+vsbDylGOsx0xSgCsw4cxARby8HR/p4/6MAyhl7B/m0vIX81KejWyuePWiACp3gMq/bFnwWQ8w== X-Received: by 2002:a1c:c5:: with SMTP id 188mr24067934wma.89.1584317495765; Sun, 15 Mar 2020 17:11:35 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v2 4/9] hw/core/qdev-properties: Export enum-related functions Date: Mon, 16 Mar 2020 01:11:06 +0100 Message-Id: <20200316001111.31004-5-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200316001111.31004-1-philmd@redhat.com> References: <20200316001111.31004-1-philmd@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 205.139.110.61 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: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Eduardo Habkost , Richard Henderson , Michael Roth , Markus Armbruster , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8"; text/plain; charset="utf-8" We are going to split this file and reuse these static functions. Add the local "qdev-prop-internal.h" header declaring them. Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/core/qdev-prop-internal.h | 19 ++++++++++++ hw/core/qdev-properties.c | 58 +++++++++++++++++++----------------- 2 files changed, 49 insertions(+), 28 deletions(-) create mode 100644 hw/core/qdev-prop-internal.h diff --git a/hw/core/qdev-prop-internal.h b/hw/core/qdev-prop-internal.h new file mode 100644 index 0000000000..2a8c9a306a --- /dev/null +++ b/hw/core/qdev-prop-internal.h @@ -0,0 +1,19 @@ +/* + * qdev property parsing + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#ifndef HW_CORE_QDEV_PROP_INTERNAL_H +#define HW_CORE_QDEV_PROP_INTERNAL_H + +void qdev_propinfo_get_enum(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp); +void qdev_propinfo_set_enum(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp); + +void qdev_propinfo_set_default_value_enum(ObjectProperty *op, + const Property *prop); + +#endif diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 8ef949e3bd..3f3a008938 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -16,6 +16,7 @@ #include "qapi/visitor.h" #include "chardev/char.h" #include "qemu/uuid.h" +#include "qdev-prop-internal.h" =20 void qdev_prop_set_after_realize(DeviceState *dev, const char *name, Error **errp) @@ -51,8 +52,8 @@ void *qdev_get_prop_ptr(DeviceState *dev, Property *prop) return ptr; } =20 -static void get_enum(Object *obj, Visitor *v, const char *name, void *opaq= ue, - Error **errp) +void qdev_propinfo_get_enum(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; @@ -61,8 +62,8 @@ static void get_enum(Object *obj, Visitor *v, const char = *name, void *opaque, visit_type_enum(v, prop->name, ptr, prop->info->enum_table, errp); } =20 -static void set_enum(Object *obj, Visitor *v, const char *name, void *opaq= ue, - Error **errp) +void qdev_propinfo_set_enum(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; @@ -76,7 +77,8 @@ static void set_enum(Object *obj, Visitor *v, const char = *name, void *opaque, visit_type_enum(v, prop->name, ptr, prop->info->enum_table, errp); } =20 -static void set_default_value_enum(ObjectProperty *op, const Property *pro= p) +void qdev_propinfo_set_default_value_enum(ObjectProperty *op, + const Property *prop) { object_property_set_default_str(op, qapi_enum_lookup(prop->info->enum_table, prop->defval.i)); @@ -591,9 +593,9 @@ const PropertyInfo qdev_prop_on_off_auto =3D { .name =3D "OnOffAuto", .description =3D "on/off/auto", .enum_table =3D &OnOffAuto_lookup, - .get =3D get_enum, - .set =3D set_enum, - .set_default_value =3D set_default_value_enum, + .get =3D qdev_propinfo_get_enum, + .set =3D qdev_propinfo_set_enum, + .set_default_value =3D qdev_propinfo_set_default_value_enum, }; =20 /* --- lost tick policy --- */ @@ -603,9 +605,9 @@ QEMU_BUILD_BUG_ON(sizeof(LostTickPolicy) !=3D sizeof(in= t)); const PropertyInfo qdev_prop_losttickpolicy =3D { .name =3D "LostTickPolicy", .enum_table =3D &LostTickPolicy_lookup, - .get =3D get_enum, - .set =3D set_enum, - .set_default_value =3D set_default_value_enum, + .get =3D qdev_propinfo_get_enum, + .set =3D qdev_propinfo_set_enum, + .set_default_value =3D qdev_propinfo_set_default_value_enum, }; =20 /* --- Block device error handling policy --- */ @@ -617,9 +619,9 @@ const PropertyInfo qdev_prop_blockdev_on_error =3D { .description =3D "Error handling policy, " "report/ignore/enospc/stop/auto", .enum_table =3D &BlockdevOnError_lookup, - .get =3D get_enum, - .set =3D set_enum, - .set_default_value =3D set_default_value_enum, + .get =3D qdev_propinfo_get_enum, + .set =3D qdev_propinfo_set_enum, + .set_default_value =3D qdev_propinfo_set_default_value_enum, }; =20 /* --- BIOS CHS translation */ @@ -631,9 +633,9 @@ const PropertyInfo qdev_prop_bios_chs_trans =3D { .description =3D "Logical CHS translation algorithm, " "auto/none/lba/large/rechs", .enum_table =3D &BiosAtaTranslation_lookup, - .get =3D get_enum, - .set =3D set_enum, - .set_default_value =3D set_default_value_enum, + .get =3D qdev_propinfo_get_enum, + .set =3D qdev_propinfo_set_enum, + .set_default_value =3D qdev_propinfo_set_default_value_enum, }; =20 /* --- FDC default drive types */ @@ -643,9 +645,9 @@ const PropertyInfo qdev_prop_fdc_drive_type =3D { .description =3D "FDC drive type, " "144/288/120/none/auto", .enum_table =3D &FloppyDriveType_lookup, - .get =3D get_enum, - .set =3D set_enum, - .set_default_value =3D set_default_value_enum, + .get =3D qdev_propinfo_get_enum, + .set =3D qdev_propinfo_set_enum, + .set_default_value =3D qdev_propinfo_set_default_value_enum, }; =20 /* --- MultiFDCompression --- */ @@ -655,9 +657,9 @@ const PropertyInfo qdev_prop_multifd_compression =3D { .description =3D "multifd_compression values, " "none/zlib/zstd", .enum_table =3D &MultiFDCompression_lookup, - .get =3D get_enum, - .set =3D set_enum, - .set_default_value =3D set_default_value_enum, + .get =3D qdev_propinfo_get_enum, + .set =3D qdev_propinfo_set_enum, + .set_default_value =3D qdev_propinfo_set_default_value_enum, }; =20 /* --- pci address --- */ @@ -1281,9 +1283,9 @@ const PropertyInfo qdev_prop_off_auto_pcibar =3D { .name =3D "OffAutoPCIBAR", .description =3D "off/auto/bar0/bar1/bar2/bar3/bar4/bar5", .enum_table =3D &OffAutoPCIBAR_lookup, - .get =3D get_enum, - .set =3D set_enum, - .set_default_value =3D set_default_value_enum, + .get =3D qdev_propinfo_get_enum, + .set =3D qdev_propinfo_set_enum, + .set_default_value =3D qdev_propinfo_set_default_value_enum, }; =20 /* --- PCIELinkSpeed 2_5/5/8/16 -- */ @@ -1362,7 +1364,7 @@ const PropertyInfo qdev_prop_pcie_link_speed =3D { .enum_table =3D &PCIELinkSpeed_lookup, .get =3D get_prop_pcielinkspeed, .set =3D set_prop_pcielinkspeed, - .set_default_value =3D set_default_value_enum, + .set_default_value =3D qdev_propinfo_set_default_value_enum, }; =20 /* --- PCIELinkWidth 1/2/4/8/12/16/32 -- */ @@ -1459,5 +1461,5 @@ const PropertyInfo qdev_prop_pcie_link_width =3D { .enum_table =3D &PCIELinkWidth_lookup, .get =3D get_prop_pcielinkwidth, .set =3D set_prop_pcielinkwidth, - .set_default_value =3D set_default_value_enum, + .set_default_value =3D qdev_propinfo_set_default_value_enum, }; --=20 2.21.1 From nobody Sat May 4 17:44:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584322876; cv=none; d=zohomail.com; s=zohoarc; b=UgKKIdPlPERaEJlPtdwJKq+cqokyC6SrF0WMGQ6tAjbbL+6ysnXStrxEJh+BSfIYCtCarm334zEXmdd0zF8mQno/5dHUa2gbcfaHCTocKRIrvbGyfcA10RyIkEriji2SuPHvGZ4vw9aTSLID5YMEJGqx3SWHdol39tecsokFU5k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584322876; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=R5oHwdalGSUh9fUiAtO6F1i/o9Ne148Jqojt7pJjorc=; b=TRv8MJDrPTNt5YX3ldIxxLSWUGEYGRilOnZbHP2lnX2q2FTapz2xCF9Gwey28qb0ZWv6XmCB4GZBWU26Jp9NLGx8bWDgVV2zRp1RV5s2mYUKumU4tL8gIZ3F6rjFze4Om9k2fye3756/VuVkUqUwyxz+cUvURxvYojiw+i/e9j8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584322876130775.8372663330607; Sun, 15 Mar 2020 18:41:16 -0700 (PDT) Received: from localhost ([::1]:33002 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDekk-0008UE-DV for importer@patchew.org; Sun, 15 Mar 2020 21:41:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57460) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDdMA-0008Lx-8P for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDdM9-0005Ij-89 for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:46 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:51420 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 1jDdM9-0005HA-46 for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:45 -0400 Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-30-w3CibJ0pMbqC4Prwj8VfiA-1; Sun, 15 Mar 2020 20:11:43 -0400 Received: by mail-wr1-f71.google.com with SMTP id v6so8067762wrg.22 for ; Sun, 15 Mar 2020 17:11:42 -0700 (PDT) Received: from localhost.localdomain (191.red-83-42-66.dynamicip.rima-tde.net. [83.42.66.191]) by smtp.gmail.com with ESMTPSA id t124sm28387358wmg.13.2020.03.15.17.11.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2020 17:11:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584317504; 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=R5oHwdalGSUh9fUiAtO6F1i/o9Ne148Jqojt7pJjorc=; b=hPF9dq0DgvpqMxhM0etEDsbrgevM0kLoIrgdfJwvM0ievPd/9ciDEjPNN3dYehu4vQmYFC l9bBdbuNaKtTMYDlG9BY8/dyYRmTJogmUXg6RSXBwNx3SmXmhbbNXj6sbSghZzmpwzhKUG Circ8SIQEDGP5NInUi/5GjZwRDg0YMc= X-MC-Unique: w3CibJ0pMbqC4Prwj8VfiA-1 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=D3R81IpDiBCPcJm6v/qjLXKSHFAs8r3O5+h73S1rpfw=; b=OhR+Q+TxSjOt0gEn0ci3gWKfRWSvoyXHdNiZT7fa/jyoFaaro7EtljaN4ssQ4SlyPY UHkIHG6kWspDIDtxgzYYzei+i14X9gCVSgGXn+n3LC1QPDqp/FAbAipNtwPBTg0/XN3y eRN/p3pEEPUAqRlMYZXcSF9mM/V4nF9t7KSRh8JBQIMRxyxGhloWMus//YV2Ph/ICufY dWDobdY9rnros3Jt1f5oze7Gkxi+eUQpNC4J9yIZywGlyQFht6naGiFxuLcUia1zQeeM Y5P0YQbyn/fbJRK899RB01H5ngM5G0zX3P43suQVFlTQ5G8o89LAjhG7Hm7NYi6Zl0Ay Ttww== X-Gm-Message-State: ANhLgQ1AITJR9eR+3iq+PvoMdvJ5Wf1DTMJ6Z0eQnJ4NMitv06290O99 0rC2aLCRCee2tusiaVx7fQ8WIjcqu8FoDhdzqzuCI+vjR+CBm+PU/c/Fd1UDHskse5mEeYIe0+D 0q1oyGDarcyYgTYE= X-Received: by 2002:a7b:c381:: with SMTP id s1mr22723453wmj.0.1584317501203; Sun, 15 Mar 2020 17:11:41 -0700 (PDT) X-Google-Smtp-Source: ADFU+vssZmjyburU8BaWOP+arhyyQ9r5jXISw+aZfNKA/6GUbNbJR6vj5QZ/sLeZybJnLmz9saXbXA== X-Received: by 2002:a7b:c381:: with SMTP id s1mr22723434wmj.0.1584317500998; Sun, 15 Mar 2020 17:11:40 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v2 5/9] hw/core/qdev-properties: Export qdev_prop_enum Date: Mon, 16 Mar 2020 01:11:07 +0100 Message-Id: <20200316001111.31004-6-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200316001111.31004-1-philmd@redhat.com> References: <20200316001111.31004-1-philmd@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 205.139.110.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: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Eduardo Habkost , Richard Henderson , Michael Roth , Markus Armbruster , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8"; text/plain; charset="utf-8" Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/qdev-properties.h | 1 + hw/core/qdev-properties.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index f161604fb6..134753d595 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -8,6 +8,7 @@ extern const PropertyInfo qdev_prop_bit; extern const PropertyInfo qdev_prop_bit64; extern const PropertyInfo qdev_prop_bool; +extern const PropertyInfo qdev_prop_enum; extern const PropertyInfo qdev_prop_uint8; extern const PropertyInfo qdev_prop_uint16; extern const PropertyInfo qdev_prop_uint32; diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 3f3a008938..7e89c11dfd 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -84,6 +84,13 @@ void qdev_propinfo_set_default_value_enum(ObjectProperty= *op, qapi_enum_lookup(prop->info->enum_table, prop->defval.i)); } =20 +const PropertyInfo qdev_prop_enum =3D { + .name =3D "enum", + .get =3D qdev_propinfo_get_enum, + .set =3D qdev_propinfo_set_enum, + .set_default_value =3D qdev_propinfo_set_default_value_enum, +}; + /* Bit */ =20 static uint32_t qdev_get_prop_mask(Property *prop) --=20 2.21.1 From nobody Sat May 4 17:44:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584318764; cv=none; d=zohomail.com; s=zohoarc; b=lj/BQjeY1DtG0IT90X7RNaJupkuK1ymPy30cQzLiWe2pj1hP9RiqMNT4HjpfD/tic5qczypX50im7yKivZaXc1p76+XTwCMDe9VQEDNLI0E+QnoFfV85QYX3YpISO5tGZslLq7pzURstSSxWP7bAWmMA3kCXWCzyySATpWZhpBA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584318764; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=NQV7CZtJKHKQQmLYV48Ov4NqdR9xK+iLmNVfD84uGjo=; b=AXAASRuSFLbT4MtlGI6EJcUcPBx3HD7Z1CbtpUBnrRZJTy0E40rMyxn3QzSX+JAMGDl+JXKxzO91ydpjpBnZ2pnN/KMuE4hpTrm6knAnniuA+83tND9IQMN34N5dJBp5TrsmL2zEvvMvE5W62xXFLgS0ASVMp6tD4+ZBWPehBTM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584318764132164.88115771405478; Sun, 15 Mar 2020 17:32:44 -0700 (PDT) Received: from localhost ([::1]:60716 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDdgQ-0006LH-LW for importer@patchew.org; Sun, 15 Mar 2020 20:32:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57562) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDdMF-0008OS-FB for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDdMD-0005ii-Va for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:51 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:24096 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jDdMD-0005fV-Ql for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:49 -0400 Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-241--5x4IbVhOrW6Yr9mhnVXCQ-1; Sun, 15 Mar 2020 20:11:48 -0400 Received: by mail-wm1-f71.google.com with SMTP id a23so5028416wmm.8 for ; Sun, 15 Mar 2020 17:11:47 -0700 (PDT) Received: from localhost.localdomain (191.red-83-42-66.dynamicip.rima-tde.net. [83.42.66.191]) by smtp.gmail.com with ESMTPSA id w19sm26685804wmc.22.2020.03.15.17.11.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2020 17:11:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584317509; 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=NQV7CZtJKHKQQmLYV48Ov4NqdR9xK+iLmNVfD84uGjo=; b=Nt2Mogq73Guqtekt67rQlMX9faTPgjGxp2gw73XeWG8AW9Qzh+H4AurqxgUUD5OJuYxtlg jYlWDwKu8vlZGoP5RJze4YYjuT6+qR8v8+ty1tmP9CqDmlK82FQy8tQoaN8GiY2AuJUj4g pnGT4MStBps/JOaPZ5uOLRL4QMAei4Q= X-MC-Unique: -5x4IbVhOrW6Yr9mhnVXCQ-1 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=sul4SsJ9fMf6B2B0bf7J71c3twXqtltEHRq/Q0EYyuw=; b=AiyBNPyWW4DS7SP0/6AB8TofupuSbN7/DzZ/3nBrxk26Uw66fZZx7jhBHlC6GftpJB 4j/tPXLGyVhF6UmhIKXrA0lZXjyqf1rJlANlUUvIi038iUVqL+PBk1tq7C76RzJZgcOQ iIcOhd2RKeb2lLwXJ+cgT9dU/avx4LYr6UYgabbGfi/64uT9o3T5hkQ8W53DkweqG/bZ lh64ES99ucZhurRYTLFeCHEwl93llJpYrCPcxIWH6ydzTiFFaVMkXkxGnGplVzZzvxC/ Wq/SW6i6mUDSlncrFvwB9Veu4K6olwVgzy+jagFm1bwIakWs5Zs6jf3MM2gU6M5q4RLd 3AGw== X-Gm-Message-State: ANhLgQ2IQHc03BsxDSIlx088dba+hhIhjk6elDkNJbXPG8fuW3WtSj/s e87JXbpZ26PYNTScwjjSx1p2P+e3HYv48+CQgqNx+a3OvIe7CAM3wE3uz4h9GKlhuSoSjE5kl2g Wia48kun0dk2tv5w= X-Received: by 2002:adf:82f4:: with SMTP id 107mr22300459wrc.126.1584317506570; Sun, 15 Mar 2020 17:11:46 -0700 (PDT) X-Google-Smtp-Source: ADFU+vuKXqlnbz8NPhewbFRkMJmaE6Y7q7lsNJV6XPkQxc/EXMwltlySq0Lqs1CkRkLoroaqxdHkqQ== X-Received: by 2002:adf:82f4:: with SMTP id 107mr22300442wrc.126.1584317506388; Sun, 15 Mar 2020 17:11:46 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v2 6/9] hw/core/qdev-properties: Export some integer-related functions Date: Mon, 16 Mar 2020 01:11:08 +0100 Message-Id: <20200316001111.31004-7-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200316001111.31004-1-philmd@redhat.com> References: <20200316001111.31004-1-philmd@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 207.211.31.81 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: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Eduardo Habkost , Richard Henderson , Michael Roth , Markus Armbruster , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8"; text/plain; charset="utf-8" We are going to split this file and reuse these static functions. Declare them in the local "qdev-prop-internal.h" header. Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/core/qdev-prop-internal.h | 9 ++++++++ hw/core/qdev-properties.c | 42 +++++++++++++++++++----------------- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/hw/core/qdev-prop-internal.h b/hw/core/qdev-prop-internal.h index 2a8c9a306a..dd2f215f1c 100644 --- a/hw/core/qdev-prop-internal.h +++ b/hw/core/qdev-prop-internal.h @@ -15,5 +15,14 @@ void qdev_propinfo_set_enum(Object *obj, Visitor *v, con= st char *name, =20 void qdev_propinfo_set_default_value_enum(ObjectProperty *op, const Property *prop); +void qdev_propinfo_set_default_value_int(ObjectProperty *op, + const Property *prop); +void qdev_propinfo_set_default_value_uint(ObjectProperty *op, + const Property *prop); + +void qdev_propinfo_get_uint16(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp); +void qdev_propinfo_get_int32(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp); =20 #endif diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 7e89c11dfd..8c85e0b648 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -275,12 +275,14 @@ static void set_uint8(Object *obj, Visitor *v, const = char *name, void *opaque, visit_type_uint8(v, name, ptr, errp); } =20 -static void set_default_value_int(ObjectProperty *op, const Property *prop) +void qdev_propinfo_set_default_value_int(ObjectProperty *op, + const Property *prop) { object_property_set_default_int(op, prop->defval.i); } =20 -static void set_default_value_uint(ObjectProperty *op, const Property *pro= p) +void qdev_propinfo_set_default_value_uint(ObjectProperty *op, + const Property *prop) { object_property_set_default_uint(op, prop->defval.u); } @@ -289,13 +291,13 @@ const PropertyInfo qdev_prop_uint8 =3D { .name =3D "uint8", .get =3D get_uint8, .set =3D set_uint8, - .set_default_value =3D set_default_value_uint, + .set_default_value =3D qdev_propinfo_set_default_value_uint, }; =20 /* --- 16bit integer --- */ =20 -static void get_uint16(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) +void qdev_propinfo_get_uint16(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; @@ -321,9 +323,9 @@ static void set_uint16(Object *obj, Visitor *v, const c= har *name, =20 const PropertyInfo qdev_prop_uint16 =3D { .name =3D "uint16", - .get =3D get_uint16, + .get =3D qdev_propinfo_get_uint16, .set =3D set_uint16, - .set_default_value =3D set_default_value_uint, + .set_default_value =3D qdev_propinfo_set_default_value_uint, }; =20 /* --- 32bit integer --- */ @@ -353,8 +355,8 @@ static void set_uint32(Object *obj, Visitor *v, const c= har *name, visit_type_uint32(v, name, ptr, errp); } =20 -static void get_int32(Object *obj, Visitor *v, const char *name, void *opa= que, - Error **errp) +void qdev_propinfo_get_int32(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; @@ -382,14 +384,14 @@ const PropertyInfo qdev_prop_uint32 =3D { .name =3D "uint32", .get =3D get_uint32, .set =3D set_uint32, - .set_default_value =3D set_default_value_uint, + .set_default_value =3D qdev_propinfo_set_default_value_uint, }; =20 const PropertyInfo qdev_prop_int32 =3D { .name =3D "int32", - .get =3D get_int32, + .get =3D qdev_propinfo_get_int32, .set =3D set_int32, - .set_default_value =3D set_default_value_int, + .set_default_value =3D qdev_propinfo_set_default_value_int, }; =20 /* --- 64bit integer --- */ @@ -448,14 +450,14 @@ const PropertyInfo qdev_prop_uint64 =3D { .name =3D "uint64", .get =3D get_uint64, .set =3D set_uint64, - .set_default_value =3D set_default_value_uint, + .set_default_value =3D qdev_propinfo_set_default_value_uint, }; =20 const PropertyInfo qdev_prop_int64 =3D { .name =3D "int64", .get =3D get_int64, .set =3D set_int64, - .set_default_value =3D set_default_value_int, + .set_default_value =3D qdev_propinfo_set_default_value_int, }; =20 /* --- string --- */ @@ -739,9 +741,9 @@ const PropertyInfo qdev_prop_pci_devfn =3D { .name =3D "int32", .description =3D "Slot and optional function number, example: 06.0 or = 06", .print =3D print_pci_devfn, - .get =3D get_int32, + .get =3D qdev_propinfo_get_int32, .set =3D set_pci_devfn, - .set_default_value =3D set_default_value_int, + .set_default_value =3D qdev_propinfo_set_default_value_uint, }; =20 /* --- blocksize --- */ @@ -787,9 +789,9 @@ static void set_blocksize(Object *obj, Visitor *v, cons= t char *name, const PropertyInfo qdev_prop_blocksize =3D { .name =3D "uint16", .description =3D "A power of two between 512 and 32768", - .get =3D get_uint16, + .get =3D qdev_propinfo_get_uint16, .set =3D set_blocksize, - .set_default_value =3D set_default_value_uint, + .set_default_value =3D qdev_propinfo_set_default_value_uint, }; =20 /* --- pci host address --- */ @@ -1071,7 +1073,7 @@ const PropertyInfo qdev_prop_arraylen =3D { .name =3D "uint32", .get =3D get_uint32, .set =3D set_prop_arraylen, - .set_default_value =3D set_default_value_uint, + .set_default_value =3D qdev_propinfo_set_default_value_uint, }; =20 /* --- public helpers --- */ @@ -1265,7 +1267,7 @@ const PropertyInfo qdev_prop_size =3D { .name =3D "size", .get =3D get_size, .set =3D set_size, - .set_default_value =3D set_default_value_uint, + .set_default_value =3D qdev_propinfo_set_default_value_uint, }; =20 /* --- object link property --- */ --=20 2.21.1 From nobody Sat May 4 17:44:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584319290; cv=none; d=zohomail.com; s=zohoarc; b=erJ6qx4/Ns138Q/NdOi7eOTBEwTyLP23uz9zIA8zapQ2luPxvVwNPrZbhIj3oloVfCvdMyvjUewvep7g/yYZdsvw1csYLceUcHQVKX3Jy1gVYY565E7nfJEt9TQ4jLg4bmlkenfzq1bIVThc0xDOM3svSPjpyYk37lEtoC3oq5M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584319290; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=VXWKD8aML80/Ov/R9P5RDDcpaYEPA0N78J6KO5gFVWg=; b=OtStRp4HwErq/mT4SvQke5vljrNVz5eLxD6LlSOsCNERJouu4nsT7TsqebtBbnZUHNJOapPym0zFMTU8mpyFA/RRGx7uEqJWGNk/IgWyZPOS1nxyKQx8AYJUCiPKFVpJNWt7/gnYlt0KGNVqqRXlqlE4PJNnrGXEbO8OpZ+SsVM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584319290379844.6167478481774; Sun, 15 Mar 2020 17:41:30 -0700 (PDT) Received: from localhost ([::1]:60802 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDdou-0001x5-OD for importer@patchew.org; Sun, 15 Mar 2020 20:41:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57779) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDdMT-0008UO-7s for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:12:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDdMM-0006PG-2e for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:12:05 -0400 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:25725 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jDdML-0006Ij-RH for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:11:57 -0400 Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-383-zNK9N4ZbNOyxiiDK6ZNsmQ-1; Sun, 15 Mar 2020 20:11:54 -0400 Received: by mail-wr1-f71.google.com with SMTP id s4so2732315wrb.19 for ; Sun, 15 Mar 2020 17:11:54 -0700 (PDT) Received: from localhost.localdomain (191.red-83-42-66.dynamicip.rima-tde.net. [83.42.66.191]) by smtp.gmail.com with ESMTPSA id b5sm20355931wrw.86.2020.03.15.17.11.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2020 17:11:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584317516; 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=VXWKD8aML80/Ov/R9P5RDDcpaYEPA0N78J6KO5gFVWg=; b=VcPpL9Ri965e9RlMdMWDa48yaL0LdtafpWjb/Mqd+c/GKQDCu7GgHldqsWTtN+eYgDVlVc lJFQLTcXOpd5wUZSB0TZ21nbkREla06tN0a3wC3CJQlrZIekRQe4kGBfK9hpCzQlegPJsQ nJXcaqprGBQisZdDIgbEuvOz0MJV/XE= X-MC-Unique: zNK9N4ZbNOyxiiDK6ZNsmQ-1 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=Gve4OjYVn1uEvHZ7I76tL+gVaAzvfJnoSmC/XknoKxo=; b=YzuaZUI+KQNsCq5N5uL14cJH4wcQ4qssRGIFpsktx60tmDJtGYb1DzMQp84xPQ0EAD hvss6TeSyMvVh1bi9vcAZhQljInB1TXkvJdT9UnWSZHvVfBg+z2C3db2x14FZnYmZvTx nH5I5FbTBKbbK/ZL+P88kfhoP7tUVs68SW9gJO7uNL/lAhIw2pi4m9euH6VkuvzX4eib QC6w00ctmUBLx4j6gil6AM7e5f/pYpvLZnxOh5iqinmFIG3HIoq4wkKfdSyE9cFVH0eI ZZyDZcz/UUx/80/1MeQ1g7KtMGfKcaErZqEAwFvZLwZ6uGnk0Lmsod+OmSerD33eHu9L 0k+Q== X-Gm-Message-State: ANhLgQ39FixZy5TDJvDdSFp5lOIleRruzIEiKBiOfQu3eqQXWAUVpTJw hpD10pzh5xquN09qxtE7klFCJJ1yU6uHCmuw+mB2MxXHNpvTrRUeJSmYA4qwonPvmJFeaC3UMXY LAxz1NXdH7ht4jYM= X-Received: by 2002:a5d:5584:: with SMTP id i4mr30710009wrv.378.1584317512589; Sun, 15 Mar 2020 17:11:52 -0700 (PDT) X-Google-Smtp-Source: ADFU+vse/tOw2bD9t734HTjBX/9BLdy9UBpX602usxGfaRdkZbIUjs6HtSkbyQnIg5P3/iRnCX++bg== X-Received: by 2002:a5d:5584:: with SMTP id i4mr30709958wrv.378.1584317511928; Sun, 15 Mar 2020 17:11:51 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v2 7/9] hw/core/qdev-properties: Extract system-mode specific properties Date: Mon, 16 Mar 2020 01:11:09 +0100 Message-Id: <20200316001111.31004-8-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200316001111.31004-1-philmd@redhat.com> References: <20200316001111.31004-1-philmd@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 207.211.31.81 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: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Eduardo Habkost , Richard Henderson , Michael Roth , Markus Armbruster , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8"; text/plain; charset="utf-8" Move properties specific to machines into a separate file. Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/core/qdev-properties-system.c | 602 ++++++++++++++++++++++++++++++- hw/core/qdev-properties.c | 590 ------------------------------ 2 files changed, 594 insertions(+), 598 deletions(-) diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index 70bfd4809b..55a34c165c 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -11,19 +11,24 @@ */ =20 #include "qemu/osdep.h" -#include "audio/audio.h" -#include "net/net.h" #include "hw/qdev-properties.h" #include "qapi/error.h" +#include "qapi/visitor.h" +#include "qapi/qapi-types-block.h" +#include "qapi/qapi-types-machine.h" +#include "qapi/qapi-types-migration.h" #include "qapi/qmp/qerror.h" +#include "qemu/ctype.h" +#include "qemu/cutils.h" +#include "qemu/error-report.h" +#include "qdev-prop-internal.h" + +#include "audio/audio.h" +#include "chardev/char-fe.h" #include "sysemu/block-backend.h" #include "sysemu/blockdev.h" -#include "hw/block/block.h" -#include "net/hub.h" -#include "qapi/visitor.h" -#include "chardev/char-fe.h" -#include "sysemu/iothread.h" -#include "sysemu/tpm_backend.h" +#include "net/net.h" +#include "hw/pci/pci.h" =20 static void get_pointer(Object *obj, Visitor *v, Property *prop, char *(*print)(void *ptr), @@ -273,6 +278,99 @@ const PropertyInfo qdev_prop_chr =3D { .release =3D release_chr, }; =20 +/* --- mac address --- */ + +/* + * accepted syntax versions: + * 01:02:03:04:05:06 + * 01-02-03-04-05-06 + */ +static void get_mac(Object *obj, Visitor *v, const char *name, void *opaqu= e, + Error **errp) +{ + DeviceState *dev =3D DEVICE(obj); + Property *prop =3D opaque; + MACAddr *mac =3D qdev_get_prop_ptr(dev, prop); + char buffer[2 * 6 + 5 + 1]; + char *p =3D buffer; + + snprintf(buffer, sizeof(buffer), "%02x:%02x:%02x:%02x:%02x:%02x", + mac->a[0], mac->a[1], mac->a[2], + mac->a[3], mac->a[4], mac->a[5]); + + visit_type_str(v, name, &p, errp); +} + +static void set_mac(Object *obj, Visitor *v, const char *name, void *opaqu= e, + Error **errp) +{ + DeviceState *dev =3D DEVICE(obj); + Property *prop =3D opaque; + MACAddr *mac =3D qdev_get_prop_ptr(dev, prop); + Error *local_err =3D NULL; + int i, pos; + char *str; + const char *p; + + if (dev->realized) { + qdev_prop_set_after_realize(dev, name, errp); + return; + } + + visit_type_str(v, name, &str, &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } + + for (i =3D 0, pos =3D 0; i < 6; i++, pos +=3D 3) { + long val; + + if (!qemu_isxdigit(str[pos])) { + goto inval; + } + if (!qemu_isxdigit(str[pos + 1])) { + goto inval; + } + if (i =3D=3D 5) { + if (str[pos + 2] !=3D '\0') { + goto inval; + } + } else { + if (str[pos + 2] !=3D ':' && str[pos + 2] !=3D '-') { + goto inval; + } + } + if (qemu_strtol(str + pos, &p, 16, &val) < 0 || val > 0xff) { + goto inval; + } + mac->a[i] =3D val; + } + g_free(str); + return; + +inval: + error_set_from_qdev_prop_error(errp, EINVAL, dev, prop, str); + g_free(str); +} + +const PropertyInfo qdev_prop_macaddr =3D { + .name =3D "str", + .description =3D "Ethernet 6-byte MAC Address, example: 52:54:00:12:34= :56", + .get =3D get_mac, + .set =3D set_mac, +}; + +void qdev_prop_set_macaddr(DeviceState *dev, const char *name, + const uint8_t *value) +{ + char str[2 * 6 + 5 + 1]; + snprintf(str, sizeof(str), "%02x:%02x:%02x:%02x:%02x:%02x", + value[0], value[1], value[2], value[3], value[4], value[5]); + + object_property_set_str(OBJECT(dev), str, name, &error_abort); +} + /* --- netdev device --- */ static void get_netdev(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) @@ -456,3 +554,491 @@ void qdev_set_nic_properties(DeviceState *dev, NICInf= o *nd) } nd->instantiated =3D 1; } + +/* --- lost tick policy --- */ + +QEMU_BUILD_BUG_ON(sizeof(LostTickPolicy) !=3D sizeof(int)); + +const PropertyInfo qdev_prop_losttickpolicy =3D { + .name =3D "LostTickPolicy", + .enum_table =3D &LostTickPolicy_lookup, + .get =3D qdev_propinfo_get_enum, + .set =3D qdev_propinfo_set_enum, + .set_default_value =3D qdev_propinfo_set_default_value_enum, +}; + +/* --- Block device error handling policy --- */ + +QEMU_BUILD_BUG_ON(sizeof(BlockdevOnError) !=3D sizeof(int)); + +const PropertyInfo qdev_prop_blockdev_on_error =3D { + .name =3D "BlockdevOnError", + .description =3D "Error handling policy, " + "report/ignore/enospc/stop/auto", + .enum_table =3D &BlockdevOnError_lookup, + .get =3D qdev_propinfo_get_enum, + .set =3D qdev_propinfo_set_enum, + .set_default_value =3D qdev_propinfo_set_default_value_enum, +}; + +/* --- BIOS CHS translation */ + +QEMU_BUILD_BUG_ON(sizeof(BiosAtaTranslation) !=3D sizeof(int)); + +const PropertyInfo qdev_prop_bios_chs_trans =3D { + .name =3D "BiosAtaTranslation", + .description =3D "Logical CHS translation algorithm, " + "auto/none/lba/large/rechs", + .enum_table =3D &BiosAtaTranslation_lookup, + .get =3D qdev_propinfo_get_enum, + .set =3D qdev_propinfo_set_enum, + .set_default_value =3D qdev_propinfo_set_default_value_enum, +}; + +/* --- FDC default drive types */ + +const PropertyInfo qdev_prop_fdc_drive_type =3D { + .name =3D "FdcDriveType", + .description =3D "FDC drive type, " + "144/288/120/none/auto", + .enum_table =3D &FloppyDriveType_lookup, + .get =3D qdev_propinfo_get_enum, + .set =3D qdev_propinfo_set_enum, + .set_default_value =3D qdev_propinfo_set_default_value_enum, +}; + +/* --- blocksize --- */ + +static void set_blocksize(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + DeviceState *dev =3D DEVICE(obj); + Property *prop =3D opaque; + uint16_t value, *ptr =3D qdev_get_prop_ptr(dev, prop); + Error *local_err =3D NULL; + const int64_t min =3D 512; + const int64_t max =3D 32768; + + if (dev->realized) { + qdev_prop_set_after_realize(dev, name, errp); + return; + } + + visit_type_uint16(v, name, &value, &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } + /* value of 0 means "unset" */ + if (value && (value < min || value > max)) { + error_setg(errp, QERR_PROPERTY_VALUE_OUT_OF_RANGE, + dev->id ? : "", name, (int64_t)value, min, max); + return; + } + + /* We rely on power-of-2 blocksizes for bitmasks */ + if ((value & (value - 1)) !=3D 0) { + error_setg(errp, + "Property %s.%s doesn't take value '%" PRId64 "', " + "it's not a power of 2", dev->id ?: "", name, (int64_t)v= alue); + return; + } + + *ptr =3D value; +} + +const PropertyInfo qdev_prop_blocksize =3D { + .name =3D "uint16", + .description =3D "A power of two between 512 and 32768", + .get =3D qdev_propinfo_get_uint16, + .set =3D set_blocksize, + .set_default_value =3D qdev_propinfo_set_default_value_uint, +}; + +/* --- MultiFDCompression --- */ + +const PropertyInfo qdev_prop_multifd_compression =3D { + .name =3D "MultiFDCompression", + .description =3D "multifd_compression values, " + "none/zlib/zstd", + .enum_table =3D &MultiFDCompression_lookup, + .get =3D qdev_propinfo_get_enum, + .set =3D qdev_propinfo_set_enum, + .set_default_value =3D qdev_propinfo_set_default_value_enum, +}; + +/* --- pci address --- */ + +/* + * bus-local address, i.e. "$slot" or "$slot.$fn" + */ +static void set_pci_devfn(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + DeviceState *dev =3D DEVICE(obj); + Property *prop =3D opaque; + int32_t value, *ptr =3D qdev_get_prop_ptr(dev, prop); + unsigned int slot, fn, n; + Error *local_err =3D NULL; + char *str; + + if (dev->realized) { + qdev_prop_set_after_realize(dev, name, errp); + return; + } + + visit_type_str(v, name, &str, &local_err); + if (local_err) { + error_free(local_err); + local_err =3D NULL; + visit_type_int32(v, name, &value, &local_err); + if (local_err) { + error_propagate(errp, local_err); + } else if (value < -1 || value > 255) { + error_setg(errp, QERR_INVALID_PARAMETER_VALUE, + name ? name : "null", "pci_devfn"); + } else { + *ptr =3D value; + } + return; + } + + if (sscanf(str, "%x.%x%n", &slot, &fn, &n) !=3D 2) { + fn =3D 0; + if (sscanf(str, "%x%n", &slot, &n) !=3D 1) { + goto invalid; + } + } + if (str[n] !=3D '\0' || fn > 7 || slot > 31) { + goto invalid; + } + *ptr =3D slot << 3 | fn; + g_free(str); + return; + +invalid: + error_set_from_qdev_prop_error(errp, EINVAL, dev, prop, str); + g_free(str); +} + +static int print_pci_devfn(DeviceState *dev, Property *prop, char *dest, + size_t len) +{ + int32_t *ptr =3D qdev_get_prop_ptr(dev, prop); + + if (*ptr =3D=3D -1) { + return snprintf(dest, len, ""); + } else { + return snprintf(dest, len, "%02x.%x", *ptr >> 3, *ptr & 7); + } +} + +const PropertyInfo qdev_prop_pci_devfn =3D { + .name =3D "int32", + .description =3D "Slot and optional function number, example: 06.0 or = 06", + .print =3D print_pci_devfn, + .get =3D qdev_propinfo_get_int32, + .set =3D set_pci_devfn, + .set_default_value =3D qdev_propinfo_set_default_value_int, +}; + +/* --- pci host address --- */ + +static void get_pci_host_devaddr(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + DeviceState *dev =3D DEVICE(obj); + Property *prop =3D opaque; + PCIHostDeviceAddress *addr =3D qdev_get_prop_ptr(dev, prop); + char buffer[] =3D "ffff:ff:ff.f"; + char *p =3D buffer; + int rc =3D 0; + + /* + * Catch "invalid" device reference from vfio-pci and allow the + * default buffer representing the non-existent device to be used. + */ + if (~addr->domain || ~addr->bus || ~addr->slot || ~addr->function) { + rc =3D snprintf(buffer, sizeof(buffer), "%04x:%02x:%02x.%0d", + addr->domain, addr->bus, addr->slot, addr->function); + assert(rc =3D=3D sizeof(buffer) - 1); + } + + visit_type_str(v, name, &p, errp); +} + +/* + * Parse [:]:. + * if is not supplied, it's assumed to be 0. + */ +static void set_pci_host_devaddr(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + DeviceState *dev =3D DEVICE(obj); + Property *prop =3D opaque; + PCIHostDeviceAddress *addr =3D qdev_get_prop_ptr(dev, prop); + Error *local_err =3D NULL; + char *str, *p; + const char *e; + unsigned long val; + unsigned long dom =3D 0, bus =3D 0; + unsigned long slot =3D 0, func =3D 0; + + if (dev->realized) { + qdev_prop_set_after_realize(dev, name, errp); + return; + } + + visit_type_str(v, name, &str, &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } + + p =3D str; + if (qemu_strtoul(p, &e, 16, &val) < 0) { + goto inval; + } + if (*e !=3D ':') { + goto inval; + } + bus =3D val; + + p =3D (char *)e + 1; + if (qemu_strtoul(p, &e, 16, &val) < 0) { + goto inval; + } + if (*e =3D=3D ':') { + dom =3D bus; + bus =3D val; + p =3D (char *)e + 1; + if (qemu_strtoul(p, &e, 16, &val) < 0) { + goto inval; + } + } + slot =3D val; + + if (*e !=3D '.') { + goto inval; + } + p =3D (char *)e + 1; + if (qemu_strtoul(p, &e, 10, &val) < 0) { + goto inval; + } + func =3D val; + + if (dom > 0xffff || bus > 0xff || slot > 0x1f || func > 7) { + goto inval; + } + + if (*e) { + goto inval; + } + + addr->domain =3D dom; + addr->bus =3D bus; + addr->slot =3D slot; + addr->function =3D func; + + g_free(str); + return; + +inval: + error_set_from_qdev_prop_error(errp, EINVAL, dev, prop, str); + g_free(str); +} + +const PropertyInfo qdev_prop_pci_host_devaddr =3D { + .name =3D "str", + .description =3D "Address (bus/device/function) of " + "the host device, example: 04:10.0", + .get =3D get_pci_host_devaddr, + .set =3D set_pci_host_devaddr, +}; + +/* --- OffAutoPCIBAR off/auto/bar0/bar1/bar2/bar3/bar4/bar5 --- */ + +const PropertyInfo qdev_prop_off_auto_pcibar =3D { + .name =3D "OffAutoPCIBAR", + .description =3D "off/auto/bar0/bar1/bar2/bar3/bar4/bar5", + .enum_table =3D &OffAutoPCIBAR_lookup, + .get =3D qdev_propinfo_get_enum, + .set =3D qdev_propinfo_set_enum, + .set_default_value =3D qdev_propinfo_set_default_value_enum, +}; + +/* --- PCIELinkSpeed 2_5/5/8/16 -- */ + +static void get_prop_pcielinkspeed(Object *obj, Visitor *v, const char *na= me, + void *opaque, Error **errp) +{ + DeviceState *dev =3D DEVICE(obj); + Property *prop =3D opaque; + PCIExpLinkSpeed *p =3D qdev_get_prop_ptr(dev, prop); + int speed; + + switch (*p) { + case QEMU_PCI_EXP_LNK_2_5GT: + speed =3D PCIE_LINK_SPEED_2_5; + break; + case QEMU_PCI_EXP_LNK_5GT: + speed =3D PCIE_LINK_SPEED_5; + break; + case QEMU_PCI_EXP_LNK_8GT: + speed =3D PCIE_LINK_SPEED_8; + break; + case QEMU_PCI_EXP_LNK_16GT: + speed =3D PCIE_LINK_SPEED_16; + break; + default: + /* Unreachable */ + abort(); + } + + visit_type_enum(v, prop->name, &speed, prop->info->enum_table, errp); +} + +static void set_prop_pcielinkspeed(Object *obj, Visitor *v, const char *na= me, + void *opaque, Error **errp) +{ + DeviceState *dev =3D DEVICE(obj); + Property *prop =3D opaque; + PCIExpLinkSpeed *p =3D qdev_get_prop_ptr(dev, prop); + int speed; + Error *local_err =3D NULL; + + if (dev->realized) { + qdev_prop_set_after_realize(dev, name, errp); + return; + } + + visit_type_enum(v, prop->name, &speed, prop->info->enum_table, &local_= err); + if (local_err) { + error_propagate(errp, local_err); + return; + } + + switch (speed) { + case PCIE_LINK_SPEED_2_5: + *p =3D QEMU_PCI_EXP_LNK_2_5GT; + break; + case PCIE_LINK_SPEED_5: + *p =3D QEMU_PCI_EXP_LNK_5GT; + break; + case PCIE_LINK_SPEED_8: + *p =3D QEMU_PCI_EXP_LNK_8GT; + break; + case PCIE_LINK_SPEED_16: + *p =3D QEMU_PCI_EXP_LNK_16GT; + break; + default: + /* Unreachable */ + abort(); + } +} + +const PropertyInfo qdev_prop_pcie_link_speed =3D { + .name =3D "PCIELinkSpeed", + .description =3D "2_5/5/8/16", + .enum_table =3D &PCIELinkSpeed_lookup, + .get =3D get_prop_pcielinkspeed, + .set =3D set_prop_pcielinkspeed, + .set_default_value =3D qdev_propinfo_set_default_value_enum, +}; + +/* --- PCIELinkWidth 1/2/4/8/12/16/32 -- */ + +static void get_prop_pcielinkwidth(Object *obj, Visitor *v, const char *na= me, + void *opaque, Error **errp) +{ + DeviceState *dev =3D DEVICE(obj); + Property *prop =3D opaque; + PCIExpLinkWidth *p =3D qdev_get_prop_ptr(dev, prop); + int width; + + switch (*p) { + case QEMU_PCI_EXP_LNK_X1: + width =3D PCIE_LINK_WIDTH_1; + break; + case QEMU_PCI_EXP_LNK_X2: + width =3D PCIE_LINK_WIDTH_2; + break; + case QEMU_PCI_EXP_LNK_X4: + width =3D PCIE_LINK_WIDTH_4; + break; + case QEMU_PCI_EXP_LNK_X8: + width =3D PCIE_LINK_WIDTH_8; + break; + case QEMU_PCI_EXP_LNK_X12: + width =3D PCIE_LINK_WIDTH_12; + break; + case QEMU_PCI_EXP_LNK_X16: + width =3D PCIE_LINK_WIDTH_16; + break; + case QEMU_PCI_EXP_LNK_X32: + width =3D PCIE_LINK_WIDTH_32; + break; + default: + /* Unreachable */ + abort(); + } + + visit_type_enum(v, prop->name, &width, prop->info->enum_table, errp); +} + +static void set_prop_pcielinkwidth(Object *obj, Visitor *v, const char *na= me, + void *opaque, Error **errp) +{ + DeviceState *dev =3D DEVICE(obj); + Property *prop =3D opaque; + PCIExpLinkWidth *p =3D qdev_get_prop_ptr(dev, prop); + int width; + Error *local_err =3D NULL; + + if (dev->realized) { + qdev_prop_set_after_realize(dev, name, errp); + return; + } + + visit_type_enum(v, prop->name, &width, prop->info->enum_table, &local_= err); + if (local_err) { + error_propagate(errp, local_err); + return; + } + + switch (width) { + case PCIE_LINK_WIDTH_1: + *p =3D QEMU_PCI_EXP_LNK_X1; + break; + case PCIE_LINK_WIDTH_2: + *p =3D QEMU_PCI_EXP_LNK_X2; + break; + case PCIE_LINK_WIDTH_4: + *p =3D QEMU_PCI_EXP_LNK_X4; + break; + case PCIE_LINK_WIDTH_8: + *p =3D QEMU_PCI_EXP_LNK_X8; + break; + case PCIE_LINK_WIDTH_12: + *p =3D QEMU_PCI_EXP_LNK_X12; + break; + case PCIE_LINK_WIDTH_16: + *p =3D QEMU_PCI_EXP_LNK_X16; + break; + case PCIE_LINK_WIDTH_32: + *p =3D QEMU_PCI_EXP_LNK_X32; + break; + default: + /* Unreachable */ + abort(); + } +} + +const PropertyInfo qdev_prop_pcie_link_width =3D { + .name =3D "PCIELinkWidth", + .description =3D "1/2/4/8/12/16/32", + .enum_table =3D &PCIELinkWidth_lookup, + .get =3D get_prop_pcielinkwidth, + .set =3D set_prop_pcielinkwidth, + .set_default_value =3D qdev_propinfo_set_default_value_enum, +}; diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 8c85e0b648..1fd256dd22 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -1,20 +1,11 @@ #include "qemu/osdep.h" -#include "qemu/cutils.h" -#include "net/net.h" #include "hw/qdev-properties.h" #include "qapi/error.h" -#include "hw/pci/pci.h" -#include "qapi/qapi-types-block.h" -#include "qapi/qapi-types-machine.h" #include "qapi/qapi-types-misc.h" #include "qapi/qmp/qerror.h" #include "qemu/ctype.h" #include "qemu/error-report.h" -#include "qapi/qapi-types-migration.h" -#include "hw/block/block.h" -#include "net/hub.h" #include "qapi/visitor.h" -#include "chardev/char.h" #include "qemu/uuid.h" #include "qdev-prop-internal.h" =20 @@ -513,89 +504,6 @@ const PropertyInfo qdev_prop_string =3D { .set =3D set_string, }; =20 -/* --- mac address --- */ - -/* - * accepted syntax versions: - * 01:02:03:04:05:06 - * 01-02-03-04-05-06 - */ -static void get_mac(Object *obj, Visitor *v, const char *name, void *opaqu= e, - Error **errp) -{ - DeviceState *dev =3D DEVICE(obj); - Property *prop =3D opaque; - MACAddr *mac =3D qdev_get_prop_ptr(dev, prop); - char buffer[2 * 6 + 5 + 1]; - char *p =3D buffer; - - snprintf(buffer, sizeof(buffer), "%02x:%02x:%02x:%02x:%02x:%02x", - mac->a[0], mac->a[1], mac->a[2], - mac->a[3], mac->a[4], mac->a[5]); - - visit_type_str(v, name, &p, errp); -} - -static void set_mac(Object *obj, Visitor *v, const char *name, void *opaqu= e, - Error **errp) -{ - DeviceState *dev =3D DEVICE(obj); - Property *prop =3D opaque; - MACAddr *mac =3D qdev_get_prop_ptr(dev, prop); - Error *local_err =3D NULL; - int i, pos; - char *str; - const char *p; - - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - - visit_type_str(v, name, &str, &local_err); - if (local_err) { - error_propagate(errp, local_err); - return; - } - - for (i =3D 0, pos =3D 0; i < 6; i++, pos +=3D 3) { - long val; - - if (!qemu_isxdigit(str[pos])) { - goto inval; - } - if (!qemu_isxdigit(str[pos + 1])) { - goto inval; - } - if (i =3D=3D 5) { - if (str[pos + 2] !=3D '\0') { - goto inval; - } - } else { - if (str[pos + 2] !=3D ':' && str[pos + 2] !=3D '-') { - goto inval; - } - } - if (qemu_strtol(str + pos, &p, 16, &val) < 0 || val > 0xff) { - goto inval; - } - mac->a[i] =3D val; - } - g_free(str); - return; - -inval: - error_set_from_qdev_prop_error(errp, EINVAL, dev, prop, str); - g_free(str); -} - -const PropertyInfo qdev_prop_macaddr =3D { - .name =3D "str", - .description =3D "Ethernet 6-byte MAC Address, example: 52:54:00:12:34= :56", - .get =3D get_mac, - .set =3D set_mac, -}; - /* --- on/off/auto --- */ =20 const PropertyInfo qdev_prop_on_off_auto =3D { @@ -607,307 +515,6 @@ const PropertyInfo qdev_prop_on_off_auto =3D { .set_default_value =3D qdev_propinfo_set_default_value_enum, }; =20 -/* --- lost tick policy --- */ - -QEMU_BUILD_BUG_ON(sizeof(LostTickPolicy) !=3D sizeof(int)); - -const PropertyInfo qdev_prop_losttickpolicy =3D { - .name =3D "LostTickPolicy", - .enum_table =3D &LostTickPolicy_lookup, - .get =3D qdev_propinfo_get_enum, - .set =3D qdev_propinfo_set_enum, - .set_default_value =3D qdev_propinfo_set_default_value_enum, -}; - -/* --- Block device error handling policy --- */ - -QEMU_BUILD_BUG_ON(sizeof(BlockdevOnError) !=3D sizeof(int)); - -const PropertyInfo qdev_prop_blockdev_on_error =3D { - .name =3D "BlockdevOnError", - .description =3D "Error handling policy, " - "report/ignore/enospc/stop/auto", - .enum_table =3D &BlockdevOnError_lookup, - .get =3D qdev_propinfo_get_enum, - .set =3D qdev_propinfo_set_enum, - .set_default_value =3D qdev_propinfo_set_default_value_enum, -}; - -/* --- BIOS CHS translation */ - -QEMU_BUILD_BUG_ON(sizeof(BiosAtaTranslation) !=3D sizeof(int)); - -const PropertyInfo qdev_prop_bios_chs_trans =3D { - .name =3D "BiosAtaTranslation", - .description =3D "Logical CHS translation algorithm, " - "auto/none/lba/large/rechs", - .enum_table =3D &BiosAtaTranslation_lookup, - .get =3D qdev_propinfo_get_enum, - .set =3D qdev_propinfo_set_enum, - .set_default_value =3D qdev_propinfo_set_default_value_enum, -}; - -/* --- FDC default drive types */ - -const PropertyInfo qdev_prop_fdc_drive_type =3D { - .name =3D "FdcDriveType", - .description =3D "FDC drive type, " - "144/288/120/none/auto", - .enum_table =3D &FloppyDriveType_lookup, - .get =3D qdev_propinfo_get_enum, - .set =3D qdev_propinfo_set_enum, - .set_default_value =3D qdev_propinfo_set_default_value_enum, -}; - -/* --- MultiFDCompression --- */ - -const PropertyInfo qdev_prop_multifd_compression =3D { - .name =3D "MultiFDCompression", - .description =3D "multifd_compression values, " - "none/zlib/zstd", - .enum_table =3D &MultiFDCompression_lookup, - .get =3D qdev_propinfo_get_enum, - .set =3D qdev_propinfo_set_enum, - .set_default_value =3D qdev_propinfo_set_default_value_enum, -}; - -/* --- pci address --- */ - -/* - * bus-local address, i.e. "$slot" or "$slot.$fn" - */ -static void set_pci_devfn(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - DeviceState *dev =3D DEVICE(obj); - Property *prop =3D opaque; - int32_t value, *ptr =3D qdev_get_prop_ptr(dev, prop); - unsigned int slot, fn, n; - Error *local_err =3D NULL; - char *str; - - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - - visit_type_str(v, name, &str, &local_err); - if (local_err) { - error_free(local_err); - local_err =3D NULL; - visit_type_int32(v, name, &value, &local_err); - if (local_err) { - error_propagate(errp, local_err); - } else if (value < -1 || value > 255) { - error_setg(errp, QERR_INVALID_PARAMETER_VALUE, - name ? name : "null", "pci_devfn"); - } else { - *ptr =3D value; - } - return; - } - - if (sscanf(str, "%x.%x%n", &slot, &fn, &n) !=3D 2) { - fn =3D 0; - if (sscanf(str, "%x%n", &slot, &n) !=3D 1) { - goto invalid; - } - } - if (str[n] !=3D '\0' || fn > 7 || slot > 31) { - goto invalid; - } - *ptr =3D slot << 3 | fn; - g_free(str); - return; - -invalid: - error_set_from_qdev_prop_error(errp, EINVAL, dev, prop, str); - g_free(str); -} - -static int print_pci_devfn(DeviceState *dev, Property *prop, char *dest, - size_t len) -{ - int32_t *ptr =3D qdev_get_prop_ptr(dev, prop); - - if (*ptr =3D=3D -1) { - return snprintf(dest, len, ""); - } else { - return snprintf(dest, len, "%02x.%x", *ptr >> 3, *ptr & 7); - } -} - -const PropertyInfo qdev_prop_pci_devfn =3D { - .name =3D "int32", - .description =3D "Slot and optional function number, example: 06.0 or = 06", - .print =3D print_pci_devfn, - .get =3D qdev_propinfo_get_int32, - .set =3D set_pci_devfn, - .set_default_value =3D qdev_propinfo_set_default_value_uint, -}; - -/* --- blocksize --- */ - -static void set_blocksize(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - DeviceState *dev =3D DEVICE(obj); - Property *prop =3D opaque; - uint16_t value, *ptr =3D qdev_get_prop_ptr(dev, prop); - Error *local_err =3D NULL; - const int64_t min =3D 512; - const int64_t max =3D 32768; - - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - - visit_type_uint16(v, name, &value, &local_err); - if (local_err) { - error_propagate(errp, local_err); - return; - } - /* value of 0 means "unset" */ - if (value && (value < min || value > max)) { - error_setg(errp, QERR_PROPERTY_VALUE_OUT_OF_RANGE, - dev->id ? : "", name, (int64_t)value, min, max); - return; - } - - /* We rely on power-of-2 blocksizes for bitmasks */ - if ((value & (value - 1)) !=3D 0) { - error_setg(errp, - "Property %s.%s doesn't take value '%" PRId64 "', " - "it's not a power of 2", dev->id ?: "", name, (int64_t)v= alue); - return; - } - - *ptr =3D value; -} - -const PropertyInfo qdev_prop_blocksize =3D { - .name =3D "uint16", - .description =3D "A power of two between 512 and 32768", - .get =3D qdev_propinfo_get_uint16, - .set =3D set_blocksize, - .set_default_value =3D qdev_propinfo_set_default_value_uint, -}; - -/* --- pci host address --- */ - -static void get_pci_host_devaddr(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - DeviceState *dev =3D DEVICE(obj); - Property *prop =3D opaque; - PCIHostDeviceAddress *addr =3D qdev_get_prop_ptr(dev, prop); - char buffer[] =3D "ffff:ff:ff.f"; - char *p =3D buffer; - int rc =3D 0; - - /* - * Catch "invalid" device reference from vfio-pci and allow the - * default buffer representing the non-existent device to be used. - */ - if (~addr->domain || ~addr->bus || ~addr->slot || ~addr->function) { - rc =3D snprintf(buffer, sizeof(buffer), "%04x:%02x:%02x.%0d", - addr->domain, addr->bus, addr->slot, addr->function); - assert(rc =3D=3D sizeof(buffer) - 1); - } - - visit_type_str(v, name, &p, errp); -} - -/* - * Parse [:]:. - * if is not supplied, it's assumed to be 0. - */ -static void set_pci_host_devaddr(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - DeviceState *dev =3D DEVICE(obj); - Property *prop =3D opaque; - PCIHostDeviceAddress *addr =3D qdev_get_prop_ptr(dev, prop); - Error *local_err =3D NULL; - char *str, *p; - const char *e; - unsigned long val; - unsigned long dom =3D 0, bus =3D 0; - unsigned long slot =3D 0, func =3D 0; - - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - - visit_type_str(v, name, &str, &local_err); - if (local_err) { - error_propagate(errp, local_err); - return; - } - - p =3D str; - if (qemu_strtoul(p, &e, 16, &val) < 0) { - goto inval; - } - if (*e !=3D ':') { - goto inval; - } - bus =3D val; - - p =3D (char *)e + 1; - if (qemu_strtoul(p, &e, 16, &val) < 0) { - goto inval; - } - if (*e =3D=3D ':') { - dom =3D bus; - bus =3D val; - p =3D (char *)e + 1; - if (qemu_strtoul(p, &e, 16, &val) < 0) { - goto inval; - } - } - slot =3D val; - - if (*e !=3D '.') { - goto inval; - } - p =3D (char *)e + 1; - if (qemu_strtoul(p, &e, 10, &val) < 0) { - goto inval; - } - func =3D val; - - if (dom > 0xffff || bus > 0xff || slot > 0x1f || func > 7) { - goto inval; - } - - if (*e) { - goto inval; - } - - addr->domain =3D dom; - addr->bus =3D bus; - addr->slot =3D slot; - addr->function =3D func; - - g_free(str); - return; - -inval: - error_set_from_qdev_prop_error(errp, EINVAL, dev, prop, str); - g_free(str); -} - -const PropertyInfo qdev_prop_pci_host_devaddr =3D { - .name =3D "str", - .description =3D "Address (bus/device/function) of " - "the host device, example: 04:10.0", - .get =3D get_pci_host_devaddr, - .set =3D set_pci_host_devaddr, -}; - /* --- UUID --- */ =20 static void get_uuid(Object *obj, Visitor *v, const char *name, void *opaq= ue, @@ -1167,16 +774,6 @@ void qdev_prop_set_string(DeviceState *dev, const cha= r *name, const char *value) object_property_set_str(OBJECT(dev), value, name, &error_abort); } =20 -void qdev_prop_set_macaddr(DeviceState *dev, const char *name, - const uint8_t *value) -{ - char str[2 * 6 + 5 + 1]; - snprintf(str, sizeof(str), "%02x:%02x:%02x:%02x:%02x:%02x", - value[0], value[1], value[2], value[3], value[4], value[5]); - - object_property_set_str(OBJECT(dev), str, name, &error_abort); -} - void qdev_prop_set_enum(DeviceState *dev, const char *name, int value) { Property *prop; @@ -1285,190 +882,3 @@ const PropertyInfo qdev_prop_link =3D { .name =3D "link", .create =3D create_link_property, }; - -/* --- OffAutoPCIBAR off/auto/bar0/bar1/bar2/bar3/bar4/bar5 --- */ - -const PropertyInfo qdev_prop_off_auto_pcibar =3D { - .name =3D "OffAutoPCIBAR", - .description =3D "off/auto/bar0/bar1/bar2/bar3/bar4/bar5", - .enum_table =3D &OffAutoPCIBAR_lookup, - .get =3D qdev_propinfo_get_enum, - .set =3D qdev_propinfo_set_enum, - .set_default_value =3D qdev_propinfo_set_default_value_enum, -}; - -/* --- PCIELinkSpeed 2_5/5/8/16 -- */ - -static void get_prop_pcielinkspeed(Object *obj, Visitor *v, const char *na= me, - void *opaque, Error **errp) -{ - DeviceState *dev =3D DEVICE(obj); - Property *prop =3D opaque; - PCIExpLinkSpeed *p =3D qdev_get_prop_ptr(dev, prop); - int speed; - - switch (*p) { - case QEMU_PCI_EXP_LNK_2_5GT: - speed =3D PCIE_LINK_SPEED_2_5; - break; - case QEMU_PCI_EXP_LNK_5GT: - speed =3D PCIE_LINK_SPEED_5; - break; - case QEMU_PCI_EXP_LNK_8GT: - speed =3D PCIE_LINK_SPEED_8; - break; - case QEMU_PCI_EXP_LNK_16GT: - speed =3D PCIE_LINK_SPEED_16; - break; - default: - /* Unreachable */ - abort(); - } - - visit_type_enum(v, prop->name, &speed, prop->info->enum_table, errp); -} - -static void set_prop_pcielinkspeed(Object *obj, Visitor *v, const char *na= me, - void *opaque, Error **errp) -{ - DeviceState *dev =3D DEVICE(obj); - Property *prop =3D opaque; - PCIExpLinkSpeed *p =3D qdev_get_prop_ptr(dev, prop); - int speed; - Error *local_err =3D NULL; - - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - - visit_type_enum(v, prop->name, &speed, prop->info->enum_table, &local_= err); - if (local_err) { - error_propagate(errp, local_err); - return; - } - - switch (speed) { - case PCIE_LINK_SPEED_2_5: - *p =3D QEMU_PCI_EXP_LNK_2_5GT; - break; - case PCIE_LINK_SPEED_5: - *p =3D QEMU_PCI_EXP_LNK_5GT; - break; - case PCIE_LINK_SPEED_8: - *p =3D QEMU_PCI_EXP_LNK_8GT; - break; - case PCIE_LINK_SPEED_16: - *p =3D QEMU_PCI_EXP_LNK_16GT; - break; - default: - /* Unreachable */ - abort(); - } -} - -const PropertyInfo qdev_prop_pcie_link_speed =3D { - .name =3D "PCIELinkSpeed", - .description =3D "2_5/5/8/16", - .enum_table =3D &PCIELinkSpeed_lookup, - .get =3D get_prop_pcielinkspeed, - .set =3D set_prop_pcielinkspeed, - .set_default_value =3D qdev_propinfo_set_default_value_enum, -}; - -/* --- PCIELinkWidth 1/2/4/8/12/16/32 -- */ - -static void get_prop_pcielinkwidth(Object *obj, Visitor *v, const char *na= me, - void *opaque, Error **errp) -{ - DeviceState *dev =3D DEVICE(obj); - Property *prop =3D opaque; - PCIExpLinkWidth *p =3D qdev_get_prop_ptr(dev, prop); - int width; - - switch (*p) { - case QEMU_PCI_EXP_LNK_X1: - width =3D PCIE_LINK_WIDTH_1; - break; - case QEMU_PCI_EXP_LNK_X2: - width =3D PCIE_LINK_WIDTH_2; - break; - case QEMU_PCI_EXP_LNK_X4: - width =3D PCIE_LINK_WIDTH_4; - break; - case QEMU_PCI_EXP_LNK_X8: - width =3D PCIE_LINK_WIDTH_8; - break; - case QEMU_PCI_EXP_LNK_X12: - width =3D PCIE_LINK_WIDTH_12; - break; - case QEMU_PCI_EXP_LNK_X16: - width =3D PCIE_LINK_WIDTH_16; - break; - case QEMU_PCI_EXP_LNK_X32: - width =3D PCIE_LINK_WIDTH_32; - break; - default: - /* Unreachable */ - abort(); - } - - visit_type_enum(v, prop->name, &width, prop->info->enum_table, errp); -} - -static void set_prop_pcielinkwidth(Object *obj, Visitor *v, const char *na= me, - void *opaque, Error **errp) -{ - DeviceState *dev =3D DEVICE(obj); - Property *prop =3D opaque; - PCIExpLinkWidth *p =3D qdev_get_prop_ptr(dev, prop); - int width; - Error *local_err =3D NULL; - - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - - visit_type_enum(v, prop->name, &width, prop->info->enum_table, &local_= err); - if (local_err) { - error_propagate(errp, local_err); - return; - } - - switch (width) { - case PCIE_LINK_WIDTH_1: - *p =3D QEMU_PCI_EXP_LNK_X1; - break; - case PCIE_LINK_WIDTH_2: - *p =3D QEMU_PCI_EXP_LNK_X2; - break; - case PCIE_LINK_WIDTH_4: - *p =3D QEMU_PCI_EXP_LNK_X4; - break; - case PCIE_LINK_WIDTH_8: - *p =3D QEMU_PCI_EXP_LNK_X8; - break; - case PCIE_LINK_WIDTH_12: - *p =3D QEMU_PCI_EXP_LNK_X12; - break; - case PCIE_LINK_WIDTH_16: - *p =3D QEMU_PCI_EXP_LNK_X16; - break; - case PCIE_LINK_WIDTH_32: - *p =3D QEMU_PCI_EXP_LNK_X32; - break; - default: - /* Unreachable */ - abort(); - } -} - -const PropertyInfo qdev_prop_pcie_link_width =3D { - .name =3D "PCIELinkWidth", - .description =3D "1/2/4/8/12/16/32", - .enum_table =3D &PCIELinkWidth_lookup, - .get =3D get_prop_pcielinkwidth, - .set =3D set_prop_pcielinkwidth, - .set_default_value =3D qdev_propinfo_set_default_value_enum, -}; --=20 2.21.1 From nobody Sat May 4 17:44:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584323052; cv=none; d=zohomail.com; s=zohoarc; b=fdjyxs7kJHm+gDf8cJFJeqkBSW6z4BSYxqI5ptrQaKi1RsS/83QbEqmGo1K6wG1SVkxFN3WyAHUKvvqtu189bcuKnz0iyOqcQJiKuepUZWZKt02R4cBCwHgXBx8g3JH7crw/WK2OrQWdRw3K9iWo1EMnzZKixumgSgaW+iDk3Pc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584323052; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=kuMVG+NTWOPLSO3v2C9jYeHA3g0NL+S99GiL6fEWeBk=; b=Zqdbcp20TNqBWYjNz45UTirRfN2+8cq1FWZ5clxCesMNomLhPMsIFDJx77+kE+gSnheLa0TWsraprfhOV3Bu9vHiprZiooqyN5+gJ2h5LbGPnAfcMIXQ/vp6vfx6+fRU6gKCR4f+wYrvlaRdsYvyUUHTb8G/CvtpLq5DLBjMESY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584323052081990.6068882304867; Sun, 15 Mar 2020 18:44:12 -0700 (PDT) Received: from localhost ([::1]:33020 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDena-0000oY-Ok for importer@patchew.org; Sun, 15 Mar 2020 21:44:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57775) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDdMT-0008UI-2M for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:12:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDdMP-0006hc-0h for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:12:03 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:37189 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 1jDdMO-0006gN-SW for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:12:00 -0400 Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-469-s8HI0huWMBup93VmwWnTVQ-1; Sun, 15 Mar 2020 20:11:58 -0400 Received: by mail-wr1-f72.google.com with SMTP id t10so1853148wrp.15 for ; Sun, 15 Mar 2020 17:11:58 -0700 (PDT) Received: from localhost.localdomain (191.red-83-42-66.dynamicip.rima-tde.net. [83.42.66.191]) by smtp.gmail.com with ESMTPSA id x17sm27123353wmi.28.2020.03.15.17.11.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2020 17:11:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584317520; 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=kuMVG+NTWOPLSO3v2C9jYeHA3g0NL+S99GiL6fEWeBk=; b=KTz6AibK6Legq/VRSxRU7azF91knNj80ZwwAq89xIG0Uj9HpeXYKS4waFpl6az8roPGHKV GI0UUz4QMOf2C0uM59Tcan6weXT+Mzqcl7aZK8IvaAtJjTTJEuwxn60VWXOGRvONgRms7y 1SiCZi6kZsSMueiA0Yc2GUdpjrhuFP8= X-MC-Unique: s8HI0huWMBup93VmwWnTVQ-1 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=I6U+Qw9elflVP4hqM5y7jEbjXrYe0uOEYqqfQofz9BY=; b=t3fA79S3E1JdIfXxABKGGVaV+UJZ02F1LPrFAUKPeE1DB9R+iyC9RDow5qaAT2ZBe+ pGOicsSrk09FC824ly6QDd/bocfywMO2R9wP85RcPsxuOg83E+OUGlmFNPlJ7BgMDKJN M1N7J31kEoJLQihsv8NRBNNqDnQmV1FHvHZ7hJAwJLc/57hg70IFzD5m4CaG3zFJc4qg L/nPu/gUh82lsJWLjL6l834PuwA2uPfZrcHe07Uc1TVwE3HbiautC8nFn6X97UFO9cgr UHmJ0EOAFS7vQA3rPXxuKyrYA/5W4jqcTy+QWhhoXSdALlgiT11GF4UPmhTzZ3JCELuT 3IRw== X-Gm-Message-State: ANhLgQ3MWLBtEoh3ZIc1sPYzY2aMyFtZpYtEqtJw8PJUVgtri0w1Xa5d 5t08qu5S8Soakv1UJlRwo69I50VOZp9XX81aG8EV/vFDobZmSVK6VlRy3ebUuZ6Eac1QfmLj5IQ /fxld3x3qyy1sBQk= X-Received: by 2002:adf:8341:: with SMTP id 59mr17006249wrd.314.1584317517487; Sun, 15 Mar 2020 17:11:57 -0700 (PDT) X-Google-Smtp-Source: ADFU+vtEuqJgk3lgm+Ek5BkmkSJzmRlOWJ0lZCx8ohYK/tEC4FIjh9NwBPdYntgEPLEtT/O9nF3+LA== X-Received: by 2002:adf:8341:: with SMTP id 59mr17006228wrd.314.1584317517263; Sun, 15 Mar 2020 17:11:57 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v2 8/9] hw/core: Add qdev stub for user-mode Date: Mon, 16 Mar 2020 01:11:10 +0100 Message-Id: <20200316001111.31004-9-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200316001111.31004-1-philmd@redhat.com> References: <20200316001111.31004-1-philmd@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable 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: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Eduardo Habkost , Michael Roth , Markus Armbruster , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8"; text/plain; charset="utf-8" While user-mode does not use peripherals (devices), it uses a CPU which is a device. In the next commit we will reduce the QAPI generated code for user-mode. Since qdev.c calls qapi_event_send_device_deleted(), let's add a stub for it. Suggested-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- v2: use common-obj-$(CONFIG_ALL) (Paolo) --- hw/core/qdev-stubs.c | 20 ++++++++++++++++++++ hw/core/Makefile.objs | 3 +++ 2 files changed, 23 insertions(+) create mode 100644 hw/core/qdev-stubs.c diff --git a/hw/core/qdev-stubs.c b/hw/core/qdev-stubs.c new file mode 100644 index 0000000000..0819dcba12 --- /dev/null +++ b/hw/core/qdev-stubs.c @@ -0,0 +1,20 @@ +/* + * QAPI qdev stubs + * + * Copyright (c) 2020 Red Hat, Inc. + * + * Author: + * Philippe Mathieu-Daud=C3=A9 + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qapi/qapi-events-qdev.h" + +void qapi_event_send_device_deleted(bool has_device, + const char *device, const char *path) +{ +} diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs index 6215e7c208..9f874a8840 100644 --- a/hw/core/Makefile.objs +++ b/hw/core/Makefile.objs @@ -31,3 +31,6 @@ common-obj-$(CONFIG_OR_IRQ) +=3D or-irq.o common-obj-$(CONFIG_SPLIT_IRQ) +=3D split-irq.o common-obj-$(CONFIG_PLATFORM_BUS) +=3D platform-bus.o common-obj-$(CONFIG_GENERIC_LOADER) +=3D generic-loader.o + +common-obj-$(call lnot,$(CONFIG_SOFTMMU)) +=3D qdev-stubs.o +common-obj-$(CONFIG_ALL) +=3D qdev-stubs.o --=20 2.21.1 From nobody Sat May 4 17:44:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584321524; cv=none; d=zohomail.com; s=zohoarc; b=Eu5wgm6841Heo10QKAh055Oe7duqQk8fPoPmt7oxqUo/zMvG3joB5b+/f0aHPgvoK123wYSQwFMO9U+WmCWE8jg/WVtI4QXu9Mje90kKfcUOL88JYJvoPavHYDpFeq/gZOHFupw6/i9ynkzkAoMHyVsALVZs2dd4yX9Hlh+2Vgs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584321524; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=AG7xT/wVAX7aViJSX1jQiw6M2Yh1RcrmKc+SLXD1328=; b=OQJwRpGE6SiBPPdC2z9B/eXw+Xlbm0cslkKIWO5W01C/tLTFuRJcxIBN2poy9mq1eEPds6FqUgI6yrrBAaQI5rcDUBM07Fi1uFMSqpA0v1udfagmQC74YjKZujrE0arT6HVMTr6+Vb6p5Ip0w8Gcia5LGGTpyukReygxpgNHBNw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584321524252337.50611690737253; Sun, 15 Mar 2020 18:18:44 -0700 (PDT) Received: from localhost ([::1]:32842 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDeOw-0000UV-Up for importer@patchew.org; Sun, 15 Mar 2020 21:18:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57860) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDdMW-0008Vw-MD for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:12:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDdMU-00076q-Kp for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:12:08 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:49759 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jDdMU-00073q-Gl for qemu-devel@nongnu.org; Sun, 15 Mar 2020 20:12:06 -0400 Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-34-nXHkbFu1Nt-6kvTdH7f6PA-1; Sun, 15 Mar 2020 20:12:04 -0400 Received: by mail-wr1-f69.google.com with SMTP id 94so3461764wrr.3 for ; Sun, 15 Mar 2020 17:12:04 -0700 (PDT) Received: from localhost.localdomain (191.red-83-42-66.dynamicip.rima-tde.net. [83.42.66.191]) by smtp.gmail.com with ESMTPSA id y11sm5812733wrd.65.2020.03.15.17.12.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2020 17:12:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584317526; 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=AG7xT/wVAX7aViJSX1jQiw6M2Yh1RcrmKc+SLXD1328=; b=P2XonldYISNMWioJkBdeB+uwjigkyE5hryZXFXKp1E50qV7X88elEfLVB7KrQMWmTEKm4o dsLxYruBpj8X78U1UxOQ6JjSKWvjtisfrRmSP8E3S4TDlieMcLqlB+66mtUlPbhW4Qf32n vH2MlHRD4wV2em52h64wFwnI8hcgvRY= X-MC-Unique: nXHkbFu1Nt-6kvTdH7f6PA-1 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=/ikMSJm+InHRPdirtpMpOowiTQs5ep3wPdoGDAQJ/Ms=; b=NsAbWyBkHhth4dIDhV8lLl59H8NmI/8Q7RKWOEp+SL5CSdEDUTr0jLG0ikfzvAxWXS RjsKk0vKUspzDADGxqhON+EPtFBB68uNiLJesg+dWolHjvMtapWSWI+cxNBteCKg+FWK TGN2iaUq3RNcV7i7CQwuBRJxL7GpRMger+WX3azNm05EZBGzAJHRfSa0Mx6agRf7iKX0 +TZ/o89WgMEOYRFiP8isKhJxX4Hla5WNbk4ICwrzZpGqLM5tFnsIJQ0Q5jErlgWghw6C kBjUA64bJPxzNmyo0J8KLFsfJqTpDcQaLo6w8/5SEaNssW/0V09DsR6/OjGgUZ8wedwK BOQA== X-Gm-Message-State: ANhLgQ1HSjemyvFyTve/bns71r+1KTx2a0YI8//NUn7UCRcf1WBZI+Tb r02e1Y4tWWMTAt6fK3w7vJz19WQRcVwIDN8yJLUwi3JMt7Rn0O82YyXwcBnKHdGqj7d+wNtpMqw UmONd3CjLFV2M0Ic= X-Received: by 2002:a7b:c770:: with SMTP id x16mr23458687wmk.159.1584317522952; Sun, 15 Mar 2020 17:12:02 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvnj6xW6vb6brKPhIa8AlrJj2sqhezWiHrANLxLe5QFJH/2/zBhrD0wJnuBae7rbxCOigC7gA== X-Received: by 2002:a7b:c770:: with SMTP id x16mr23458669wmk.159.1584317522784; Sun, 15 Mar 2020 17:12:02 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v2 9/9] qapi: Restrict code generated for user-mode Date: Mon, 16 Mar 2020 01:11:11 +0100 Message-Id: <20200316001111.31004-10-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200316001111.31004-1-philmd@redhat.com> References: <20200316001111.31004-1-philmd@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 205.139.110.61 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: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Eduardo Habkost , Richard Henderson , Michael Roth , Markus Armbruster , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8"; text/plain; charset="utf-8" A lot of QAPI generated code is never used by user-mode. Rewrite the QAPI_COMMON_MODULES variable one entry per line, and split it in 3 groups: - always used - use by system-mode or tools - only used by system-mode Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- qapi/Makefile.objs | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/qapi/Makefile.objs b/qapi/Makefile.objs index 4673ab7490..18435db426 100644 --- a/qapi/Makefile.objs +++ b/qapi/Makefile.objs @@ -5,11 +5,40 @@ util-obj-y +=3D opts-visitor.o qapi-clone-visitor.o util-obj-y +=3D qmp-event.o util-obj-y +=3D qapi-util.o =20 -QAPI_COMMON_MODULES =3D audio authz block-core block char common control c= rypto -QAPI_COMMON_MODULES +=3D dump error introspect job machine migration misc -QAPI_COMMON_MODULES +=3D net pragma qdev qom rdma rocker run-state sockets= tpm -QAPI_COMMON_MODULES +=3D trace transaction ui +QAPI_COMMON_MODULES =3D common +QAPI_COMMON_MODULES +=3D introspect +QAPI_COMMON_MODULES +=3D misc + +ifeq ($(CONFIG_SOFTMMU),y) +QAPI_COMMON_MODULES +=3D audio +QAPI_COMMON_MODULES +=3D dump +QAPI_COMMON_MODULES +=3D machine +QAPI_COMMON_MODULES +=3D migration +QAPI_COMMON_MODULES +=3D net rocker +QAPI_COMMON_MODULES +=3D qdev +QAPI_COMMON_MODULES +=3D rdma +QAPI_COMMON_MODULES +=3D tpm +QAPI_COMMON_MODULES +=3D trace +QAPI_COMMON_MODULES +=3D ui QAPI_TARGET_MODULES =3D machine-target misc-target +endif # CONFIG_SOFTMMU + +ifeq ($(call lor,$(CONFIG_SOFTMMU),$(CONFIG_TOOLS)),y) +QAPI_COMMON_MODULES +=3D authz +QAPI_COMMON_MODULES +=3D block +QAPI_COMMON_MODULES +=3D block-core +QAPI_COMMON_MODULES +=3D char +QAPI_COMMON_MODULES +=3D control +QAPI_COMMON_MODULES +=3D crypto +QAPI_COMMON_MODULES +=3D error +QAPI_COMMON_MODULES +=3D job +QAPI_COMMON_MODULES +=3D pragma +QAPI_COMMON_MODULES +=3D qom +QAPI_COMMON_MODULES +=3D run-state +QAPI_COMMON_MODULES +=3D sockets +QAPI_COMMON_MODULES +=3D transaction +endif # CONFIG_SOFTMMU || CONFIG_TOOLS + QAPI_MODULES =3D $(QAPI_COMMON_MODULES) $(QAPI_TARGET_MODULES) =20 util-obj-y +=3D qapi-builtin-types.o --=20 2.21.1