From nobody Tue May 7 14:37:30 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=1584125605; cv=none; d=zohomail.com; s=zohoarc; b=NnHbw09fCFaGUhgeBTZWHgC2dRrWnBaXHpjGrFztVzXFrOSqoHFSAScK6tBO5pXTEUfuicyi36g2m+OfgnbjS4nFXBJqwpfy48r1QJqaT4Q/cH7Zx0Axj2BjV4ns9qHvGCvXkwyvhh9GfFilLfSE1TmzmrOEUqqyinSo12jJpgw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584125605; 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=qOGKKUJyqOA/pIW8E/HPAvIAT7gDZ6EfqKjI6X/TRUQ=; b=JpxixtCwhRnoPbRyOYgs6Yev3F/W739Hdk4oBB7b6LWzzzaUM2rQdwyMhHhFlaySL8OZzlBlp2tY5wIr4LoLR8CAth9hVCOZMX/OD/2PcW7/tkjjvmQr4OtHfXoN6aPjBqZHVWtH1fKwWiv0gEf+I/oIsHmdDI6PGSGN8CDpg3w= 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 1584125605707888.7696126337854; Fri, 13 Mar 2020 11:53:25 -0700 (PDT) Received: from localhost ([::1]:35572 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpQy-0002rs-Is for importer@patchew.org; Fri, 13 Mar 2020 14:53:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35401) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpKM-0000rs-AR for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCpKK-0006Ql-Ox for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:34 -0400 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:27094 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 1jCpKK-0006QL-KR for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:32 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-68-ni3qhOLKM12jpa-ykhwkaA-1; Fri, 13 Mar 2020 14:46:15 -0400 Received: by mail-wm1-f72.google.com with SMTP id m4so3788573wmi.5 for ; Fri, 13 Mar 2020 11:46:15 -0700 (PDT) Received: from x1w.redhat.com (47.red-88-21-205.staticip.rima-tde.net. [88.21.205.47]) by smtp.gmail.com with ESMTPSA id s22sm16745849wmc.16.2020.03.13.11.46.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2020 11:46:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584125192; 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=qOGKKUJyqOA/pIW8E/HPAvIAT7gDZ6EfqKjI6X/TRUQ=; b=T+nNIv90V4V3alvUbR6ilmdkwzEB6EBbGlYqvBgyx1p/sbsn7ktpJAkMyqDfyufWppYKhU Ps/tz/u1Pnh8zyNK5emQMwDIpsrY6tQvxKy0W0ypQp8OboR9H1X7MoiaUfAHUE7oM4ZqA3 f0TvIaHbKDohUIY7x9AB2agW7Xtx82U= X-MC-Unique: ni3qhOLKM12jpa-ykhwkaA-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=RMwjrcmFmGA/nbjYq8IJWqr4XnFULjCpLFfZjdDbCRU=; b=YVBcqVG85e5MTlT72XD9c3dDGVfrPqTOgpj2fo6gX4TDvjY3RWKhXrOdPGjrqg2qss Ayu4CdX8PnAMaHCyjQ2EXGTGbQZaNexFTWXxxX8MORLjPOPBrv6shppBcZ/OwXxetq8S 1VHlWI17tnsXmPitniesrbEUsNm03xfwzlKN0UMBSJdkrAgGlFrDmVW4ijnGkLMMKnst o8aT4nKUsSdLvppF7FEaNgE5Ik+h7l8y/ZGYQzG/UUNFvmAwG8znkHF0hOAZ8JLblqv2 w9+fzLwIMPWJspQvZ5c7qe8v3VNfE9FqHLc5XRu2arq2wI+5GGHGgGwN+W8EM18gESlT XgNg== X-Gm-Message-State: ANhLgQ0q45oYN+9za2J2lQ4TTZJJauVwCHSCKAdBMYHWKs7ipwCYdmkh 8y8hGHk3L4UwQSC5hNd+VrilPuJ9jqhP1hmhq4EWD1ZBzcSlgtRM3MiJXJqsVJNv9w3yDbUUmpB KUa5Slbcyiz7Y49E= X-Received: by 2002:a7b:c414:: with SMTP id k20mr12067212wmi.119.1584125174104; Fri, 13 Mar 2020 11:46:14 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvqpAcuPSWbRcUFtvp6Zt4aRo0F64FIoda8WhgFUAYponvPcZhqmDwX64iSp2seewruU5d+/w== X-Received: by 2002:a7b:c414:: with SMTP id k20mr12067198wmi.119.1584125173898; Fri, 13 Mar 2020 11:46:13 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 1/9] hw/core/qdev-properties: Use qemu_strtol() in set_mac() handler Date: Fri, 13 Mar 2020 19:45:59 +0100 Message-Id: <20200313184607.11792-2-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200313184607.11792-1-philmd@redhat.com> References: <20200313184607.11792-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 , Markus Armbruster , Laurent Vivier , Michael Roth , 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 strtol() by qemu_strtol() so checkpatch.pl won't complain if we move this code later. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- 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 Tue May 7 14:37:30 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=1584125413; cv=none; d=zohomail.com; s=zohoarc; b=k6BJMGXAgnHH9keonRFPpwZFukIRfxfLP+rBwWP40yqPWZn6k3Jobhnj8CDuVrsBbwVFg+GGj5LlsnZRqGzrcnv8ZDyjk/wr5kWh65fUG8nv81uSn05maJOnWTeU5DeGG8LYV2Ns4yZ0YIXW6i4A/I++yVWL2XDCAisfPcwakTU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584125413; 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=4iGVZuF4Qb5AYL8uwIXnWmSt3UwwMw6MN0vCl+3WZX8=; b=BXGj+iRZ4tIITfs8RYcX2o+L2USePVRkgGYSMqHFyjjvFxgP5lJS8SDmxwOGMvkwg4Od7u+1it+6PJiNdl1B19h0d/mqVxM8d2XcaJ4M6ajzzkVdrTnziqiElFS8ESLlpSLUKgDsVU9bhY1/rgLMuZxkdURPehzd2ZII/6qf8h8= 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 1584125413587319.3870046421051; Fri, 13 Mar 2020 11:50:13 -0700 (PDT) Received: from localhost ([::1]:35500 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpNs-0005nw-BA for importer@patchew.org; Fri, 13 Mar 2020 14:50:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35247) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpKF-0000Zy-Bu for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCpKE-0006Ao-9Z for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:27 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:37470 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 1jCpKE-00069v-5S for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:26 -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-407-5qsKRMjMOcaTrWIWRIT83Q-1; Fri, 13 Mar 2020 14:46:20 -0400 Received: by mail-wr1-f70.google.com with SMTP id b11so4712311wru.21 for ; Fri, 13 Mar 2020 11:46:19 -0700 (PDT) Received: from x1w.redhat.com (47.red-88-21-205.staticip.rima-tde.net. [88.21.205.47]) by smtp.gmail.com with ESMTPSA id i1sm63986354wrs.18.2020.03.13.11.46.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2020 11:46:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584125185; 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=4iGVZuF4Qb5AYL8uwIXnWmSt3UwwMw6MN0vCl+3WZX8=; b=YN7/Dl94Bv89OENtr0bmzNtDwmaZSy8ZzLPNb0vXE9LI8Uy8QoAwVUQe+7Gce2jP98z0E9 td9CCC87+y/KokChPOXsgyskyRX7hJiWsZJAVON/jgnSQJBC7EmaexjFEGooTwtcEQXyyw t0TL/8T0JcGS5T85Jon3bIF7xs7kbSw= X-MC-Unique: 5qsKRMjMOcaTrWIWRIT83Q-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=zCp7V6dmvI6Oe1etj78MAk0xW8iGI9/bbSjLeaMKlUw=; b=J4dndvc+9Cdg+uwchcgCkJ3e65Kb3EPGVxRvQH5DsiCvF2Z9kuU2sAc/lTzguVE2Ea m/aNgr6zcmiJeulTWcyY6IH/87ybwlnJuJDx/c9u2MArkeZmQL6QsfcVhHRHaLJZk5Fv h+BbkNWsx5/RhBE8tFSxxNZP0pBmJqRzWvY+Ubl2h8cmE5y9K48m+aANfS6kLzrJsDbZ y9apVXZdJnObv7qjkugvkR3PNGYy1qZIADzwr7LZK2wKOEzwRy8UHkQWijIZLgg4gQP7 NtEWp1FkdL3Lduk94sk7D04L3Zom/d8dTmGUR909fzOr/lQrtaUMczucfpLPXQ4UqqWf gw2A== X-Gm-Message-State: ANhLgQ1g4XIDVYNgElz53xfwQfzpbKZqAMt/UOPQfKVqJPzb153x/kVH sz3APPxdgwjWBx/XkmHN+L2PnVli9VPAckrSU0u1bCI1l0QxPv8EaK7UbTobojeHqJYMvJskuVK njcP8HOSXwFXWASI= X-Received: by 2002:a1c:491:: with SMTP id 139mr4867677wme.21.1584125178774; Fri, 13 Mar 2020 11:46:18 -0700 (PDT) X-Google-Smtp-Source: ADFU+vuaYIMh40A0NCuonushmZMvLIz51qi9sJGqlGelMgK3L3fXcRVsxiUGuEBrw15kAGNEnJPq4w== X-Received: by 2002:a1c:491:: with SMTP id 139mr4867658wme.21.1584125178571; Fri, 13 Mar 2020 11:46:18 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 2/9] hw/core/qdev-properties: Use qemu_strtoul() in set_pci_host_devaddr() Date: Fri, 13 Mar 2020 19:46:00 +0100 Message-Id: <20200313184607.11792-3-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200313184607.11792-1-philmd@redhat.com> References: <20200313184607.11792-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 , Markus Armbruster , Laurent Vivier , Michael Roth , 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. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- 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..e1cefcaa61 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -820,7 +820,7 @@ 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; @@ -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 || val > 0xffff || e =3D=3D p) { + 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 || val > 0x1f || e =3D=3D p) { 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 || val > 0x1f || e =3D=3D p)= { goto inval; } } @@ -862,14 +862,13 @@ 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 || val > 7 || e =3D=3D p) { goto inval; } func =3D val; =20 - if (dom > 0xffff || bus > 0xff || slot > 0x1f || func > 7) { + if (bus > 0xff) { goto inval; } =20 --=20 2.21.1 From nobody Tue May 7 14:37:30 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=1584125932; cv=none; d=zohomail.com; s=zohoarc; b=i0+oz8qm7hCRppklDjnpOxWDwjfXkwnI470avjIYxMDKS8WLEMRQsq4U7md3XDYe7ek3tDW4pawZbyS0wLY+tx7f5YNyQ1Ps5wrkM+cHXde70g5HiH5FvOA2ixm5FDbh3P40iRkFi90Fa+Z8FxHUvSlZYg/BFtzRjVo+Lrv4pw0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584125932; 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=7ePwDiPezVxzhZndwtlliE7S2n1c8J46GHqyq2ygKco=; b=lc/sB3Ube82pMixD9WQBD+JZB9jqZme38nG8UHby8NzNhmZSvaZO11pr2k3ZalvtxESZJWjLZN7LUIYQcSla5N97OzFQF+zzewJcqDEl9pNC3RBhw16mz9VWFqM7GtBO/PHb16XlFunHpyju6zSDjeVmo1NWB73koglzzwPxiCI= 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 1584125932391385.74730158378554; Fri, 13 Mar 2020 11:58:52 -0700 (PDT) Received: from localhost ([::1]:35684 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpWF-0006j0-7E for importer@patchew.org; Fri, 13 Mar 2020 14:58:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35265) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpKF-0000bN-Qf for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCpKE-0006C1-Q9 for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:27 -0400 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:39039 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 1jCpKE-0006Bb-MQ for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:26 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-25-dTfyB8BqNZm797ZwjhwncQ-1; Fri, 13 Mar 2020 14:46:24 -0400 Received: by mail-wm1-f69.google.com with SMTP id a23so3787965wmm.8 for ; Fri, 13 Mar 2020 11:46:24 -0700 (PDT) Received: from x1w.redhat.com (47.red-88-21-205.staticip.rima-tde.net. [88.21.205.47]) by smtp.gmail.com with ESMTPSA id u25sm17646168wml.17.2020.03.13.11.46.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2020 11:46:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584125186; 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=7ePwDiPezVxzhZndwtlliE7S2n1c8J46GHqyq2ygKco=; b=QiBggcQvUVzyZJgvJXUvqVYcbSUWModvCd0fo5aZXHyOkWdfhWdq80qWv7gDWnGSjjqdCQ gkrWjC6YV5BS+ST3wvYQpb6lwv1WXK4rBmBK3uXzbXqDqdntmebxERoNGsl3QA2T4ClolP XPFA/MYMF1Apq5KybJC4T7SNzxuZiOg= X-MC-Unique: dTfyB8BqNZm797ZwjhwncQ-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=aagp4FgW5GbSTsX+knMwFtcu7+CAaAgGVA0SldYLyYM=; b=B/clf4zLtBXZVus2xoPhgcEL8gcHy2iqedEm+UvAszT1buWVw5685Q9JMTL0rclPFq 1UsPrGVsFbDSaVrbJ4QQZOsYrYOWabWh5afEtR5BSK5WEO1J3rgxZ/9fGaypswOWq7XC HPotJdPk3cIjQ3NiWfWSxDugbMDJkuNUCInprYwZwWQKWBNuq6DwUgSR7om+34fSw0RB 9CHPkg78hCKAjDXGohdquAUj6gIaR7COqyWDOyRnKj0HavZUuCg42dPaV87v5gejcOrl NbYH+WnRAVh58V8jmiAV42p0/YOQ6Yqj4HZTqHUAF/Avj8Rd4ZWt8ucvxzxa34q6fVUs D7jw== X-Gm-Message-State: ANhLgQ3REeJrr1AI7Zhpx6PNiZKdGBwZuOMBWjEK0Ve9LEDKTIhnJcQF MPuZOQfU1qI9jkeHmp3O/bFB3JcrEXL9UcUtCT7lZj0jzUxdea8uslEBbOUYSLR5V+JYWN6an5F vR/72Yf9dJIM42fw= X-Received: by 2002:a05:600c:286:: with SMTP id 6mr12088983wmk.101.1584125183300; Fri, 13 Mar 2020 11:46:23 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvF1BMGo+77M+we3FvRHaJw5i0bl459XoKtFcg7YViGqq2pDke43I1PipqK22R0ouRmbju9KQ== X-Received: by 2002:a05:600c:286:: with SMTP id 6mr12088972wmk.101.1584125183117; Fri, 13 Mar 2020 11:46:23 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 3/9] hw/core/qdev-properties: Fix code style Date: Fri, 13 Mar 2020 19:46:01 +0100 Message-Id: <20200313184607.11792-4-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200313184607.11792-1-philmd@redhat.com> References: <20200313184607.11792-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 , Markus Armbruster , Laurent Vivier , Michael Roth , 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. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- 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 e1cefcaa61..ea5b59d5c5 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 Tue May 7 14:37:30 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=1584125511; cv=none; d=zohomail.com; s=zohoarc; b=EcGV4i7g3Qw532mi6AI5BmHF2EFHt2posgoY7z3miJQYHWqdv+FxIJOkmPIZLGoF8hJB5FRnzkBx6lefbQWRBIP4sth0gOC+gev99CVfGTXG84vRH8g6nV/PpKqtTcQDkKnv0LvtfDP3P74cPLn5jZo8nb74hQkCfRplxMeeVxI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584125511; 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=yWQ+u/Gvrhh9wC5eV7uQcIOMQ3Csdd6qcnMlGuSOykE=; b=KNl9Y3kf6V2PRVcL1zdXhDWTYjrhMRYz+TvSxfB2/c1CDg7PrAxt3k60+iarYWuyqlYCP6RIpjerxHvsey+/3HeMwjUPzUJQDcTXzCX7j6VxmzDuYMlaIjixCtdirhQffHIY2l5LACEqan+98k5cmQzGATeMBm6DpgP5fVEUqsw= 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 1584125511520856.5205197294454; Fri, 13 Mar 2020 11:51:51 -0700 (PDT) Received: from localhost ([::1]:35542 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpPS-0000Gt-Dg for importer@patchew.org; Fri, 13 Mar 2020 14:51:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35364) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpKK-0000nh-RC for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCpKJ-0006PZ-C8 for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:32 -0400 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:40402 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 1jCpKJ-0006OK-7z for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:31 -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-51-zM0KANFsOiiop3MGo4DWFg-1; Fri, 13 Mar 2020 14:46:29 -0400 Received: by mail-wr1-f72.google.com with SMTP id l16so4001968wrr.6 for ; Fri, 13 Mar 2020 11:46:29 -0700 (PDT) Received: from x1w.redhat.com (47.red-88-21-205.staticip.rima-tde.net. [88.21.205.47]) by smtp.gmail.com with ESMTPSA id u204sm15225081wmg.40.2020.03.13.11.46.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2020 11:46:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584125190; 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=yWQ+u/Gvrhh9wC5eV7uQcIOMQ3Csdd6qcnMlGuSOykE=; b=Ityty5mlUZpC53wbZeAwfDy6Xphe0YXQUo6fq+kjV5SoM333uFw/AcRzlKVmWidB37hAt2 hDCeCxwiyaARsbFux3TzsMB5zPpKyzYmc9ATEHx+k72E8PFIH74OGN7ptoXILM9/Jg9Hsp XBRo3Vd8udwA/Q8bCsl4flrYUiAi9uY= X-MC-Unique: zM0KANFsOiiop3MGo4DWFg-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=+yjBO8iHay02ZD3KnHa0RlYl6K1YM1XyiIX+fSk0A8A=; b=r0SwBihdslYvkbDlpU+p4fp+VXpVvEZR7Jc2bpT4MQephE1p4sLrxyJNpyquUZXOhJ 63TCxk6IvUEG31TH/EwI0FDE2eksOQwaq05PF0/+mmqgeR0q5RYaOS6+vs7fshfEnlRf C5QA5oTFCdCZ0g+XXY2JjPISocLo9S0RfcbRcO4HKeBPbFmonoGXGYkoqtZxy3SkWLDz p/ykXNV46Gy6mxrN9fnkPpb/UjUd5SQUPxznlOl8PdrTMw8XpQsiUTOXkhvaMdeccKs2 fbjckUa/vun/iZWDB5T8P1q1ch4DUPse7ZMyXc+u3/iczZNwumBFRP9RnenRc7lXkj0P wCjQ== X-Gm-Message-State: ANhLgQ2QSmtXQ/flyC9NekMegiYaqgYXwDNl/vMJlYHe6FMNzWaUQRwx rTr1ZCNeVk9PRRPC7w4GU0y2GvlHffGBTJVJmyJkxe7gIoGG9aDPYO0NTY/l5bPlxEFf1zJWukC bl01lNyO9z7wLv6Y= X-Received: by 2002:a5d:68cc:: with SMTP id p12mr18324421wrw.375.1584125187986; Fri, 13 Mar 2020 11:46:27 -0700 (PDT) X-Google-Smtp-Source: ADFU+vunsX9isje9PNyybXJw8I2eLajg+PDfqu0SFFxSDQEjB5qaLi2j5/3jA9aLNFyiX4WAC9n9kw== X-Received: by 2002:a5d:68cc:: with SMTP id p12mr18324400wrw.375.1584125187743; Fri, 13 Mar 2020 11:46:27 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 4/9] hw/core/qdev-properties: Export enum-related functions Date: Fri, 13 Mar 2020 19:46:02 +0100 Message-Id: <20200313184607.11792-5-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200313184607.11792-1-philmd@redhat.com> References: <20200313184607.11792-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 , Markus Armbruster , Laurent Vivier , Michael Roth , 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. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- 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 ea5b59d5c5..9c383ffa44 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 Tue May 7 14:37:30 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=1584125698; cv=none; d=zohomail.com; s=zohoarc; b=jDEuHDFwnNcucfImyrF2NmS1+q+A/TDUfESDAsZ/UHBQDS5DXfwOgIYt9nMmxpPilXnpDsXKGURGE4P/kJ67bWoXQ1jsPESj6sfqFAGRqEGtUX8UVP/w1TNYKdu9tHJ+pFF52AyJbaSsDX7Ar/zyryFLoZXgUxP+d1teuu9cQfE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584125698; 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=L+odCepFdf+oKmvTAs3N2qnqRhrI1h6ro08GqtUbZKA=; b=M4LIh53zIvUsNRod4Bk9tIt5R+lG3Gg4wRfGChe88bvJQLtJ37mc1tyaYgdISuu7D/u0/5mY3eqITFOxOfR7aabNUOpmgSmnmaq7TXFjGCxOgEiyrfwEOMKUldxZJPleVWXdH8SxiC3Pxu2EBMHgJJFnvazGbWpQOO4rTmsKtUw= 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 1584125698770195.5234131792979; Fri, 13 Mar 2020 11:54:58 -0700 (PDT) Received: from localhost ([::1]:35596 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpST-0005NV-LO for importer@patchew.org; Fri, 13 Mar 2020 14:54:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35479) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpKP-000107-7B for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCpKO-0006VP-5C for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:37 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:38535 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 1jCpKN-0006UB-UZ for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:36 -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-43-h-E9eXkCMxa8wf0nJXRL-g-1; Fri, 13 Mar 2020 14:46:33 -0400 Received: by mail-wr1-f72.google.com with SMTP id v6so4681004wrg.22 for ; Fri, 13 Mar 2020 11:46:33 -0700 (PDT) Received: from x1w.redhat.com (47.red-88-21-205.staticip.rima-tde.net. [88.21.205.47]) by smtp.gmail.com with ESMTPSA id u8sm34255802wrn.69.2020.03.13.11.46.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2020 11:46:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584125195; 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=L+odCepFdf+oKmvTAs3N2qnqRhrI1h6ro08GqtUbZKA=; b=GhEqAWO0/bLmyJTyTvTzkRUegLbWXATcjLuITsxcg6FFuJioiIGE7dZ5l6NqeAYhFw7Nlj xBElYDZrcM4lGDpdZbLecNOePpTfzyiLvpML4gs1n1XC1p5dnS3vAbMpfCXptbW2+9saRE ZCscq5a3tbWFZxPGa2RYcXwtayEwDhw= X-MC-Unique: h-E9eXkCMxa8wf0nJXRL-g-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=xA3+617D9wmcRIrFdm8JishVoWNzKu8Wd1In0oWHLRo=; b=pe1lVg49AqYsDQF0OYHlPkx/naE6OKNC/5AuMrO/2ZhXKYxyiOSQzILNs6S0ftY3J9 E6WuBFiIKUXUtg2Rf2tG7dq2/fjrH3gSBJUHiajOwxZaZ83J+i0dDaBwyZJDKPGeb1Gu /utJpYBmQqqeOThBXTxFqO1IBN5n8sNgfAn02jJKWzkE693+Q1zmAmpqg856eHq3vCKi u0gS8373QT4MpcKCSSds6hDXJ0eEFfgXYL6cJd00EqGDZxOLULyPOCmvyjUhwFz1stV0 JmR+NydArj+b/ZV598CR19w5bm+IA1dvmLJC8zl5Qx/vf8GLaqZvVXM/3G43fY+MZoj+ CmlA== X-Gm-Message-State: ANhLgQ3yXJL48++6ljvEWWZ4rabqJphfT6XlWAaNrKIFAj51MI1DPCby ZqJ+U8dtpwN2t9Rgbyz/frBB99wAgLpXDhfQcBvEuEVJjZN0vvUEnHIA5ZhYB15s6cOmmC6phnX KBOp/Qn6K9/+tEqU= X-Received: by 2002:adf:e3cc:: with SMTP id k12mr15163718wrm.266.1584125192673; Fri, 13 Mar 2020 11:46:32 -0700 (PDT) X-Google-Smtp-Source: ADFU+vv7Z0lzfYlF1vs1Lz7g7NclFsuaD+xFkjgyU5AXEQD3hHaG5QK7fUjcVcTEvxd0G3p+sZw/Zg== X-Received: by 2002:adf:e3cc:: with SMTP id k12mr15163698wrm.266.1584125192517; Fri, 13 Mar 2020 11:46:32 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 5/9] hw/core/qdev-properties: Export qdev_prop_enum Date: Fri, 13 Mar 2020 19:46:03 +0100 Message-Id: <20200313184607.11792-6-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200313184607.11792-1-philmd@redhat.com> References: <20200313184607.11792-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 , Markus Armbruster , Laurent Vivier , Michael Roth , 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" Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- 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 9c383ffa44..5912c394d4 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 Tue May 7 14:37:30 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=1584126041; cv=none; d=zohomail.com; s=zohoarc; b=O1gL1DZIur9tjfnP/9zNtmEbwJL5t1BBv/XDihwgkFBm0rpQaUTRWQTaDMFEqdA1hohMN+unxpNgKJKbIR7H3wkwGt8BA8O1Bl2UTB8hh2/7QnytUqV36yVkRCkfUI7VhHXIs3AvpEen7qsZIe/Fg/DlVIMorR8VLUQAVsvRzfA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584126041; 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=hAYLPxHUnOlrNHYHvYLYzD4/J8jjhxAfYHPGN6DyHN4=; b=Ds8MLkR9evIeQLHfVdTb1gYKv2DsSbgc4EUX69q/4VLJliY8LmFuLhdLmsXM5QplC1JjrFFduOsto29nTiaebjyVnOfCzq9AeaQbKtjQOqeg5awFd9be1RFGyMVckyXcbl4p22eRH253LaAgfW5cagiaqMeYQjN2x9jEqmwLB8o= 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 1584126041585946.4912777572176; Fri, 13 Mar 2020 12:00:41 -0700 (PDT) Received: from localhost ([::1]:35704 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpY0-0008O1-9K for importer@patchew.org; Fri, 13 Mar 2020 15:00:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35576) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpKU-0001CT-JU for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCpKT-0006fA-6Z for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:42 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:31965 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 1jCpKS-0006eu-Vk for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:41 -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-414-JPcsCRNhMAKcmy6HWXKH8Q-1; Fri, 13 Mar 2020 14:46:38 -0400 Received: by mail-wr1-f71.google.com with SMTP id n11so4235561wrs.13 for ; Fri, 13 Mar 2020 11:46:38 -0700 (PDT) Received: from x1w.redhat.com (47.red-88-21-205.staticip.rima-tde.net. [88.21.205.47]) by smtp.gmail.com with ESMTPSA id g5sm14216255wrr.57.2020.03.13.11.46.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2020 11:46:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584125200; 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=hAYLPxHUnOlrNHYHvYLYzD4/J8jjhxAfYHPGN6DyHN4=; b=JcIYNhCcyFjsFcU5roOX6w/r0bSgcdsQNsIGn2UK/0P4LNGIrYRSM94B9lOnP1T4jG4oXY H7cnqz5tTeu/mFSB5ECAWxE1wHr9FI6bN3mDCUsE4aknhUrHe1mvXWUQOCHUszJ6eN3+GL HkCpc5Fibljs3xeolhq2/UbB1lLTTSI= X-MC-Unique: JPcsCRNhMAKcmy6HWXKH8Q-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=cIXy97ZAaCWGemZtPhQNSpEKiIqxtcSXAi/QC+TSqM0=; b=S9aTgjH4PIrDy0FxlSuwImIB0Zw223gqRkyJOMJfZ3WxI7AO9DsW6h8rjZmAUhXgxI xXsfyva5XrRP6H9sDksuYYvp5Z8MgK4FpOUFERv/mv4zzanOMeFZd5NOOJUMpd+B2jb2 /FCwS1I+qqx7hR+EqVQNilOTt+kxWUGzRTQigsX+Z6iGw03P2NPiY2Hj809IaTvGyq19 3X9P2vRQh1ymhzgxucGY736T716bbURARfatz8XHd0fVTMxVTxjXh3g/aFGZqvEW3rN7 l/miMzAC3Frc11hFLolndqfSNroXgj039gj+3VS+i9oocCLqIuXJw5W2MetSTewVQJS6 Du9w== X-Gm-Message-State: ANhLgQ0e6UXDqik30bnUuyLZ+/rHbKxf7dzDmvJTDcsn2Qk/UQzQMQc+ yGtGFhruymxNeoehR+E6pX4kbk8nZrEiqLxpKZjxTo/0mQWJB6yHdqNPbQAe0VdJ91GUv/5az3K AtqgTtfw4+PubFWg= X-Received: by 2002:a1c:f60d:: with SMTP id w13mr12537676wmc.171.1584125197412; Fri, 13 Mar 2020 11:46:37 -0700 (PDT) X-Google-Smtp-Source: ADFU+vtFeKSD2DbvqurrcqPhmXEEwtHORYygoit/XxpGA8biSIa/fimyf7g5cm6vWLLxCKizdMF2KA== X-Received: by 2002:a1c:f60d:: with SMTP id w13mr12537651wmc.171.1584125197155; Fri, 13 Mar 2020 11:46:37 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 6/9] hw/core/qdev-properties: Export some integer-related functions Date: Fri, 13 Mar 2020 19:46:04 +0100 Message-Id: <20200313184607.11792-7-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200313184607.11792-1-philmd@redhat.com> References: <20200313184607.11792-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 , Markus Armbruster , Laurent Vivier , Michael Roth , 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. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- 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 5912c394d4..534fc674db 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 Tue May 7 14:37:30 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=1584125980; cv=none; d=zohomail.com; s=zohoarc; b=EGpJPAqmW5LrTlhY5E3eDZIc3+E0TwG2PXVY3UT+5eiQNO0H1IG2Ixf5Y8dYnatQmAfHebZAeqzHfZA0YqRWOlR3ZGKMXXbBtFTrhcxoBOW6ID45b2jpWx5YzBLyYjz0soX+Xo7V63M207pOM2A75splfAZ8bfo9WFfKF9aUI9Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584125980; 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=J4SQwCbFWUy50P8l7BxwLWnJYW4DO5O+iz10fDkk3+M=; b=diJBDcDhdGNRI/v5V9VZWd/V9f1IiXYlos5XkPMod6ZAaDN9vBcFxdyQGyyk/ggZi3NwdaCOjLIBQeI2Z6nwyR25PtAfRjVMQCMJVBqlWEhoX1JNwLzaWtykQ3enmvT7SR5pFOxPo8EWKbnXcR1RUtEkFj9KKParRvLcQSFtHDs= 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 1584125980673325.3573410834458; Fri, 13 Mar 2020 11:59:40 -0700 (PDT) Received: from localhost ([::1]:35688 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpX1-0007U9-Hn for importer@patchew.org; Fri, 13 Mar 2020 14:59:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35709) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpKc-0001Tz-V3 for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCpKY-0006to-TJ for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:50 -0400 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:60322 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 1jCpKY-0006sA-Ly for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:46 -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-268-2dBxM7HkOR-GIrWjGa1rjw-1; Fri, 13 Mar 2020 14:46:44 -0400 Received: by mail-wr1-f69.google.com with SMTP id p5so4684231wrj.17 for ; Fri, 13 Mar 2020 11:46:44 -0700 (PDT) Received: from x1w.redhat.com (47.red-88-21-205.staticip.rima-tde.net. [88.21.205.47]) by smtp.gmail.com with ESMTPSA id v15sm14680126wrm.32.2020.03.13.11.46.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2020 11:46:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584125206; 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=J4SQwCbFWUy50P8l7BxwLWnJYW4DO5O+iz10fDkk3+M=; b=MTzECvmonHpeqDvbzk1I4N57Mwk843j78sddsb4mwH68hKQ4MRQywBAs3eS2gBxZV1uNoT G5EoNzLT8OC0KxfvpSoA3+5wBAlnH2tlIWAPZUEUekhkWN+cA4w/dy1sPYZ1OHeoQqbLEB LilhE1sWKCP53PhZxXHQTA5gOe3mpGk= X-MC-Unique: 2dBxM7HkOR-GIrWjGa1rjw-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=vnd4FALpLmZJRwlR3ZCkvqTCWgLQJadL3Do3+SkONxU=; b=Of+X0vHXvRF22G/w9nbb22h9YMmhVuSf5KL/fwy9HyxKolNp/ym9XN1scEKJBxBrdy li+20aSLWSWOLEvFcLo7DHSpMSSAqctEvRRVaGYlvPRtq9Kr4WJTUoJ+7mq2qIguP3Vo Ct/T9d9HIVgHu9+oCCLo+BbAvO+Z/23Bn4KHGlS6Mk4kewLbyi1YJMZEYI+X7b3Ctzx2 WLO4x/RSyUiM6MgDmFCQQ7zY2/4Bs6lZagClv36ePLWPOJJSKCWbDpRhGyH9yRW38qFo TA9YcV5rEFtnMqxH6XZEQw1+vnV0jW4EtTqiOMQM58FWq6Bal2n4iQkMW+oGoz/dx7p8 mJug== X-Gm-Message-State: ANhLgQ0xZqMMWDwaXbKfp+S1vsTzFNOfUrwQGRVU/SpfFKdcvB8FTAfh 5tmpo6LubhZ8gIlC5buS+Mz5cc7p4AekkJq1WTMrYwrY3xxF7ETnVa1RFj78B0gZqbRPsOcze1p tcreCKvj8bpueApE= X-Received: by 2002:adf:f652:: with SMTP id x18mr18892209wrp.299.1584125202420; Fri, 13 Mar 2020 11:46:42 -0700 (PDT) X-Google-Smtp-Source: ADFU+vs4l4M1XvjP9mmFEV8EqovZ4vbWR25DaqhTlJV63J+BhTZG5Vp/OuD3KW5G/n/xEsdBrZQWOw== X-Received: by 2002:adf:f652:: with SMTP id x18mr18892153wrp.299.1584125201751; Fri, 13 Mar 2020 11:46:41 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 7/9] hw/core/qdev-properties: Extract system-mode specific properties Date: Fri, 13 Mar 2020 19:46:05 +0100 Message-Id: <20200313184607.11792-8-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200313184607.11792-1-philmd@redhat.com> References: <20200313184607.11792-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 , Markus Armbruster , Laurent Vivier , Michael Roth , 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. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- 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..4fbb008544 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 int 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 || val > 0xffff || e =3D=3D p) { + goto inval; + } + if (*e !=3D ':') { + goto inval; + } + bus =3D val; + + p =3D (char *)e + 1; + if (qemu_strtoul(p, &e, 16, &val) < 0 || val > 0x1f || e =3D=3D p) { + 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 || val > 0x1f || e =3D=3D p)= { + goto inval; + } + } + slot =3D val; + + if (*e !=3D '.') { + goto inval; + } + p =3D (char *)e + 1; + if (qemu_strtoul(p, &e, 10, &val) < 0 || val > 7 || e =3D=3D p) { + goto inval; + } + func =3D val; + + if (bus > 0xff) { + 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 534fc674db..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 int 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 || val > 0xffff || e =3D=3D p) { - goto inval; - } - if (*e !=3D ':') { - goto inval; - } - bus =3D val; - - p =3D (char *)e + 1; - if (qemu_strtoul(p, &e, 16, &val) < 0 || val > 0x1f || e =3D=3D p) { - 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 || val > 0x1f || e =3D=3D p)= { - goto inval; - } - } - slot =3D val; - - if (*e !=3D '.') { - goto inval; - } - p =3D (char *)e + 1; - if (qemu_strtoul(p, &e, 10, &val) < 0 || val > 7 || e =3D=3D p) { - goto inval; - } - func =3D val; - - if (bus > 0xff) { - 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 Tue May 7 14:37:30 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=1584125890; cv=none; d=zohomail.com; s=zohoarc; b=FOhAhgSkKwH/ibeQT8OR5nuKCK5AWjwplazf0KXJD+pdFJRnaK/8Bx3rCsRRzlH6iRpkHbG4EZvWjrRESghopUNwmQj3LBcm4yvf4C2/3xTBeCdUyCadm0E/4DE3ImovwpMo+kh2elogQBPOKpDdjzLE2YegVU1VVo5KIhA4Iq8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584125890; 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=qp7vKpOv2W7tIk36eqDbxgbGQUwh1AA9h75Fp+jTf+g=; b=Q24rHoYBZY3u0th2JVbQqxkzPy7jg2MfS8M77T5+KZQaj9UfXdzc7EuiPAV2QMoYW0YTpe3AioV3iAKrNdxLtBSlqnFqj44IOIGTJ0fp3IsR7JVigJQlivYiPoClyuLX0sa9Zu76SJkr33xcauL3TUHLK568MGKSAJC56xIPbo8= 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 1584125890748490.2627557789207; Fri, 13 Mar 2020 11:58:10 -0700 (PDT) Received: from localhost ([::1]:35670 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpVZ-0003xG-OS for importer@patchew.org; Fri, 13 Mar 2020 14:58:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35721) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpKd-0001Va-CR for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCpKc-00071z-B0 for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:51 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:27385 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 1jCpKc-00071I-6k for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:50 -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-423-tXbpwCjMM6iwdjjSyoMMow-1; Fri, 13 Mar 2020 14:46:48 -0400 Received: by mail-wr1-f72.google.com with SMTP id u12so2283269wrw.10 for ; Fri, 13 Mar 2020 11:46:48 -0700 (PDT) Received: from x1w.redhat.com (47.red-88-21-205.staticip.rima-tde.net. [88.21.205.47]) by smtp.gmail.com with ESMTPSA id d21sm901937wrb.51.2020.03.13.11.46.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2020 11:46:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584125209; 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=qp7vKpOv2W7tIk36eqDbxgbGQUwh1AA9h75Fp+jTf+g=; b=CBmDUPlc2LUnVPpAK5T2de+A+2CV0kPmNc6yNf/FoCdqTEoTjamAlLhH0bJ5CHNutsg/4l 3AC6N6e3nPh0IY2HCi6AXmFZSq5DZq4xek2Mr2seFfPLEuM7fqS0wY785xHOHPk3D1ldx+ xicfATmHl1S7ON6wcNBCgU/fcipUM3o= X-MC-Unique: tXbpwCjMM6iwdjjSyoMMow-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=3a+Tnm1TZFFOSQQDhmf8V5bigxeVUKZlbcJluEprtLU=; b=gYwQElMx1vMo6ceeJ6jpNnyIumFHq7iBybGjQuoxOpcZ5TxJK6of9mFI37AF/w3Rg4 ficp2ymD9CtH6ZjFYXL3/qq2dZxQpN3AA1YtPmnix2f7h+XEf9qqgeVWFp2iNZ0GGRSb vTPV1BNeobOw//x3YCJTd9jZNS+yWOeg8gIOzKT9qNDxrglm//4P/eTL7MAh8FQxg0vf lSQnib7bIt9RUF2lLtpj6R7ZCsGRwzlhxmywXItY5jnrOTwKyt1Uiy6GVevZ5sdS6gNO Gz41q3rLPzJt0QdDssMDvO20J74YAnMmEew/XFZ8p/9wt5G0qgeWNBeAMO14kWqVeWE3 PD9w== X-Gm-Message-State: ANhLgQ3bYGl7w7WDccyWr5UyGS2lmswjuqSX56YhMLbMD4JVO0x4pZAR ThIGMNMkYO2UMY2G1glcbfCsZjLwYtRwqdZV+4i5aeTYmFu2Ot7rkUsaoQ23sJGd78ua6fd+Uuw 54Nvqu2pCWbaV92o= X-Received: by 2002:a1c:418b:: with SMTP id o133mr12554787wma.165.1584125206768; Fri, 13 Mar 2020 11:46:46 -0700 (PDT) X-Google-Smtp-Source: ADFU+vsTWLso2AUAV0UjexAIg/0GX7zlm2N8Xuan3B9/zbfe9muByFs7C6b/pWpzDwJ/vc1St8TMwg== X-Received: by 2002:a1c:418b:: with SMTP id o133mr12554767wma.165.1584125206561; Fri, 13 Mar 2020 11:46:46 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 8/9] hw/core: Add qdev stub for user-mode Date: Fri, 13 Mar 2020 19:46:06 +0100 Message-Id: <20200313184607.11792-9-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200313184607.11792-1-philmd@redhat.com> References: <20200313184607.11792-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 , Markus Armbruster , Laurent Vivier , Michael Roth , 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. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/core/qdev-stubs.c | 20 ++++++++++++++++++++ hw/core/Makefile.objs | 1 + 2 files changed, 21 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..89bf247173 100644 --- a/hw/core/Makefile.objs +++ b/hw/core/Makefile.objs @@ -8,6 +8,7 @@ common-obj-y +=3D vmstate-if.o # irq.o needed for qdev GPIO handling: common-obj-y +=3D irq.o =20 +common-obj-$(call lnot,$(CONFIG_SOFTMMU)) +=3D qdev-stubs.o common-obj-$(CONFIG_SOFTMMU) +=3D reset.o common-obj-$(CONFIG_SOFTMMU) +=3D qdev-fw.o common-obj-$(CONFIG_SOFTMMU) +=3D fw-path-provider.o --=20 2.21.1 From nobody Tue May 7 14:37:30 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=1584125361; cv=none; d=zohomail.com; s=zohoarc; b=Vz+p7mglskXlRAdqUA7fBMBos4uTB9jNETRcPav4PsnbyQ+/stbI9A/o27Ic4yhhGJcXqdBbfNN42Pm6ZUJfsBzuib0V6OJlM7cpPp4Cxdt1lrzeV2HyNLHXonR5XkH4//qp07u3Q5fQeQXtHn/GX87F7asBB6D6NivUstykr6g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584125361; 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=ZjDGFX22CortiZUqlge2N0NxEGUXl4+FNuK6/r9znhY=; b=HOaY5AFnB0+S8YU/9CxRVPpdejXk6gLWbK59qPm5a7Pq7sTXnHVEQ1IY9XVM01RAWR+DbSWs0zLB4zVktdxcHTO9ZvrbZpg/erlmE5ZJuW+vjF3qb4S75a1WqZS6l6i7JA4PUn+ox0MHIzKioADS2YBLH0UfuAzxxJpZJJXnIh8= 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 1584125361086787.8919251459405; Fri, 13 Mar 2020 11:49:21 -0700 (PDT) Received: from localhost ([::1]:35486 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpN1-0004GD-Ru for importer@patchew.org; Fri, 13 Mar 2020 14:49:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35810) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpKi-0001iH-3K for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCpKg-0007BW-VA for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:56 -0400 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:40112 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 1jCpKg-0007B5-Qs for qemu-devel@nongnu.org; Fri, 13 Mar 2020 14:46:54 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-493-WDZY-YydMTSqCqY67emnkw-1; Fri, 13 Mar 2020 14:46:52 -0400 Received: by mail-wm1-f69.google.com with SMTP id n25so3306703wmi.5 for ; Fri, 13 Mar 2020 11:46:52 -0700 (PDT) Received: from x1w.redhat.com (47.red-88-21-205.staticip.rima-tde.net. [88.21.205.47]) by smtp.gmail.com with ESMTPSA id b6sm24080755wrv.43.2020.03.13.11.46.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2020 11:46:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584125214; 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=ZjDGFX22CortiZUqlge2N0NxEGUXl4+FNuK6/r9znhY=; b=aeTz4+kxCsOYft0A58Wz54U86sM+vqZaUnV/tKUEznAUzT0DlkHUmSZ/5S38YHSoZGijKb rVT2fleBEou/e+TRd5Hu5i50bLgpguAigNqGpAtCedGYwSnoXSHHbLIxW+jnH666WlKH5b uLITzMYiNfmbzKRKQkVUHXp9XHJEWn4= X-MC-Unique: WDZY-YydMTSqCqY67emnkw-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=MzlEjNxFW1B+Pna0KCr1+SoRrDU73//S4ZgYAyodi0I=; b=j3ycLo/92Uqbe5R4KabAZqbzMF5a2R3MQmABQkVQZv9lisVnBL2vI3ZJUfA8P92Vj2 6CEnLIx3YevA7SerFcRNisxXo0r+QqQxTn4m16oCiKDDHZeLtR5Sew0bIZ2k9dnGqoX0 1g2s//EAqBv1MlIXv/VO/nLxfOX4StUv3na8s/SnLuDjai+sPhttJNq0rNRt2uzkOww6 AzQgTVDTT4cPQpoKtGcOk/oI9Q5UQj+qY2sUvJx90wPFlfYetYcTXyil0kZQecyByk5j 6lJWHTMw4ZBkxTsC9zXilB5p1jBJV+RjYY+Fgp3l1BrMcOrdvpKnGhsDDNrdD1FeQdlL Z7YQ== X-Gm-Message-State: ANhLgQ0WrCJlTjao184Wa/tyQav0a/fmkY+xh4otJS1aFx/NNWQLQIst I7GB77+ehHIyCxPnIWiHGJwsTv9xiUI8eN0sg1pu91g6lKKlCYTrhxpT6rm4Sdatrry+rkslCs6 iM9MOTnMPgY7ZGeM= X-Received: by 2002:a05:600c:414a:: with SMTP id h10mr12617592wmm.53.1584125211441; Fri, 13 Mar 2020 11:46:51 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvcIC8/s7jd8O3tECp2CeXvZNxiE2MgUCHjeZn3Z52bR9hHkvOIdNxLCv9hZxa0j6svSZO9Wg== X-Received: by 2002:a05:600c:414a:: with SMTP id h10mr12617573wmm.53.1584125211201; Fri, 13 Mar 2020 11:46:51 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 9/9] qapi: Restrict code generated for user-mode Date: Fri, 13 Mar 2020 19:46:07 +0100 Message-Id: <20200313184607.11792-10-philmd@redhat.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200313184607.11792-1-philmd@redhat.com> References: <20200313184607.11792-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 , Markus Armbruster , Laurent Vivier , Michael Roth , 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 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- 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