From patchwork Thu Jan 23 13:49:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348697 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2252392A for ; Thu, 23 Jan 2020 16:41:27 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EC6EC24686 for ; Thu, 23 Jan 2020 16:41:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="WpUMntLo" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EC6EC24686 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60638 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufXo-0006Ag-Do for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:41:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52152) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucst-0007Pu-VM for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucss-0006YL-BT for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:50:59 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:40508 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 1iucss-0006Y2-8o for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:50:58 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787457; 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=14n6VRBWOZlDVw4rFY3ZJnLF6pQMjiehTsdclrZxErI=; b=WpUMntLozKj18dNbK2hLHeawbiRwDZVDc8VjpUS3UZjiB4zu1CRgWWwelCpeKFqK3FtMgl i8vU5EYYaEfVILwUj3NzaRhj5JMHGQ0NTXhivLzcHD4HUdSD3sYsjjD3PZtSCSYQD0lvtI v3ppckxKJOuiBfWj6vkEGxmvq+HGROY= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-13-xW7f7jF0OKehRdiXLQZJ7g-1; Thu, 23 Jan 2020 08:50:55 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4489B18C43C3; Thu, 23 Jan 2020 13:50:54 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id E311585787; Thu, 23 Jan 2020 13:50:52 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 01/59] cpu: Introduce cpu_class_set_parent_reset() Date: Thu, 23 Jan 2020 14:49:51 +0100 Message-Id: <1579787449-27599-2-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: xW7f7jF0OKehRdiXLQZJ7g-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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: Greg Kurz Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Greg Kurz Similarly to what we already do with qdev, use a helper to overload the reset QOM methods of the parent in children classes, for clarity. Signed-off-by: Greg Kurz Reviewed-by: David Gibson Reviewed-by: Alistair Francis Reviewed-by: Cornelia Huck Acked-by: David Hildenbrand Reviewed-by: Philippe Mathieu-Daudé Message-Id: <157650847239.354886.2782881118916307978.stgit@bahia.lan> Signed-off-by: Paolo Bonzini --- hw/core/cpu.c | 8 ++++++++ include/hw/core/cpu.h | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/hw/core/cpu.c b/hw/core/cpu.c index db1a03c..fde5fd3 100644 --- a/hw/core/cpu.c +++ b/hw/core/cpu.c @@ -239,6 +239,14 @@ void cpu_dump_statistics(CPUState *cpu, int flags) } } +void cpu_class_set_parent_reset(CPUClass *cc, + void (*child_reset)(CPUState *cpu), + void (**parent_reset)(CPUState *cpu)) +{ + *parent_reset = cc->reset; + cc->reset = child_reset; +} + void cpu_reset(CPUState *cpu) { CPUClass *klass = CPU_GET_CLASS(cpu); diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h index 77c6f05..73e9a86 100644 --- a/include/hw/core/cpu.h +++ b/include/hw/core/cpu.h @@ -1135,6 +1135,10 @@ void cpu_exec_unrealizefn(CPUState *cpu); */ bool target_words_bigendian(void); +void cpu_class_set_parent_reset(CPUClass *cc, + void (*child_reset)(CPUState *cpu), + void (**parent_reset)(CPUState *cpu)); + #ifdef NEED_CPU_H #ifdef CONFIG_SOFTMMU From patchwork Thu Jan 23 13:49:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348653 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 487976C1 for ; Thu, 23 Jan 2020 16:24:52 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0D50821835 for ; Thu, 23 Jan 2020 16:24:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="FyDAzrhV" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0D50821835 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60344 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufHm-0001Nb-LQ for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:24:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52183) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucsv-0007Ta-Rw for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucst-0006az-QN for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:01 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:58024 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 1iucst-0006Zz-Mu for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:50:59 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787459; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=v5xgf8npNPdcgNy49WhRLDJw3NarywnPN43TdsMlJ2k=; b=FyDAzrhVfwAZH0BbrrSjy9k5HcMuQdQbXrAguG5znMQO9VUh9TqDvRA65izi4cmZT3Nq6e OqtC8EocYdjI/EMvJLvbyTv6/Rje9XHlciDAV4Za2C3JCyJcJAE9+3QHGSXCrp7HHWQl3L SsD1Fu9ujWXSPZm5HEhHMIeFIMMpkhE= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-8-nTAogNC9MkKY_gITRWicqw-1; Thu, 23 Jan 2020 08:50:56 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B1DC02F2F; Thu, 23 Jan 2020 13:50:55 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id BE7A385780; Thu, 23 Jan 2020 13:50:54 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 02/59] cpu: Use cpu_class_set_parent_reset() Date: Thu, 23 Jan 2020 14:49:52 +0100 Message-Id: <1579787449-27599-3-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: nTAogNC9MkKY_gITRWicqw-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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: Greg Kurz Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Greg Kurz Convert all targets to use cpu_class_set_parent_reset() with the following coccinelle script: @@ type CPUParentClass; CPUParentClass *pcc; CPUClass *cc; identifier parent_fn; identifier child_fn; @@ +cpu_class_set_parent_reset(cc, child_fn, &pcc->parent_fn); -pcc->parent_fn = cc->reset; ... -cc->reset = child_fn; Signed-off-by: Greg Kurz Acked-by: David Gibson Reviewed-by: Alistair Francis Reviewed-by: Cornelia Huck Acked-by: David Hildenbrand Message-Id: <157650847817.354886.7047137349018460524.stgit@bahia.lan> Signed-off-by: Paolo Bonzini --- target/arm/cpu.c | 3 +-- target/cris/cpu.c | 3 +-- target/i386/cpu.c | 3 +-- target/lm32/cpu.c | 3 +-- target/m68k/cpu.c | 3 +-- target/microblaze/cpu.c | 3 +-- target/mips/cpu.c | 3 +-- target/moxie/cpu.c | 3 +-- target/nios2/cpu.c | 3 +-- target/openrisc/cpu.c | 3 +-- target/ppc/translate_init.inc.c | 3 +-- target/riscv/cpu.c | 3 +-- target/s390x/cpu.c | 3 +-- target/sh4/cpu.c | 3 +-- target/sparc/cpu.c | 3 +-- target/tilegx/cpu.c | 3 +-- target/tricore/cpu.c | 3 +-- target/xtensa/cpu.c | 3 +-- 18 files changed, 18 insertions(+), 36 deletions(-) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index d62fd5f..411faaa 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -2707,8 +2707,7 @@ static void arm_cpu_class_init(ObjectClass *oc, void *data) &acc->parent_realize); dc->props = arm_cpu_properties; - acc->parent_reset = cc->reset; - cc->reset = arm_cpu_reset; + cpu_class_set_parent_reset(cc, arm_cpu_reset, &acc->parent_reset); cc->class_by_name = arm_cpu_class_by_name; cc->has_work = arm_cpu_has_work; diff --git a/target/cris/cpu.c b/target/cris/cpu.c index 6a857f5..17c6712 100644 --- a/target/cris/cpu.c +++ b/target/cris/cpu.c @@ -264,8 +264,7 @@ static void cris_cpu_class_init(ObjectClass *oc, void *data) device_class_set_parent_realize(dc, cris_cpu_realizefn, &ccc->parent_realize); - ccc->parent_reset = cc->reset; - cc->reset = cris_cpu_reset; + cpu_class_set_parent_reset(cc, cris_cpu_reset, &ccc->parent_reset); cc->class_by_name = cris_cpu_class_by_name; cc->has_work = cris_cpu_has_work; diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 41f28ce..78bdb7c 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -7149,8 +7149,7 @@ static void x86_cpu_common_class_init(ObjectClass *oc, void *data) &xcc->parent_unrealize); dc->props = x86_cpu_properties; - xcc->parent_reset = cc->reset; - cc->reset = x86_cpu_reset; + cpu_class_set_parent_reset(cc, x86_cpu_reset, &xcc->parent_reset); cc->reset_dump_flags = CPU_DUMP_FPU | CPU_DUMP_CCOP; cc->class_by_name = x86_cpu_class_by_name; diff --git a/target/lm32/cpu.c b/target/lm32/cpu.c index b35537d..687bf35 100644 --- a/target/lm32/cpu.c +++ b/target/lm32/cpu.c @@ -218,8 +218,7 @@ static void lm32_cpu_class_init(ObjectClass *oc, void *data) device_class_set_parent_realize(dc, lm32_cpu_realizefn, &lcc->parent_realize); - lcc->parent_reset = cc->reset; - cc->reset = lm32_cpu_reset; + cpu_class_set_parent_reset(cc, lm32_cpu_reset, &lcc->parent_reset); cc->class_by_name = lm32_cpu_class_by_name; cc->has_work = lm32_cpu_has_work; diff --git a/target/m68k/cpu.c b/target/m68k/cpu.c index f276335..f0653cd 100644 --- a/target/m68k/cpu.c +++ b/target/m68k/cpu.c @@ -273,8 +273,7 @@ static void m68k_cpu_class_init(ObjectClass *c, void *data) device_class_set_parent_realize(dc, m68k_cpu_realizefn, &mcc->parent_realize); - mcc->parent_reset = cc->reset; - cc->reset = m68k_cpu_reset; + cpu_class_set_parent_reset(cc, m68k_cpu_reset, &mcc->parent_reset); cc->class_by_name = m68k_cpu_class_by_name; cc->has_work = m68k_cpu_has_work; diff --git a/target/microblaze/cpu.c b/target/microblaze/cpu.c index 9cfd744..71d88f6 100644 --- a/target/microblaze/cpu.c +++ b/target/microblaze/cpu.c @@ -292,8 +292,7 @@ static void mb_cpu_class_init(ObjectClass *oc, void *data) device_class_set_parent_realize(dc, mb_cpu_realizefn, &mcc->parent_realize); - mcc->parent_reset = cc->reset; - cc->reset = mb_cpu_reset; + cpu_class_set_parent_reset(cc, mb_cpu_reset, &mcc->parent_reset); cc->class_by_name = mb_cpu_class_by_name; cc->has_work = mb_cpu_has_work; diff --git a/target/mips/cpu.c b/target/mips/cpu.c index bbcf7ca..6cd6b96 100644 --- a/target/mips/cpu.c +++ b/target/mips/cpu.c @@ -189,8 +189,7 @@ static void mips_cpu_class_init(ObjectClass *c, void *data) device_class_set_parent_realize(dc, mips_cpu_realizefn, &mcc->parent_realize); - mcc->parent_reset = cc->reset; - cc->reset = mips_cpu_reset; + cpu_class_set_parent_reset(cc, mips_cpu_reset, &mcc->parent_reset); cc->class_by_name = mips_cpu_class_by_name; cc->has_work = mips_cpu_has_work; diff --git a/target/moxie/cpu.c b/target/moxie/cpu.c index 48996d0..cf47bc7 100644 --- a/target/moxie/cpu.c +++ b/target/moxie/cpu.c @@ -101,8 +101,7 @@ static void moxie_cpu_class_init(ObjectClass *oc, void *data) device_class_set_parent_realize(dc, moxie_cpu_realizefn, &mcc->parent_realize); - mcc->parent_reset = cc->reset; - cc->reset = moxie_cpu_reset; + cpu_class_set_parent_reset(cc, moxie_cpu_reset, &mcc->parent_reset); cc->class_by_name = moxie_cpu_class_by_name; diff --git a/target/nios2/cpu.c b/target/nios2/cpu.c index ca9c7a6..bbdbc0c 100644 --- a/target/nios2/cpu.c +++ b/target/nios2/cpu.c @@ -188,8 +188,7 @@ static void nios2_cpu_class_init(ObjectClass *oc, void *data) device_class_set_parent_realize(dc, nios2_cpu_realizefn, &ncc->parent_realize); dc->props = nios2_properties; - ncc->parent_reset = cc->reset; - cc->reset = nios2_cpu_reset; + cpu_class_set_parent_reset(cc, nios2_cpu_reset, &ncc->parent_reset); cc->class_by_name = nios2_cpu_class_by_name; cc->has_work = nios2_cpu_has_work; diff --git a/target/openrisc/cpu.c b/target/openrisc/cpu.c index 506aec6..5cd04da 100644 --- a/target/openrisc/cpu.c +++ b/target/openrisc/cpu.c @@ -150,8 +150,7 @@ static void openrisc_cpu_class_init(ObjectClass *oc, void *data) device_class_set_parent_realize(dc, openrisc_cpu_realizefn, &occ->parent_realize); - occ->parent_reset = cc->reset; - cc->reset = openrisc_cpu_reset; + cpu_class_set_parent_reset(cc, openrisc_cpu_reset, &occ->parent_reset); cc->class_by_name = openrisc_cpu_class_by_name; cc->has_work = openrisc_cpu_has_work; diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c index d33d65d..5ffd07c 100644 --- a/target/ppc/translate_init.inc.c +++ b/target/ppc/translate_init.inc.c @@ -10873,8 +10873,7 @@ static void ppc_cpu_class_init(ObjectClass *oc, void *data) pcc->interrupts_big_endian = ppc_cpu_interrupts_big_endian_always; dc->props = ppc_cpu_properties; - pcc->parent_reset = cc->reset; - cc->reset = ppc_cpu_reset; + cpu_class_set_parent_reset(cc, ppc_cpu_reset, &pcc->parent_reset); cc->class_by_name = ppc_cpu_class_by_name; pcc->parent_parse_features = cc->parse_features; diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index d37861a..d6f1872 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -462,8 +462,7 @@ static void riscv_cpu_class_init(ObjectClass *c, void *data) device_class_set_parent_realize(dc, riscv_cpu_realize, &mcc->parent_realize); - mcc->parent_reset = cc->reset; - cc->reset = riscv_cpu_reset; + cpu_class_set_parent_reset(cc, riscv_cpu_reset, &mcc->parent_reset); cc->class_by_name = riscv_cpu_class_by_name; cc->has_work = riscv_cpu_has_work; diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c index 625daee..ca487f5 100644 --- a/target/s390x/cpu.c +++ b/target/s390x/cpu.c @@ -456,12 +456,11 @@ static void s390_cpu_class_init(ObjectClass *oc, void *data) dc->props = s390x_cpu_properties; dc->user_creatable = true; - scc->parent_reset = cc->reset; + cpu_class_set_parent_reset(cc, s390_cpu_reset_full, &scc->parent_reset); #if !defined(CONFIG_USER_ONLY) scc->load_normal = s390_cpu_load_normal; #endif scc->reset = s390_cpu_reset; - cc->reset = s390_cpu_reset_full; cc->class_by_name = s390_cpu_class_by_name, cc->has_work = s390_cpu_has_work; #ifdef CONFIG_TCG diff --git a/target/sh4/cpu.c b/target/sh4/cpu.c index d0a7707..70c8d81 100644 --- a/target/sh4/cpu.c +++ b/target/sh4/cpu.c @@ -214,8 +214,7 @@ static void superh_cpu_class_init(ObjectClass *oc, void *data) device_class_set_parent_realize(dc, superh_cpu_realizefn, &scc->parent_realize); - scc->parent_reset = cc->reset; - cc->reset = superh_cpu_reset; + cpu_class_set_parent_reset(cc, superh_cpu_reset, &scc->parent_reset); cc->class_by_name = superh_cpu_class_by_name; cc->has_work = superh_cpu_has_work; diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c index bc65929..9c306e5 100644 --- a/target/sparc/cpu.c +++ b/target/sparc/cpu.c @@ -859,8 +859,7 @@ static void sparc_cpu_class_init(ObjectClass *oc, void *data) &scc->parent_realize); dc->props = sparc_cpu_properties; - scc->parent_reset = cc->reset; - cc->reset = sparc_cpu_reset; + cpu_class_set_parent_reset(cc, sparc_cpu_reset, &scc->parent_reset); cc->class_by_name = sparc_cpu_class_by_name; cc->parse_features = sparc_cpu_parse_features; diff --git a/target/tilegx/cpu.c b/target/tilegx/cpu.c index 2b2a7cc..cd422a0 100644 --- a/target/tilegx/cpu.c +++ b/target/tilegx/cpu.c @@ -142,8 +142,7 @@ static void tilegx_cpu_class_init(ObjectClass *oc, void *data) device_class_set_parent_realize(dc, tilegx_cpu_realizefn, &tcc->parent_realize); - tcc->parent_reset = cc->reset; - cc->reset = tilegx_cpu_reset; + cpu_class_set_parent_reset(cc, tilegx_cpu_reset, &tcc->parent_reset); cc->class_by_name = tilegx_cpu_class_by_name; cc->has_work = tilegx_cpu_has_work; diff --git a/target/tricore/cpu.c b/target/tricore/cpu.c index df807c1..85bc9f0 100644 --- a/target/tricore/cpu.c +++ b/target/tricore/cpu.c @@ -153,8 +153,7 @@ static void tricore_cpu_class_init(ObjectClass *c, void *data) device_class_set_parent_realize(dc, tricore_cpu_realizefn, &mcc->parent_realize); - mcc->parent_reset = cc->reset; - cc->reset = tricore_cpu_reset; + cpu_class_set_parent_reset(cc, tricore_cpu_reset, &mcc->parent_reset); cc->class_by_name = tricore_cpu_class_by_name; cc->has_work = tricore_cpu_has_work; diff --git a/target/xtensa/cpu.c b/target/xtensa/cpu.c index c65dcf9..4856aee 100644 --- a/target/xtensa/cpu.c +++ b/target/xtensa/cpu.c @@ -184,8 +184,7 @@ static void xtensa_cpu_class_init(ObjectClass *oc, void *data) device_class_set_parent_realize(dc, xtensa_cpu_realizefn, &xcc->parent_realize); - xcc->parent_reset = cc->reset; - cc->reset = xtensa_cpu_reset; + cpu_class_set_parent_reset(cc, xtensa_cpu_reset, &xcc->parent_reset); cc->class_by_name = xtensa_cpu_class_by_name; cc->has_work = xtensa_cpu_has_work; From patchwork Thu Jan 23 13:49:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348711 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 99B62139A for ; Thu, 23 Jan 2020 16:49:03 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6F45421D7D for ; Thu, 23 Jan 2020 16:49:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="BlbWPgjr" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6F45421D7D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60938 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuffB-0006Kl-63 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:49:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52202) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucsz-0007Yc-5g for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucsx-0006hj-T3 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:04 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:27700 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 1iucsx-0006hZ-Qg for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787463; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ilokD4M6W4KESd/ovh4GTzXkqb+mzMor6iNsQOCbfKU=; b=BlbWPgjrE6h3Spu0c40vPPQzQIRDuosrFnCXbQ9Uq/ctePrVP2iEd2HRVuDh6lPaXep+wK 6N+KCsphBTiztMwKSSsjzwGGt9M+CoJFx7VWfjvKKSrgRj+75zvsn019lrmGUOAg0I/O/+ U9v8E+tMi4fFcWmT570Xj5OB0cXyZKM= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-373-_4OVby09OnCxDcoaqB1-xw-1; Thu, 23 Jan 2020 08:50:59 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 556611800D48; Thu, 23 Jan 2020 13:50:58 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2E0F01CB; Thu, 23 Jan 2020 13:50:55 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 03/59] pvpanic: introduce crashloaded for pvpanic Date: Thu, 23 Jan 2020 14:49:53 +0100 Message-Id: <1579787449-27599-4-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: _4OVby09OnCxDcoaqB1-xw-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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: zhenwei pi Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: zhenwei pi Add bit 1 for pvpanic. This bit means that guest hits a panic, but guest wants to handle error by itself. Typical case: Linux guest runs kdump in panic. It will help us to separate the abnormal reboot from normal operation. Signed-off-by: zhenwei pi Message-Id: <20200114023102.612548-2-pizhenwei@bytedance.com> Signed-off-by: Paolo Bonzini --- docs/specs/pvpanic.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/specs/pvpanic.txt b/docs/specs/pvpanic.txt index c7bbacc..bdea68a 100644 --- a/docs/specs/pvpanic.txt +++ b/docs/specs/pvpanic.txt @@ -16,8 +16,12 @@ pvpanic exposes a single I/O port, by default 0x505. On read, the bits recognized by the device are set. Software should ignore bits it doesn't recognize. On write, the bits not recognized by the device are ignored. Software should set only bits both itself and the device recognize. -Currently, only bit 0 is recognized, setting it indicates a guest panic -has happened. + +Bit Definition +-------------- +bit 0: setting it indicates a guest panic has happened. +bit 1: named crashloaded. setting it indicates a guest panic and run + kexec to handle error by guest itself. ACPI Interface -------------- From patchwork Thu Jan 23 13:49:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348715 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6DE5D92A for ; Thu, 23 Jan 2020 16:52:43 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4392B2077C for ; Thu, 23 Jan 2020 16:52:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="LMuoJDVK" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4392B2077C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:32780 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufij-0001WA-LV for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:52:41 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52238) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuct3-0007dq-5o for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuct2-0006pU-0x for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:09 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:23262 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 1iuct1-0006pF-Up for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787467; 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=sFBdusjTRivI83sKM4ZWIopYtK/Kmoyuru1DkptNNaY=; b=LMuoJDVKWj2uWth4m4IBu3t374QWpaLquuX8G/hes2ggeOwNJeE8dXGRHYEQRTCvGvTOva NxcUQc13wWo9qwRDWy4FH4+tPV9MNgCLzULzKV9GaoWXeQvxRP9ZeFCDoB1VTJ/PhFZH/Q /X9FhdFQmv/3y9KfrvZNeZDkxd0YE1E= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-203-UMrelfzONwm7B1DJ6aXS6w-1; Thu, 23 Jan 2020 08:51:06 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9110C1800D48 for ; Thu, 23 Jan 2020 13:51:03 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 48A751CB; Thu, 23 Jan 2020 13:51:00 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 05/59] qom/object: Display more helpful message when an interface is missing Date: Thu, 23 Jan 2020 14:49:55 +0100 Message-Id: <1579787449-27599-6-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: UMrelfzONwm7B1DJ6aXS6w-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé When adding new devices implementing QOM interfaces, we might forgot to add the Kconfig dependency that pulls the required objects in when building. Since QOM dependencies are resolved at runtime, we don't get any link-time failures, and QEMU aborts while starting: $ qemu ... Segmentation fault (core dumped) (gdb) bt #0 0x00007ff6e96b1e35 in raise () from /lib64/libc.so.6 #1 0x00007ff6e969c895 in abort () from /lib64/libc.so.6 #2 0x00005572bc5051cf in type_initialize (ti=0x5572be6f1200) at qom/object.c:323 #3 0x00005572bc505074 in type_initialize (ti=0x5572be6f1800) at qom/object.c:301 #4 0x00005572bc505074 in type_initialize (ti=0x5572be6e48e0) at qom/object.c:301 #5 0x00005572bc506939 in object_class_by_name (typename=0x5572bc56109a) at qom/object.c:959 #6 0x00005572bc503dd5 in cpu_class_by_name (typename=0x5572bc56109a, cpu_model=0x5572be6d9930) at hw/core/cpu.c:286 Since the caller has access to the qdev parent/interface names, we can simply display them to avoid starting a debugger: $ qemu ... qemu: missing interface 'fancy-if' for object 'fancy-dev' Aborted (core dumped) This commit is similar to e02bdf1cecd2 ("Display more helpful message when an object type is missing"). Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20200118162348.17823-1-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- qom/object.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/qom/object.c b/qom/object.c index 0d971ca..36123fb 100644 --- a/qom/object.c +++ b/qom/object.c @@ -317,6 +317,11 @@ static void type_initialize(TypeImpl *ti) for (i = 0; i < ti->num_interfaces; i++) { TypeImpl *t = type_get_by_name(ti->interfaces[i].typename); + if (!t) { + error_report("missing interface '%s' for object '%s'", + ti->interfaces[i].typename, parent->name); + abort(); + } for (e = ti->class->interfaces; e; e = e->next) { TypeImpl *target_type = OBJECT_CLASS(e->data)->type; From patchwork Thu Jan 23 13:49:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348733 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 71B9713A4 for ; Thu, 23 Jan 2020 16:59:09 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 483BA21D7E for ; Thu, 23 Jan 2020 16:59:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Z9GZvQXA" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 483BA21D7E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:32876 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufox-00008a-U0 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:59:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52252) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuct5-0007fJ-0r for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuct2-0006qi-Sg for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:10 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:21369 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 1iuct2-0006qI-QJ for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787468; 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=E2MlMz4cN9CaACYckxJtaBM6X0v8cyJc+aK+uqDTqvw=; b=Z9GZvQXALPYVeyywn1t7epdA9xEXChs8zyKTbbZTP3W/l9lN81cKicAriR9Zbsd0JNxlBW CTG+YxS5aeVqyq1XtC7EG15E4Lg7rz8DjSP9BlA1ohsCCvzJc8OBafoi2nbgsTiWXMQ5bX /xGaOp4C3Via+l6GEP8jxulSxoNJYJc= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-81-EVTXLLaOPCq7nCvxtYs2Ag-1; Thu, 23 Jan 2020 08:51:07 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 119528017CC for ; Thu, 23 Jan 2020 13:51:05 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0E29085780; Thu, 23 Jan 2020 13:51:03 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 06/59] audio/audio: Add missing fall through comment Date: Thu, 23 Jan 2020 14:49:56 +0100 Message-Id: <1579787449-27599-7-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: EVTXLLaOPCq7nCvxtYs2Ag-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé When building with GCC9 using CFLAG -Wimplicit-fallthrough=2 we get: audio/audio.c: In function ‘audio_pcm_init_info’: audio/audio.c:306:14: error: this statement may fall through [-Werror=implicit-fallthrough=] 306 | sign = 1; | ~~~~~^~~ audio/audio.c:307:5: note: here 307 | case AUDIO_FORMAT_U8: | ^~~~ cc1: all warnings being treated as errors Similarly to e46349414, add the missing fall through comment to hint GCC. Fixes: 2b9cce8c8c Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Aleksandar Markovic Reviewed-by: Gerd Hoffmann Message-Id: <20191218192526.13845-2-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- audio/audio.c | 1 + 1 file changed, 1 insertion(+) diff --git a/audio/audio.c b/audio/audio.c index abea027..f63f397 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -304,6 +304,7 @@ void audio_pcm_init_info (struct audio_pcm_info *info, struct audsettings *as) switch (as->fmt) { case AUDIO_FORMAT_S8: sign = 1; + /* fall through */ case AUDIO_FORMAT_U8: mul = 1; break; From patchwork Thu Jan 23 13:49:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348723 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8A6631580 for ; Thu, 23 Jan 2020 16:56:11 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5BF762077C for ; Thu, 23 Jan 2020 16:56:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="dVa+nPPt" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5BF762077C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:32848 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufm6-0005Py-05 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:56:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52257) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuct5-0007g0-9r for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuct3-0006qz-3d for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:11 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:35320 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 1iuct3-0006qm-1F for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:09 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787468; 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=4lOpQAex6+ed7KVCCMGrJwZB+MBzXKa8ZFG++CEMgy0=; b=dVa+nPPteywISCVHHNjlNm9sd1sfHbiaS9pEhPpakTZZlsAGLhrtXjKeFxifAwTu0FNK4C bKBpX1dAa7uGsKI/uK4QGIkX98kKES6ROqNyLXCycfp+A86KCYLCBdp8evVNjX44iaAxJA SahCEM+/795bQNmrwB3IU7MENzhjPGc= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-163-Zr24jV69O3WX4hGRw8HDGg-1; Thu, 23 Jan 2020 08:51:07 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 878AF100551A for ; Thu, 23 Jan 2020 13:51:06 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 83DBA84DBD; Thu, 23 Jan 2020 13:51:05 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 07/59] hw/display/tcx: Add missing fall through comments Date: Thu, 23 Jan 2020 14:49:57 +0100 Message-Id: <1579787449-27599-8-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: Zr24jV69O3WX4hGRw8HDGg-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé When building with GCC9 using CFLAG -Wimplicit-fallthrough=2 we get: hw/display/tcx.c: In function ‘tcx_dac_writel’: hw/display/tcx.c:453:26: error: this statement may fall through [-Werror=implicit-fallthrough=] 453 | s->dac_index = (s->dac_index + 1) & 0xff; /* Index autoincrement */ | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ hw/display/tcx.c:454:9: note: here 454 | default: | ^~~~~~~ hw/display/tcx.c: In function ‘tcx_dac_readl’: hw/display/tcx.c:412:22: error: this statement may fall through [-Werror=implicit-fallthrough=] 412 | s->dac_index = (s->dac_index + 1) & 0xff; /* Index autoincrement */ | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ hw/display/tcx.c:413:5: note: here 413 | default: | ^~~~~~~ cc1: all warnings being treated as errors Give a hint to GCC by adding the missing fall through comments. Fixes: 55d7bfe22 Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Aleksandar Markovic Reviewed-by: Mark Cave-Ayland Message-Id: <20191218192526.13845-3-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- hw/display/tcx.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/display/tcx.c b/hw/display/tcx.c index 14e829d..abbeb30 100644 --- a/hw/display/tcx.c +++ b/hw/display/tcx.c @@ -410,6 +410,7 @@ static uint64_t tcx_dac_readl(void *opaque, hwaddr addr, case 2: val = s->b[s->dac_index] << 24; s->dac_index = (s->dac_index + 1) & 0xff; /* Index autoincrement */ + /* fall through */ default: s->dac_state = 0; break; @@ -451,6 +452,7 @@ static void tcx_dac_writel(void *opaque, hwaddr addr, uint64_t val, s->b[index] = val >> 24; update_palette_entries(s, index, index + 1); s->dac_index = (s->dac_index + 1) & 0xff; /* Index autoincrement */ + /* fall through */ default: s->dac_state = 0; break; From patchwork Thu Jan 23 13:49:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348659 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 01AB917EF for ; Thu, 23 Jan 2020 16:27:20 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CB9C021D7D for ; Thu, 23 Jan 2020 16:27:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="JL+zlvkJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CB9C021D7D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60392 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufKA-0004wH-7s for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:27:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52285) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuct6-0007iC-S8 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuct4-0006sa-J2 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:12 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:26162 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 1iuct4-0006sV-Ft for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787470; 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=4Jg3TFcOdp/VojYYyJF7Z3OkvAG5voPI06xlV+CkuWU=; b=JL+zlvkJBoALhUnxXVl22iWYYrIrqQCQUDxieK4+ldgd6sUnXqU7jOyL1usIABKgwT7xuy G0yPaer0+dFTGDcZSYLSwK9rjj0L1+fpW5w6+hS3RqQImjUoh0njAGX6y495FPhQYh24Hd 5uSMXUjneTDhjtlT0PSuKzGyLu6ev84= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-106-bv_6PkVbMq-qrX34f9HTyQ-1; Thu, 23 Jan 2020 08:51:08 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 09BCA18C43C1 for ; Thu, 23 Jan 2020 13:51:08 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 063471CB; Thu, 23 Jan 2020 13:51:06 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 08/59] hw/timer/aspeed_timer: Add a fall through comment Date: Thu, 23 Jan 2020 14:49:58 +0100 Message-Id: <1579787449-27599-9-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: bv_6PkVbMq-qrX34f9HTyQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé Reported by GCC9 when building with CFLAG -Wimplicit-fallthrough=2: hw/timer/aspeed_timer.c: In function ‘aspeed_timer_set_value’: hw/timer/aspeed_timer.c:283:24: error: this statement may fall through [-Werror=implicit-fallthrough=] 283 | if (old_reload || !t->reload) { | ~~~~~~~~~~~^~~~~~~~~~~~~ hw/timer/aspeed_timer.c:287:5: note: here 287 | case TIMER_REG_STATUS: | ^~~~ cc1: all warnings being treated as errors Add the missing fall through comment. Fixes: 1403f364472 Reviewed-by: Cédric Le Goater Reviewed-by: Aleksandar Markovic Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20191218192526.13845-4-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- hw/timer/aspeed_timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/timer/aspeed_timer.c b/hw/timer/aspeed_timer.c index a8c38cc..c91f184 100644 --- a/hw/timer/aspeed_timer.c +++ b/hw/timer/aspeed_timer.c @@ -283,7 +283,7 @@ static void aspeed_timer_set_value(AspeedTimerCtrlState *s, int timer, int reg, if (old_reload || !t->reload) { break; } - + /* fall through to re-enable */ case TIMER_REG_STATUS: if (timer_enabled(t)) { uint64_t now = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); From patchwork Thu Jan 23 13:50:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348543 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E52731398 for ; Thu, 23 Jan 2020 15:59:50 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BA1D8214AF for ; Thu, 23 Jan 2020 15:59:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="ECC2d0Np" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BA1D8214AF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:59916 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuetZ-0005vt-9d for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 10:59:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52328) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuct8-0007lM-Jb for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuct7-0006zQ-Ik for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:14 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:22894 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 1iuct7-0006y5-Fy for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:13 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787473; 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=V2G8YV9XujUycNNX3FwBpPbZJXJwPTP/v5pJ9UnyklM=; b=ECC2d0Npy0Oh8FqgUyn9T5FvYaErf4MjcTO0C7BK45wfRUl1/Fe3c/G5OK+RUNTg9G9/Yv QOmFaRVD6zqhZLwThHXd8slrlZWacGQT1ec4iyWw9YJdqzArBTOHrlbEGT2coOTN5hdIef iNHrx95LxPeGUwnv1vzK/7zmIAG6bkI= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-373-bb6jBSu6M8SXJqpy01H5tg-1; Thu, 23 Jan 2020 08:51:11 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 02E408017CC for ; Thu, 23 Jan 2020 13:51:11 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id F35D61CB; Thu, 23 Jan 2020 13:51:09 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 10/59] hw/net/imx_fec: Remove unuseful FALLTHROUGH comments Date: Thu, 23 Jan 2020 14:50:00 +0100 Message-Id: <1579787449-27599-11-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: bb6jBSu6M8SXJqpy01H5tg-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé We don't need to explicit these obvious switch fall through comments. Stay consistent with the rest of the codebase. Suggested-by: Thomas Huth Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Aleksandar Markovic Reviewed-by: Richard Henderson Reviewed-by: Thomas Huth Message-Id: <20191218192526.13845-6-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- hw/net/imx_fec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c index c01ce4f..5a83678 100644 --- a/hw/net/imx_fec.c +++ b/hw/net/imx_fec.c @@ -901,8 +901,8 @@ static void imx_eth_write(void *opaque, hwaddr offset, uint64_t value, s->regs[index] = 0; } break; - case ENET_TDAR1: /* FALLTHROUGH */ - case ENET_TDAR2: /* FALLTHROUGH */ + case ENET_TDAR1: + case ENET_TDAR2: if (unlikely(single_tx_ring)) { qemu_log_mask(LOG_GUEST_ERROR, "[%s]%s: trying to access TDAR2 or TDAR1\n", From patchwork Thu Jan 23 13:50:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348555 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9612D1398 for ; Thu, 23 Jan 2020 16:03:10 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 69F2C214AF for ; Thu, 23 Jan 2020 16:03:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="NWnzIadE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 69F2C214AF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:59978 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuewm-0001BW-Ob for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:03:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52340) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuct9-0007nG-UG for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuct8-00072L-Qw for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:15 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:39457 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 1iuct8-00071i-OL for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787474; 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=HUvkaAnGGTEqEM2fUNLgUj6x7mX20lWdXIlkJjVebUk=; b=NWnzIadEsqVJ8VALa+QnB400v/z+B4xtu2leJ6Dlyz1heiEPRfgwcF1ui4VTyAPVaHePji MnbX4ptmndpAG5hH+e5pVdn0aRkIDTUoRJRESDO3Gw84O+g6NFLb5rCHKIViK5AHLStSSJ 0Ol072pvKcybeoQSGOgXLRVn4CEUKZQ= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-355-jzjJOIngNL2F3-tCJs0JNw-1; Thu, 23 Jan 2020 08:51:13 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 78CA51800D48 for ; Thu, 23 Jan 2020 13:51:12 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 742278575C; Thu, 23 Jan 2020 13:51:11 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 11/59] hw/pci-host/designware: Remove unuseful FALLTHROUGH comment Date: Thu, 23 Jan 2020 14:50:01 +0100 Message-Id: <1579787449-27599-12-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: jzjJOIngNL2F3-tCJs0JNw-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé We don't need to explicit this obvious switch fall through. Stay consistent with the rest of the codebase. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Aleksandar Markovic Reviewed-by: Richard Henderson Reviewed-by: Thomas Huth Message-Id: <20191218192526.13845-7-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- hw/pci-host/designware.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/pci-host/designware.c b/hw/pci-host/designware.c index 71e9b0d..dd24551 100644 --- a/hw/pci-host/designware.c +++ b/hw/pci-host/designware.c @@ -182,7 +182,7 @@ designware_pcie_root_config_read(PCIDevice *d, uint32_t address, int len) break; case DESIGNWARE_PCIE_ATU_CR1: - case DESIGNWARE_PCIE_ATU_CR2: /* FALLTHROUGH */ + case DESIGNWARE_PCIE_ATU_CR2: val = viewport->cr[(address - DESIGNWARE_PCIE_ATU_CR1) / sizeof(uint32_t)]; break; From patchwork Thu Jan 23 13:50:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348675 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 972DF92A for ; Thu, 23 Jan 2020 16:29:55 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6D11721734 for ; Thu, 23 Jan 2020 16:29:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="B7HWbD1S" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6D11721734 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60432 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufMf-0008V5-PK for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:29:53 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52365) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctD-0007tN-Qq for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctC-0007FS-N1 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:19 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:33435 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 1iuctC-0007EH-Jw for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:18 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787478; 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=xU9cHAR+RtjgBQ2YG/0ukzyNIpDX3N8Gy+rv2QWJXMg=; b=B7HWbD1SFzZCQ3IQSC40DtBqVBFzSsoDfInNMsy38ADq98vMW5K4TU5DezwlaHwuXiUeIq iz211ytChDsTbEgpmxZCaieaPEYQIccmO6ujLaeNkGGQmRL8FZBjahSxJj4bAzPzzsddzW mIgM/u/ZUzX2hs+72yc5w13fpmO97oA= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-289-dDMb3EyPPViZZpbD0cFe2Q-1; Thu, 23 Jan 2020 08:51:14 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id EFE218010D0 for ; Thu, 23 Jan 2020 13:51:13 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id EA9408575C; Thu, 23 Jan 2020 13:51:12 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 12/59] configure: Do not build libfdt if not required Date: Thu, 23 Jan 2020 14:50:02 +0100 Message-Id: <1579787449-27599-13-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: dDMb3EyPPViZZpbD0cFe2Q-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé We only require libfdt for system emulation, in a small set of architecture: 4077 # fdt support is mandatory for at least some target architectures, 4078 # so insist on it if we're building those system emulators. 4079 fdt_required=no 4080 for target in $target_list; do 4081 case $target in 4082 aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu|riscv*-softmmu) 4083 fdt_required=yes Do not build libfdt if we did not manually specified --enable-fdt, or have one of the platforms that require it in our target list. Reviewed-by: Thomas Huth Reviewed-by: Alistair Francis Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alex Bennée Message-Id: <20200118140619.26333-2-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- configure | 2 ++ 1 file changed, 2 insertions(+) diff --git a/configure b/configure index 557e438..c67a7e7 100755 --- a/configure +++ b/configure @@ -4095,6 +4095,8 @@ if test "$fdt_required" = "yes"; then "targets which need it (by specifying a cut down --target-list)." fi fdt=yes +elif test "$fdt" != "yes" ; then + fdt=no fi if test "$fdt" != "no" ; then From patchwork Thu Jan 23 13:50:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348563 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6BA7E139A for ; Thu, 23 Jan 2020 16:05:37 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 41B3F214AF for ; Thu, 23 Jan 2020 16:05:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="So4hKs0D" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 41B3F214AF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60016 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuez9-0004fe-NO for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:05:35 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52354) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctC-0007sA-Ux for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctB-0007C4-S7 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:18 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:29894 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 1iuctB-0007BP-PY for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787477; 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=aDX7+fWUGCEA7u9MQhI7OgDlZhcuSjek6kDPs2X+NE8=; b=So4hKs0DEfZGcVgUUAQUMQcTmC/mTPwhpwd8aJc2i1UNbNflwLNp3tP+1w/ziKoZo/Sopz Zau7LpXCc3Eih4s9SGVdahzmB6pVar8rTGe+jTHGMbx9D7wJV5BmACkdCJOvM9YVa04G1m l/Zc454hsfiuWxLWilhxz4MXTNQrWSk= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-99-W0OszqckOza1EFWp4Gv0ew-1; Thu, 23 Jan 2020 08:51:16 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 6FDCA100550E for ; Thu, 23 Jan 2020 13:51:15 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6CBC91CB; Thu, 23 Jan 2020 13:51:14 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 13/59] Makefile: Clarify all the codebase requires qom/ objects Date: Thu, 23 Jan 2020 14:50:03 +0100 Message-Id: <1579787449-27599-14-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: W0OszqckOza1EFWp4Gv0ew-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé QEMU user-mode also requires the qom/ objects, it is not only used by "system emulation and qemu-img". As we will use a big if() block, move it upper in the "Common libraries for tools and emulators" section. Reviewed-by: Thomas Huth Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alex Bennée Message-Id: <20200118140619.26333-3-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- Makefile.objs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Makefile.objs b/Makefile.objs index 7c1e50f..5aae561 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -2,6 +2,7 @@ # Common libraries for tools and emulators stub-obj-y = stubs/ util-obj-y = crypto/ util/ qobject/ qapi/ +qom-obj-y = qom/ chardev-obj-y = chardev/ @@ -27,11 +28,6 @@ block-obj-m = block/ crypto-obj-y = crypto/ ####################################################################### -# qom-obj-y is code used by both qemu system emulation and qemu-img - -qom-obj-y = qom/ - -####################################################################### # io-obj-y is code used by both qemu system emulation and qemu-img io-obj-y = io/ From patchwork Thu Jan 23 13:50:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348773 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7381814B4 for ; Thu, 23 Jan 2020 17:02:58 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 497C62071E for ; Thu, 23 Jan 2020 17:02:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Gf4uW2Lu" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 497C62071E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:32968 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufse-0004e9-JC for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 12:02:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52376) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctE-0007uh-N8 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctD-0007Hd-Ca for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:20 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:56855 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 1iuctD-0007Fg-9X for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:19 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787478; 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=YkN0Hs0386ovqGyh0tX92ZIyDFdjOBkkpk1SQxdeXc4=; b=Gf4uW2LufcZQoSKaYv03DodJbeq0Zusp0x6BcA0kyN7VCoW2jVZ3fZjh9kEhstEogsxEZ9 OIghek4xYf544uMwlYcjLZYZiIjvjdbB4iiLw1vv4bssHtCjUS7tiPK3uqL04yshq4Acqq mycyWbG/TEdKATSklKXINaToQTioS6A= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-114-QXwlACAfM0CuQRGPz-Cm8A-1; Thu, 23 Jan 2020 08:51:17 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E512E8010D9 for ; Thu, 23 Jan 2020 13:51:16 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id E1F2E1CB; Thu, 23 Jan 2020 13:51:15 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 14/59] Makefile: Restrict system emulation and tools objects Date: Thu, 23 Jan 2020 14:50:04 +0100 Message-Id: <1579787449-27599-15-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: QXwlACAfM0CuQRGPz-Cm8A-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé Restrict all the system emulation and tools objects with a Makefile IF (CONFIG_SOFTMMU OR CONFIG_TOOLS) check. Using the same description over and over is not very helpful. Use it once, just before the if() block. Reviewed-by: Thomas Huth Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alex Bennée Message-Id: <20200118140619.26333-4-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- Makefile.objs | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/Makefile.objs b/Makefile.objs index 5aae561..395dd1e 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -4,15 +4,14 @@ stub-obj-y = stubs/ util-obj-y = crypto/ util/ qobject/ qapi/ qom-obj-y = qom/ -chardev-obj-y = chardev/ - ####################################################################### -# authz-obj-y is code used by both qemu system emulation and qemu-img +# code used by both qemu system emulation and qemu-img -authz-obj-y = authz/ +ifeq ($(call lor,$(CONFIG_SOFTMMU),$(CONFIG_TOOLS)),y) -####################################################################### -# block-obj-y is code used by both qemu system emulation and qemu-img +chardev-obj-y = chardev/ + +authz-obj-y = authz/ block-obj-y = nbd/ block-obj-y += block.o blockjob.o job.o @@ -22,16 +21,12 @@ block-obj-$(CONFIG_REPLICATION) += replication.o block-obj-m = block/ -####################################################################### -# crypto-obj-y is code used by both qemu system emulation and qemu-img - crypto-obj-y = crypto/ -####################################################################### -# io-obj-y is code used by both qemu system emulation and qemu-img - io-obj-y = io/ +endif # CONFIG_SOFTMMU or CONFIG_TOOLS + ###################################################################### # Target independent part of system emulation. The long term path is to # suppress *all* target specific code in case of system emulation, i.e. a From patchwork Thu Jan 23 13:50:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348789 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0C9E31398 for ; Thu, 23 Jan 2020 17:06:13 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D74CD207FF for ; Thu, 23 Jan 2020 17:06:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="aYOYg2a1" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D74CD207FF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:33026 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufvm-0000AK-Re for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 12:06:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52393) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctG-0007xE-3M for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctF-0007Mr-0n for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:22 -0500 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:33488 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 1iuctE-0007Lg-UA for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787480; 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=tTJUVNUTqrtyvMtlE8g0R7jZIoGePCw/hdMPnUY4Wqc=; b=aYOYg2a10GgtYX5Q5IPr5nclup6bjk3d4YCGJA8R/trgO2/aORl9lqNmwhDvqXxoNZQSFP OFZ2H2qC1mjIu67EL6odE4iv/PFcYD4garizB1qLQasUgFdo6OxfVesVYSyX1J0l6teCOn JB37mmwDEL+R68Am4TaTHJeucEMcHtg= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-290-_xHPP617O7aoJk9AW3y27A-1; Thu, 23 Jan 2020 08:51:19 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 6957318C43C5 for ; Thu, 23 Jan 2020 13:51:18 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 63F7F1CB; Thu, 23 Jan 2020 13:51:17 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 15/59] Makefile: Remove unhelpful comment Date: Thu, 23 Jan 2020 14:50:05 +0100 Message-Id: <1579787449-27599-16-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: _xHPP617O7aoJk9AW3y27A-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé It is pointless to keep qapi/ object separate from the other common-objects. Drop the comment. Reviewed-by: Thomas Huth Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alex Bennée Message-Id: <20200118140619.26333-5-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- Makefile.objs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Makefile.objs b/Makefile.objs index 395dd1e..c6321d0 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -71,11 +71,9 @@ qemu-seccomp.o-libs := $(SECCOMP_LIBS) common-obj-$(CONFIG_FDT) += device_tree.o -###################################################################### -# qapi - common-obj-y += qapi/ -endif + +endif # CONFIG_SOFTMMU ####################################################################### # Target-independent parts used in system and user emulation From patchwork Thu Jan 23 13:50:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348683 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E8DDB921 for ; Thu, 23 Jan 2020 16:34:25 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BCF9221D7E for ; Thu, 23 Jan 2020 16:34:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Tz9VBFoV" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BCF9221D7E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60510 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufR1-0004a5-Om for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:34:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52438) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctL-00085U-3l for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctJ-0007aR-Sy for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:26 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:25814 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 1iuctJ-0007aB-QY for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787485; 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=vQ1z8yLVoQpML9t8CgFbnOChkjDd2p5ELrDVaOsVPV4=; b=Tz9VBFoVQaz8w7eVVIBit0GB589Bn/YgZG6/gSNex6oi4fl07Yqki6ytK3hXPdsmqNBqZR ebqlglYsVWPjbYYt1Ext89HZsb3TWBGBkpZ4pWcHJjl4ei8oC1VDaDDHyeHQEmxeGiCfo2 U1MAhSfAeaCatd137t8KEX2F7VKkKlQ= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-47-c1Lzo925Mm2t8FqM4OOm4Q-1; Thu, 23 Jan 2020 08:51:23 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 6D772801E76 for ; Thu, 23 Jan 2020 13:51:22 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id D88938575C; Thu, 23 Jan 2020 13:51:18 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 16/59] hw/core: Restrict reset handlers API to system-mode Date: Thu, 23 Jan 2020 14:50:06 +0100 Message-Id: <1579787449-27599-17-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: c1Lzo925Mm2t8FqM4OOm4Q-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé The user-mode code does not use this API, restrict it to the system-mode. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alex Bennée Reviewed-by: Thomas Huth Message-Id: <20200118140619.26333-6-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- hw/core/Makefile.objs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs index 0edd9e6..2fea68c 100644 --- a/hw/core/Makefile.objs +++ b/hw/core/Makefile.objs @@ -1,6 +1,7 @@ # core qdev-related obj files, also used by *-user: common-obj-y += qdev.o qdev-properties.o -common-obj-y += bus.o reset.o +common-obj-y += bus.o +common-obj-$(CONFIG_SOFTMMU) += reset.o common-obj-$(CONFIG_SOFTMMU) += qdev-fw.o common-obj-$(CONFIG_SOFTMMU) += fw-path-provider.o # irq.o needed for qdev GPIO handling: From patchwork Thu Jan 23 13:50:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348689 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AC0DF92A for ; Thu, 23 Jan 2020 16:37:38 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 81DBB21D7D for ; Thu, 23 Jan 2020 16:37:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="VtIjCVM8" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 81DBB21D7D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60570 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufU9-00084r-9c for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:37:37 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52458) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctO-0008AS-2U for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctM-0007kq-U7 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:29 -0500 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:42793 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 1iuctM-0007jb-R6 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787488; 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=NmbbetkVhzJVVJsCaViraNKXtvOP2BOfbarptpm7JZQ=; b=VtIjCVM8Lmy+467DbBoY/45Ighm+Bzv8J6N2qSM71l9LN4JNoalHvyjljYBW4AP2Z246MQ Un4rBeWNArp2Y6ajYMTkhTq+xj+rV6KR3L2M1LfeHrV9lg+nMGi2LY3DqztJgFjLNhZgjy 8BS5xuPeRk8mWSoUj6Z2vqC+LxeK46A= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-6-7SP2G1J7N4-RVkoZEce-6A-1; Thu, 23 Jan 2020 08:51:26 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E8B281800D48 for ; Thu, 23 Jan 2020 13:51:25 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id DB72F85792; Thu, 23 Jan 2020 13:51:22 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 17/59] hw/core/Makefile: Group generic objects versus system-mode objects Date: Thu, 23 Jan 2020 14:50:07 +0100 Message-Id: <1579787449-27599-18-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: 7SP2G1J7N4-RVkoZEce-6A-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé To ease review/modifications of this Makefile, group generic objects first, then system-mode specific ones, and finally peripherals (which are only used in system-mode). No logical changes introduced here. Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20200118140619.26333-7-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- hw/core/Makefile.objs | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs index 2fea68c..a522b72 100644 --- a/hw/core/Makefile.objs +++ b/hw/core/Makefile.objs @@ -1,32 +1,32 @@ # core qdev-related obj files, also used by *-user: common-obj-y += qdev.o qdev-properties.o common-obj-y += bus.o +common-obj-y += cpu.o +common-obj-y += hotplug.o +common-obj-y += vmstate-if.o +# irq.o needed for qdev GPIO handling: +common-obj-y += irq.o + common-obj-$(CONFIG_SOFTMMU) += reset.o common-obj-$(CONFIG_SOFTMMU) += qdev-fw.o common-obj-$(CONFIG_SOFTMMU) += fw-path-provider.o -# irq.o needed for qdev GPIO handling: -common-obj-y += irq.o -common-obj-y += hotplug.o common-obj-$(CONFIG_SOFTMMU) += nmi.o common-obj-$(CONFIG_SOFTMMU) += vm-change-state-handler.o -common-obj-y += cpu.o -common-obj-y += vmstate-if.o +common-obj-$(CONFIG_SOFTMMU) += qdev-properties-system.o +common-obj-$(CONFIG_SOFTMMU) += sysbus.o +common-obj-$(CONFIG_SOFTMMU) += machine.o +common-obj-$(CONFIG_SOFTMMU) += null-machine.o +common-obj-$(CONFIG_SOFTMMU) += loader.o +common-obj-$(CONFIG_SOFTMMU) += machine-hmp-cmds.o +obj-$(CONFIG_SOFTMMU) += machine-qmp-cmds.o +obj-$(CONFIG_SOFTMMU) += numa.o common-obj-$(CONFIG_EMPTY_SLOT) += empty_slot.o common-obj-$(CONFIG_XILINX_AXI) += stream.o common-obj-$(CONFIG_PTIMER) += ptimer.o -common-obj-$(CONFIG_SOFTMMU) += sysbus.o -common-obj-$(CONFIG_SOFTMMU) += machine.o -common-obj-$(CONFIG_SOFTMMU) += loader.o common-obj-$(CONFIG_FITLOADER) += loader-fit.o -common-obj-$(CONFIG_SOFTMMU) += qdev-properties-system.o common-obj-$(CONFIG_REGISTER) += register.o common-obj-$(CONFIG_OR_IRQ) += or-irq.o common-obj-$(CONFIG_SPLIT_IRQ) += split-irq.o common-obj-$(CONFIG_PLATFORM_BUS) += platform-bus.o common-obj-$(CONFIG_GENERIC_LOADER) += generic-loader.o -common-obj-$(CONFIG_SOFTMMU) += null-machine.o - -obj-$(CONFIG_SOFTMMU) += machine-qmp-cmds.o -obj-$(CONFIG_SOFTMMU) += numa.o -common-obj-$(CONFIG_SOFTMMU) += machine-hmp-cmds.o From patchwork Thu Jan 23 13:50:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348575 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 770011398 for ; Thu, 23 Jan 2020 16:08:38 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4DC3221D7D for ; Thu, 23 Jan 2020 16:08:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="DEZrJ0ET" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4DC3221D7D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60054 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuf25-0001hd-4X for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:08:37 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52506) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctS-0008IE-VE for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctQ-0007w4-FC for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:34 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:54752 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 1iuctQ-0007vJ-CN for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787492; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VXIsUU5e+eDzw2WVvQay4UUnLop5pGbWyW6MKoyD3wE=; b=DEZrJ0ETOcJGGMSFzcIEHoJ+zGK1iBxpKBvWbUhLEW5rvFIHqZkoxXCo4jALaWc1GYxWri mrszXBGwlWDmaT+hYYqP8idIGIQrSoAX0lJ3Luv81OyQTvDxZ/DqkPRg7jqakf1i8MCDzB gykTfWfywZrCGkj8F/Wij8TZ4XvY6AY= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-393-2j4YVtbLPU6oDvKPYH33AQ-1; Thu, 23 Jan 2020 08:51:28 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 70370100E102; Thu, 23 Jan 2020 13:51:27 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 688F01CB; Thu, 23 Jan 2020 13:51:26 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 18/59] target/i386: kvm: initialize feature MSRs very early Date: Thu, 23 Jan 2020 14:50:08 +0100 Message-Id: <1579787449-27599-19-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: 2j4YVtbLPU6oDvKPYH33AQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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: qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Some read-only MSRs affect the behavior of ioctls such as KVM_SET_NESTED_STATE. We can initialize them once and for all right after the CPU is realized, since they will never be modified by the guest. Reported-by: Qingua Cheng Cc: qemu-stable@nongnu.org Signed-off-by: Paolo Bonzini Message-Id: <1579544504-3616-2-git-send-email-pbonzini@redhat.com> Signed-off-by: Paolo Bonzini --- target/i386/kvm.c | 81 ++++++++++++++++++++++++++++++-------------------- target/i386/kvm_i386.h | 1 + 2 files changed, 49 insertions(+), 33 deletions(-) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 7ee3202..f6dd6b7 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -67,6 +67,8 @@ * 255 kvm_msr_entry structs */ #define MSR_BUF_SIZE 4096 +static void kvm_init_msrs(X86CPU *cpu); + const KVMCapabilityInfo kvm_arch_required_capabilities[] = { KVM_CAP_INFO(SET_TSS_ADDR), KVM_CAP_INFO(EXT_CPUID), @@ -1842,6 +1844,8 @@ int kvm_arch_init_vcpu(CPUState *cs) has_msr_tsc_aux = false; } + kvm_init_msrs(cpu); + r = hyperv_init_vcpu(cpu); if (r) { goto fail; @@ -2660,11 +2664,53 @@ static void kvm_msr_entry_add_vmx(X86CPU *cpu, FeatureWordArray f) VMCS12_MAX_FIELD_INDEX << 1); } +static int kvm_buf_set_msrs(X86CPU *cpu) +{ + int ret = kvm_vcpu_ioctl(CPU(cpu), KVM_SET_MSRS, cpu->kvm_msr_buf); + if (ret < 0) { + return ret; + } + + if (ret < cpu->kvm_msr_buf->nmsrs) { + struct kvm_msr_entry *e = &cpu->kvm_msr_buf->entries[ret]; + error_report("error: failed to set MSR 0x%" PRIx32 " to 0x%" PRIx64, + (uint32_t)e->index, (uint64_t)e->data); + } + + assert(ret == cpu->kvm_msr_buf->nmsrs); + return 0; +} + +static void kvm_init_msrs(X86CPU *cpu) +{ + CPUX86State *env = &cpu->env; + + kvm_msr_buf_reset(cpu); + if (has_msr_arch_capabs) { + kvm_msr_entry_add(cpu, MSR_IA32_ARCH_CAPABILITIES, + env->features[FEAT_ARCH_CAPABILITIES]); + } + + if (has_msr_core_capabs) { + kvm_msr_entry_add(cpu, MSR_IA32_CORE_CAPABILITY, + env->features[FEAT_CORE_CAPABILITY]); + } + + /* + * Older kernels do not include VMX MSRs in KVM_GET_MSR_INDEX_LIST, but + * all kernels with MSR features should have them. + */ + if (kvm_feature_msrs && cpu_has_vmx(env)) { + kvm_msr_entry_add_vmx(cpu, env->features); + } + + assert(kvm_buf_set_msrs(cpu) == 0); +} + static int kvm_put_msrs(X86CPU *cpu, int level) { CPUX86State *env = &cpu->env; int i; - int ret; kvm_msr_buf_reset(cpu); @@ -2722,17 +2768,6 @@ static int kvm_put_msrs(X86CPU *cpu, int level) } #endif - /* If host supports feature MSR, write down. */ - if (has_msr_arch_capabs) { - kvm_msr_entry_add(cpu, MSR_IA32_ARCH_CAPABILITIES, - env->features[FEAT_ARCH_CAPABILITIES]); - } - - if (has_msr_core_capabs) { - kvm_msr_entry_add(cpu, MSR_IA32_CORE_CAPABILITY, - env->features[FEAT_CORE_CAPABILITY]); - } - /* * The following MSRs have side effects on the guest or are too heavy * for normal writeback. Limit them to reset or full state updates. @@ -2910,14 +2945,6 @@ static int kvm_put_msrs(X86CPU *cpu, int level) /* Note: MSR_IA32_FEATURE_CONTROL is written separately, see * kvm_put_msr_feature_control. */ - - /* - * Older kernels do not include VMX MSRs in KVM_GET_MSR_INDEX_LIST, but - * all kernels with MSR features should have them. - */ - if (kvm_feature_msrs && cpu_has_vmx(env)) { - kvm_msr_entry_add_vmx(cpu, env->features); - } } if (env->mcg_cap) { @@ -2933,19 +2960,7 @@ static int kvm_put_msrs(X86CPU *cpu, int level) } } - ret = kvm_vcpu_ioctl(CPU(cpu), KVM_SET_MSRS, cpu->kvm_msr_buf); - if (ret < 0) { - return ret; - } - - if (ret < cpu->kvm_msr_buf->nmsrs) { - struct kvm_msr_entry *e = &cpu->kvm_msr_buf->entries[ret]; - error_report("error: failed to set MSR 0x%" PRIx32 " to 0x%" PRIx64, - (uint32_t)e->index, (uint64_t)e->data); - } - - assert(ret == cpu->kvm_msr_buf->nmsrs); - return 0; + return kvm_buf_set_msrs(cpu); } diff --git a/target/i386/kvm_i386.h b/target/i386/kvm_i386.h index 7d0242f..00bde7a 100644 --- a/target/i386/kvm_i386.h +++ b/target/i386/kvm_i386.h @@ -46,4 +46,5 @@ bool kvm_enable_x2apic(void); bool kvm_has_x2apic_api(void); bool kvm_hv_vpindex_settable(void); + #endif From patchwork Thu Jan 23 13:50:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348693 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CE1AB921 for ; Thu, 23 Jan 2020 16:40:17 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 995FF21734 for ; Thu, 23 Jan 2020 16:40:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="XeQObV8O" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 995FF21734 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60614 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufWh-0004SM-NX for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:40:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52486) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctR-0008FZ-BV for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctP-0007ty-Vf for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:33 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:44870 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 1iuctP-0007th-St for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:31 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787491; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bF+TexQvxSV+aFrZhScirhkOa1+VCZK8fZBbyy0XQVY=; b=XeQObV8OLUmo7k656RYZ/tdHEfq8KkeeFI9Fu9tHdZDaLLClIuIvqA4z79eWAXNSKSLV6a ANjvPHQABo01syzGIVHBpPVS5EJ4kry1eSFXnTUnIwXjmz1E9aTSfajNMFrqyk0ndAN0Lz aEK3a+gC/L0i7AbUBZzOT23BnXDuHJA= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-293-D_FaOn-TM86PzynzroV8Nw-1; Thu, 23 Jan 2020 08:51:29 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AA7BE18C8C0E for ; Thu, 23 Jan 2020 13:51:28 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id E0B0585785 for ; Thu, 23 Jan 2020 13:51:27 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 19/59] target/i386: add a ucode-rev property Date: Thu, 23 Jan 2020 14:50:09 +0100 Message-Id: <1579787449-27599-20-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: D_FaOn-TM86PzynzroV8Nw-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Add the property and plumb it in TCG and HVF (the latter of which tried to support returning a constant value but used the wrong MSR). Signed-off-by: Paolo Bonzini Message-Id: <1579544504-3616-3-git-send-email-pbonzini@redhat.com> Signed-off-by: Paolo Bonzini --- target/i386/cpu.c | 10 ++++++++++ target/i386/cpu.h | 3 +++ target/i386/hvf/x86_emu.c | 4 +--- target/i386/misc_helper.c | 4 ++++ 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 78bdb7c..790254e 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -6418,6 +6418,15 @@ static void x86_cpu_realizefn(DeviceState *dev, Error **errp) } } + if (cpu->ucode_rev == 0) { + /* The default is the same as KVM's. */ + if (IS_AMD_CPU(env)) { + cpu->ucode_rev = 0x01000065; + } else { + cpu->ucode_rev = 0x100000000ULL; + } + } + /* mwait extended info: needed for Core compatibility */ /* We always wake on interrupt even if host does not have the capability */ cpu->mwait.ecx |= CPUID_MWAIT_EMX | CPUID_MWAIT_IBE; @@ -7100,6 +7109,7 @@ static Property x86_cpu_properties[] = { DEFINE_PROP_UINT32("min-level", X86CPU, env.cpuid_min_level, 0), DEFINE_PROP_UINT32("min-xlevel", X86CPU, env.cpuid_min_xlevel, 0), DEFINE_PROP_UINT32("min-xlevel2", X86CPU, env.cpuid_min_xlevel2, 0), + DEFINE_PROP_UINT64("ucode-rev", X86CPU, ucode_rev, 0), DEFINE_PROP_BOOL("full-cpuid-auto-level", X86CPU, full_cpuid_auto_level, true), DEFINE_PROP_STRING("hv-vendor-id", X86CPU, hyperv_vendor_id), DEFINE_PROP_BOOL("cpuid-0xb", X86CPU, enable_cpuid_0xb, true), diff --git a/target/i386/cpu.h b/target/i386/cpu.h index e6de38a..576f309 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -348,6 +348,7 @@ typedef enum X86Seg { #define MSR_IA32_SPEC_CTRL 0x48 #define MSR_VIRT_SSBD 0xc001011f #define MSR_IA32_PRED_CMD 0x49 +#define MSR_IA32_UCODE_REV 0x8b #define MSR_IA32_CORE_CAPABILITY 0xcf #define MSR_IA32_ARCH_CAPABILITIES 0x10a @@ -1627,6 +1628,8 @@ struct X86CPU { CPUNegativeOffsetState neg; CPUX86State env; + uint64_t ucode_rev; + uint32_t hyperv_spinlock_attempts; char *hyperv_vendor_id; bool hyperv_synic_kvm_only; diff --git a/target/i386/hvf/x86_emu.c b/target/i386/hvf/x86_emu.c index 3df7672..92ab815 100644 --- a/target/i386/hvf/x86_emu.c +++ b/target/i386/hvf/x86_emu.c @@ -664,8 +664,6 @@ static void exec_lods(struct CPUX86State *env, struct x86_decode *decode) RIP(env) += decode->len; } -#define MSR_IA32_UCODE_REV 0x00000017 - void simulate_rdmsr(struct CPUState *cpu) { X86CPU *x86_cpu = X86_CPU(cpu); @@ -681,7 +679,7 @@ void simulate_rdmsr(struct CPUState *cpu) val = cpu_get_apic_base(X86_CPU(cpu)->apic_state); break; case MSR_IA32_UCODE_REV: - val = (0x100000000ULL << 32) | 0x100000000ULL; + val = x86_cpu->ucode_rev; break; case MSR_EFER: val = rvmcs(cpu->hvf_fd, VMCS_GUEST_IA32_EFER); diff --git a/target/i386/misc_helper.c b/target/i386/misc_helper.c index 3eff688..aed16fe 100644 --- a/target/i386/misc_helper.c +++ b/target/i386/misc_helper.c @@ -229,6 +229,7 @@ void helper_rdmsr(CPUX86State *env) #else void helper_wrmsr(CPUX86State *env) { + X86CPU *x86_cpu = env_archcpu(env); uint64_t val; cpu_svm_check_intercept_param(env, SVM_EXIT_MSR, 1, GETPC()); @@ -371,6 +372,9 @@ void helper_wrmsr(CPUX86State *env) env->msr_bndcfgs = val; cpu_sync_bndcs_hflags(env); break; + case MSR_IA32_UCODE_REV: + val = x86_cpu->ucode_rev; + break; default: if ((uint32_t)env->regs[R_ECX] >= MSR_MC0_CTL && (uint32_t)env->regs[R_ECX] < MSR_MC0_CTL + From patchwork Thu Jan 23 13:50:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348795 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CB9841398 for ; Thu, 23 Jan 2020 17:10:16 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A0B6E206D4 for ; Thu, 23 Jan 2020 17:10:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="QhIxhHfK" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A0B6E206D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:33082 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufzj-0004ou-BT for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 12:10:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52510) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctT-0008IR-7x for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctR-0007wa-1P for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:34 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:52685 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 1iuctQ-0007wM-Ux for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787492; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=tN1ejZZNNDpwR2f7hBVHJMLYu8kEqjTbMs1ArQbeLlc=; b=QhIxhHfKex44neOcvhjcqoU6fJoNPAMZBxucVmCo+8a/vwFeA/hVODDr1rMQPbIdB51I6h KlrkrCyorZITJBebCR6I+e4+c3nZGOIR489A3mN/+2YeacjVRMJ1+lY8ZEG7vamASZrrT1 8JJUEL0zASXC0hkFR4yKMUODOVDyPFA= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-183-jIf9gV7IPEqPV03uNt2n1Q-1; Thu, 23 Jan 2020 08:51:30 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E2D52100550E for ; Thu, 23 Jan 2020 13:51:29 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 26AC785785 for ; Thu, 23 Jan 2020 13:51:28 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 20/59] target/i386: kvm: initialize microcode revision from KVM Date: Thu, 23 Jan 2020 14:50:10 +0100 Message-Id: <1579787449-27599-21-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: jIf9gV7IPEqPV03uNt2n1Q-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" KVM can return the host microcode revision as a feature MSR. Use it as the default value for -cpu host. Signed-off-by: Paolo Bonzini Message-Id: <1579544504-3616-4-git-send-email-pbonzini@redhat.com> Signed-off-by: Paolo Bonzini --- target/i386/cpu.c | 4 ++++ target/i386/kvm.c | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 790254e..ffe5de0 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -6416,6 +6416,10 @@ static void x86_cpu_realizefn(DeviceState *dev, Error **errp) &cpu->mwait.ecx, &cpu->mwait.edx); env->features[FEAT_1_ECX] |= CPUID_EXT_MONITOR; } + if (kvm_enabled() && cpu->ucode_rev == 0) { + cpu->ucode_rev = kvm_arch_get_supported_msr_feature(kvm_state, + MSR_IA32_UCODE_REV); + } } if (cpu->ucode_rev == 0) { diff --git a/target/i386/kvm.c b/target/i386/kvm.c index f6dd6b7..1b67090 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -2696,6 +2696,11 @@ static void kvm_init_msrs(X86CPU *cpu) env->features[FEAT_CORE_CAPABILITY]); } + if (kvm_arch_get_supported_msr_feature(kvm_state, + MSR_IA32_UCODE_REV)) { + kvm_msr_entry_add(cpu, MSR_IA32_UCODE_REV, cpu->ucode_rev); + } + /* * Older kernels do not include VMX MSRs in KVM_GET_MSR_INDEX_LIST, but * all kernels with MSR features should have them. From patchwork Thu Jan 23 13:50:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348801 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EC04E921 for ; Thu, 23 Jan 2020 17:12:59 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C1272214AF for ; Thu, 23 Jan 2020 17:12:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="XgQoJ9NE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C1272214AF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:33138 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iug2M-0000M0-EZ for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 12:12:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52542) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctV-0008MN-H2 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctU-00085s-Al for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:37 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:52142 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 1iuctU-00084k-8K for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787496; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VSNPfn/WqEe4auVK0p1YkDtx0JRhgePqKKnBaAQWvqk=; b=XgQoJ9NEyPndoBIjc4a7ppOmWpAIGBT21tKwYOCUBFEbNncMZE7uxEVSGCeSohVtdJ2ZFs g7Rz9BU4uu1i0HESN6oQBuv9sT48Tg5Xh8q9LROtwKhChoRuzmOHRHlRgVSqCF1+j29lYJ 9VwFLvmyBpBgoBKH8WHbdPJvwkjc5yE= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-7-HolpI--ZOj-YSJq9mU4p3Q-1; Thu, 23 Jan 2020 08:51:32 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 63F0CDBAD; Thu, 23 Jan 2020 13:51:31 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 602A8857A9; Thu, 23 Jan 2020 13:51:30 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 21/59] virtio-scsi: delete vqs in unrealize to avoid memleaks Date: Thu, 23 Jan 2020 14:50:11 +0100 Message-Id: <1579787449-27599-22-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: HolpI--ZOj-YSJq9mU4p3Q-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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: Pan Nengyuan Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Pan Nengyuan This patch fix memleaks when attaching/detaching virtio-scsi device, the memory leak stack is as follow: Direct leak of 21504 byte(s) in 3 object(s) allocated from: #0 0x7f491f2f2970 (/lib64/libasan.so.5+0xef970) ??:? #1 0x7f491e94649d (/lib64/libglib-2.0.so.0+0x5249d) ??:? #2 0x564d0f3919fa (./x86_64-softmmu/qemu-system-x86_64+0x2c3e9fa) /mnt/sdb/qemu/hw/virtio/virtio.c:2333 #3 0x564d0f2eca55 (./x86_64-softmmu/qemu-system-x86_64+0x2b99a55) /mnt/sdb/qemu/hw/scsi/virtio-scsi.c:912 #4 0x564d0f2ece7b (./x86_64-softmmu/qemu-system-x86_64+0x2b99e7b) /mnt/sdb/qemu/hw/scsi/virtio-scsi.c:924 #5 0x564d0f39ee47 (./x86_64-softmmu/qemu-system-x86_64+0x2c4be47) /mnt/sdb/qemu/hw/virtio/virtio.c:3531 #6 0x564d0f980224 (./x86_64-softmmu/qemu-system-x86_64+0x322d224) /mnt/sdb/qemu/hw/core/qdev.c:865 Reported-by: Euler Robot Signed-off-by: Pan Nengyuan Reviewed-by: Stefan Hajnoczi Message-Id: <20200117075547.60864-2-pannengyuan@huawei.com> Signed-off-by: Paolo Bonzini --- hw/scsi/virtio-scsi.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c index 4bc73a3..858b3aa 100644 --- a/hw/scsi/virtio-scsi.c +++ b/hw/scsi/virtio-scsi.c @@ -943,7 +943,13 @@ void virtio_scsi_common_unrealize(DeviceState *dev) { VirtIODevice *vdev = VIRTIO_DEVICE(dev); VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(dev); + int i; + virtio_del_queue(vdev, 0); + virtio_del_queue(vdev, 1); + for (i = 0; i < vs->conf.num_queues; i++) { + virtio_del_queue(vdev, i + 2); + } g_free(vs->cmd_vqs); virtio_cleanup(vdev); } From patchwork Thu Jan 23 13:50:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348703 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 555F91398 for ; Thu, 23 Jan 2020 16:43:45 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2AF0821569 for ; Thu, 23 Jan 2020 16:43:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="alR/cq8y" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2AF0821569 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60666 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufa3-0000Y6-In for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:43:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52544) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctV-0008MU-Ix for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctU-000872-Ga for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:37 -0500 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:57224 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 1iuctU-00084t-DZ for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787496; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jErQDorg0miDYGPyBiqOf+cKmO5GpKu5KUL5RJhIogQ=; b=alR/cq8yVfG54JwhBNK/vFNb3ZCWQMmgpTjC0eONJGmMeMbqux2Kj66Ums8bqRtUBWkf0V SlC8DiKvV0DLxZxdjp2V5iOlzpFxAwDntbHKSO/boQumc0VE/N1NT7K0me9HjEnX6wmxWu oly7DBPujjJDl2ACsLmhxvsOh7G+o+0= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-362-Ek16kqjvNGCOL9y4mKLEgA-1; Thu, 23 Jan 2020 08:51:33 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E1E69800D4C; Thu, 23 Jan 2020 13:51:32 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id D5C0E85785; Thu, 23 Jan 2020 13:51:31 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 22/59] virtio-scsi: convert to new virtio_delete_queue Date: Thu, 23 Jan 2020 14:50:12 +0100 Message-Id: <1579787449-27599-23-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: Ek16kqjvNGCOL9y4mKLEgA-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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: Pan Nengyuan Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Pan Nengyuan Use virtio_delete_queue to make it more clear. Signed-off-by: Pan Nengyuan Reviewed-by: Stefan Hajnoczi Message-Id: <20200117075547.60864-3-pannengyuan@huawei.com> Signed-off-by: Paolo Bonzini --- hw/scsi/virtio-scsi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c index 858b3aa..d3af42e 100644 --- a/hw/scsi/virtio-scsi.c +++ b/hw/scsi/virtio-scsi.c @@ -945,10 +945,10 @@ void virtio_scsi_common_unrealize(DeviceState *dev) VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(dev); int i; - virtio_del_queue(vdev, 0); - virtio_del_queue(vdev, 1); + virtio_delete_queue(vs->ctrl_vq); + virtio_delete_queue(vs->event_vq); for (i = 0; i < vs->conf.num_queues; i++) { - virtio_del_queue(vdev, i + 2); + virtio_delete_queue(vs->cmd_vqs[i]); } g_free(vs->cmd_vqs); virtio_cleanup(vdev); From patchwork Thu Jan 23 13:50:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348709 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 902AC139A for ; Thu, 23 Jan 2020 16:47:11 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6650521569 for ; Thu, 23 Jan 2020 16:47:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="gICXUHJs" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6650521569 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60736 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufdN-0004Ha-Mt for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:47:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52614) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucth-0000Dz-84 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctg-0008TS-5t for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:49 -0500 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:29267 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 1iuctg-0008St-2o for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787507; 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=XoKLnz1wCpI7N5fQNy5KgJy0oRjyvGPIZtTdXsj3npE=; b=gICXUHJsbhj6IgrZdjj7tXCTsK1ZyFHL1Ti134cSoGj3yYQ5KkI7CI58SPqpavN2ZGfkaA C0in3ByerGMEgUhkjRqdzJgOLJlA/Kglbpgk1Z1kzWEyRSpv2bYSZUijuJkC7ey+DI8hvA x+p4ynYCTcliZPcl3FkTv6xo4AFOHSg= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-390-rehjp-x8Pv6LhA_RkJEpWA-1; Thu, 23 Jan 2020 08:51:45 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C9B801800D48 for ; Thu, 23 Jan 2020 13:51:44 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9B94F85789; Thu, 23 Jan 2020 13:51:42 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 25/59] hw/ppc/spapr_rtas: Remove local variable Date: Thu, 23 Jan 2020 14:50:15 +0100 Message-Id: <1579787449-27599-26-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: rehjp-x8Pv6LhA_RkJEpWA-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé We only access this variable in the RTAS_SYSPARM_SPLPAR_CHARACTERISTICS case. Use it in place and remove the local declaration. Suggested-by: Greg Kurz Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20200121110349.25842-4-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- hw/ppc/spapr_rtas.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c index 6f06e9d..85135e0 100644 --- a/hw/ppc/spapr_rtas.c +++ b/hw/ppc/spapr_rtas.c @@ -268,7 +268,6 @@ static void rtas_ibm_get_system_parameter(PowerPCCPU *cpu, { PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu); MachineState *ms = MACHINE(spapr); - unsigned int max_cpus = ms->smp.max_cpus; target_ulong parameter = rtas_ld(args, 0); target_ulong buffer = rtas_ld(args, 1); target_ulong length = rtas_ld(args, 2); @@ -280,10 +279,10 @@ static void rtas_ibm_get_system_parameter(PowerPCCPU *cpu, "DesMem=%" PRIu64 "," "DesProcs=%d," "MaxPlatProcs=%d", - max_cpus, + ms->smp.max_cpus, ms->ram_size / MiB, ms->smp.cpus, - max_cpus); + ms->smp.max_cpus); if (pcc->n_host_threads > 0) { char *hostthr_val, *old = param_val; From patchwork Thu Jan 23 13:50:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348595 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 141E9921 for ; Thu, 23 Jan 2020 16:11:03 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DAFF120684 for ; Thu, 23 Jan 2020 16:11:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="jOhETPpj" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DAFF120684 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60096 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuf4P-0005Tz-Lw for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:11:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52664) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctm-0000Lc-1s for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctk-0000EO-UQ for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:53 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:43025 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 1iuctk-0000Ds-RO for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787512; 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=G8REenve+H9csiL1HWpoRTGpQ4KzlPih8bhh6X75GFo=; b=jOhETPpjGEDDjxj5lTyPdiVhBgUbK8dTRHhP7w2oYajeDI4qjLjM/aEyEOeTgzez7DDR4k MQy4lu7qTa6+RAK0rM55tnHke3jDuclm+lxO3WitztZcTcvDn3YK6vLzeH+j+IcA7Vtus7 1lXai9D60gCZnADoaOi7pijJGx2YuHw= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-421-idDYgpXRNXuOoE8XF_ngyA-1; Thu, 23 Jan 2020 08:51:51 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 6B246802CA2 for ; Thu, 23 Jan 2020 13:51:50 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6F4B48575A; Thu, 23 Jan 2020 13:51:48 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 27/59] qom/object: Display more helpful message when a parent is missing Date: Thu, 23 Jan 2020 14:50:17 +0100 Message-Id: <1579787449-27599-28-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: idDYgpXRNXuOoE8XF_ngyA-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé QEMU object model is scarse in documentation. Some calls are recursive, and it might be hard to figure out even trivial issues. We can avoid developers to waste time in a debugging session by displaying a simple error message. This commit is also similar to e02bdf1cecd2 ("Display more helpful message when an object type is missing"). Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Cornelia Huck Message-Id: <20200121110349.25842-7-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- qom/object.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/qom/object.c b/qom/object.c index 36123fb..90155fa 100644 --- a/qom/object.c +++ b/qom/object.c @@ -173,7 +173,11 @@ static TypeImpl *type_get_parent(TypeImpl *type) { if (!type->parent_type && type->parent) { type->parent_type = type_get_by_name(type->parent); - g_assert(type->parent_type != NULL); + if (!type->parent_type) { + fprintf(stderr, "Type '%s' is missing its parent '%s'\n", + type->name, type->parent); + abort(); + } } return type->parent_type; From patchwork Thu Jan 23 13:50:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348807 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C8AE1921 for ; Thu, 23 Jan 2020 17:16:19 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9A4B420704 for ; Thu, 23 Jan 2020 17:16:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="cWZ9XkAq" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9A4B420704 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:33200 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iug5a-00046W-5g for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 12:16:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52691) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctp-0000Si-4d for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucto-0000NK-1P for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:56 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:32663 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 1iuctn-0000M3-UN for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:55 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787515; 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=fhWeL2ADPT5bDg7/jmj0T6OuctAf6BKtCLK+BXLaiNI=; b=cWZ9XkAq9ImSW/nN6EmOdBjIRMAqJWGasQqsv1vxDrVbuEaJcI5EwYcHE/UnV6ycMj4AJu 3+7onYjrcsrxXiUjXw8m+ditbKKh1cq4ja1oqPb1SGHxycyAcGCIrTJjHs6FiHzR06dDRh Uu4W0LhFqJzqOTgqI56+a/n/IXXhiZM= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-394-x_LqWXKjOuuAZoip8sIFhw-1; Thu, 23 Jan 2020 08:51:54 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 463F46C199 for ; Thu, 23 Jan 2020 13:51:53 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id DBDE6857A5; Thu, 23 Jan 2020 13:51:50 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 28/59] accel: Introduce the current_accel() wrapper Date: Thu, 23 Jan 2020 14:50:18 +0100 Message-Id: <1579787449-27599-29-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: x_LqWXKjOuuAZoip8sIFhw-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé The accel/ code only accesses the MachineState::accel field. As we simply want to access the accelerator, not the machine, add a current_accel() wrapper. Suggested-by: Paolo Bonzini Reviewed-by: Alistair Francis Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Cornelia Huck Message-Id: <20200121110349.25842-9-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- accel/accel.c | 5 +++++ include/sysemu/accel.h | 2 ++ 2 files changed, 7 insertions(+) diff --git a/accel/accel.c b/accel/accel.c index 1c5c3a6..cb555e3 100644 --- a/accel/accel.c +++ b/accel/accel.c @@ -63,6 +63,11 @@ int accel_init_machine(AccelState *accel, MachineState *ms) return ret; } +AccelState *current_accel(void) +{ + return current_machine->accelerator; +} + void accel_setup_post(MachineState *ms) { AccelState *accel = ms->accelerator; diff --git a/include/sysemu/accel.h b/include/sysemu/accel.h index d4c1429..47e5788 100644 --- a/include/sysemu/accel.h +++ b/include/sysemu/accel.h @@ -70,4 +70,6 @@ int accel_init_machine(AccelState *accel, MachineState *ms); /* Called just before os_setup_post (ie just before drop OS privs) */ void accel_setup_post(MachineState *ms); +AccelState *current_accel(void); + #endif From patchwork Thu Jan 23 13:50:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348811 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A966C921 for ; Thu, 23 Jan 2020 17:20:09 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7BFE520704 for ; Thu, 23 Jan 2020 17:20:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Nz5PE0gG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7BFE520704 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:33276 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iug9H-0007vZ-Pj for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 12:20:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52723) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctr-0000WB-4N for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctp-0000VY-P1 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:59 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:35415 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 1iuctp-0000TE-Li for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:57 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787517; 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=V+zu8pJ4KXnZi5gS2YErITxGb5XKI6g0YeXMXaix92U=; b=Nz5PE0gGIRxxpYX4BcZlXUcl/s4sj4X4YJlCnO7TkjhpIRpPYNwMsHgLeDPUdGQNhLvGmi cl927izXRVWcmq/v0J1gZY1E/fDN5cH1y36l2/rz4CRgRheAwuNpDZyJED6Qa7f+/qQwPE xSQwZB9yre1Mj6O2bHdJZoZuoNEp9so= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-338-L4YjQPpGN_qJsw7fk7Xa4w-1; Thu, 23 Jan 2020 08:51:55 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B86D4A0CC7 for ; Thu, 23 Jan 2020 13:51:54 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id B501984DBD; Thu, 23 Jan 2020 13:51:53 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 29/59] accel: Replace current_machine->accelerator by current_accel() wrapper Date: Thu, 23 Jan 2020 14:50:19 +0100 Message-Id: <1579787449-27599-30-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: L4YjQPpGN_qJsw7fk7Xa4w-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé We actually want to access the accelerator, not the machine, so use the current_accel() wrapper instead. Suggested-by: Paolo Bonzini Reviewed-by: Alistair Francis Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20200121110349.25842-10-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- accel/kvm/kvm-all.c | 4 ++-- accel/tcg/tcg-all.c | 2 +- memory.c | 2 +- target/arm/kvm64.c | 5 ++--- target/i386/kvm.c | 2 +- target/ppc/kvm.c | 4 ++-- vl.c | 2 +- 7 files changed, 10 insertions(+), 11 deletions(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 1ada2f4..c111312 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -164,7 +164,7 @@ static NotifierList kvm_irqchip_change_notifiers = int kvm_get_max_memslots(void) { - KVMState *s = KVM_STATE(current_machine->accelerator); + KVMState *s = KVM_STATE(current_accel()); return s->nr_slots; } @@ -1848,7 +1848,7 @@ static int kvm_max_vcpu_id(KVMState *s) bool kvm_vcpu_id_is_valid(int vcpu_id) { - KVMState *s = KVM_STATE(current_machine->accelerator); + KVMState *s = KVM_STATE(current_accel()); return vcpu_id >= 0 && vcpu_id < kvm_max_vcpu_id(s); } diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c index 1dc384c..1802ce0 100644 --- a/accel/tcg/tcg-all.c +++ b/accel/tcg/tcg-all.c @@ -124,7 +124,7 @@ static void tcg_accel_instance_init(Object *obj) static int tcg_init(MachineState *ms) { - TCGState *s = TCG_STATE(current_machine->accelerator); + TCGState *s = TCG_STATE(current_accel()); tcg_exec_init(s->tb_size * 1024 * 1024); cpu_interrupt_handler = tcg_handle_interrupt; diff --git a/memory.c b/memory.c index d7b9bb6..8547987 100644 --- a/memory.c +++ b/memory.c @@ -3104,7 +3104,7 @@ void mtree_info(bool flatview, bool dispatch_tree, bool owner) }; GArray *fv_address_spaces; GHashTable *views = g_hash_table_new(g_direct_hash, g_direct_equal); - AccelClass *ac = ACCEL_GET_CLASS(current_machine->accelerator); + AccelClass *ac = ACCEL_GET_CLASS(current_accel()); if (ac->has_memory) { fvi.ac = ac; diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c index 876184b..e3c580e 100644 --- a/target/arm/kvm64.c +++ b/target/arm/kvm64.c @@ -26,7 +26,6 @@ #include "sysemu/kvm.h" #include "sysemu/kvm_int.h" #include "kvm_arm.h" -#include "hw/boards.h" #include "internals.h" static bool have_guest_debug; @@ -613,14 +612,14 @@ bool kvm_arm_get_host_cpu_features(ARMHostCPUFeatures *ahcf) bool kvm_arm_aarch32_supported(CPUState *cpu) { - KVMState *s = KVM_STATE(current_machine->accelerator); + KVMState *s = KVM_STATE(current_accel()); return kvm_check_extension(s, KVM_CAP_ARM_EL1_32BIT); } bool kvm_arm_sve_supported(CPUState *cpu) { - KVMState *s = KVM_STATE(current_machine->accelerator); + KVMState *s = KVM_STATE(current_accel()); return kvm_check_extension(s, KVM_CAP_ARM_SVE); } diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 1b67090..6ef291d 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -149,7 +149,7 @@ bool kvm_allows_irq0_override(void) static bool kvm_x2apic_api_set_flags(uint64_t flags) { - KVMState *s = KVM_STATE(current_machine->accelerator); + KVMState *s = KVM_STATE(current_accel()); return !kvm_vm_enable_cap(s, KVM_CAP_X2APIC_API, 0, flags); } diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c index b5799e6..06fd0cc 100644 --- a/target/ppc/kvm.c +++ b/target/ppc/kvm.c @@ -258,7 +258,7 @@ static void kvm_get_smmu_info(struct kvm_ppc_smmu_info *info, Error **errp) struct ppc_radix_page_info *kvm_get_radix_page_info(void) { - KVMState *s = KVM_STATE(current_machine->accelerator); + KVMState *s = KVM_STATE(current_accel()); struct ppc_radix_page_info *radix_page_info; struct kvm_ppc_rmmu_info rmmu_info; int i; @@ -2907,7 +2907,7 @@ void kvmppc_svm_off(Error **errp) return; } - rc = kvm_vm_ioctl(KVM_STATE(current_machine->accelerator), KVM_PPC_SVM_OFF); + rc = kvm_vm_ioctl(KVM_STATE(current_accel()), KVM_PPC_SVM_OFF); if (rc && rc != -ENOTTY) { error_setg_errno(errp, -rc, "KVM_PPC_SVM_OFF ioctl failed"); } diff --git a/vl.c b/vl.c index 9f5f477..368dda1 100644 --- a/vl.c +++ b/vl.c @@ -2824,7 +2824,7 @@ static void configure_accelerators(const char *progname) } if (init_failed) { - AccelClass *ac = ACCEL_GET_CLASS(current_machine->accelerator); + AccelClass *ac = ACCEL_GET_CLASS(current_accel()); error_report("falling back to %s", ac->name); } From patchwork Thu Jan 23 13:50:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348603 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D1C44921 for ; Thu, 23 Jan 2020 16:13:21 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A7DEB2071E for ; Thu, 23 Jan 2020 16:13:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="U9IAP9OU" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A7DEB2071E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60126 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuf6e-0000Y8-CR for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:13:20 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52736) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctr-0000XI-Vv for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctq-0000Zm-R6 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:59 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:30839 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 1iuctq-0000Yy-OI for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:51:58 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787518; 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=FZUTqMJAVFiqA8/M+XBMhMoeNYbFbjZoeV4ynwzaloU=; b=U9IAP9OUeEwyynXc2sjl4cfyrH3ITXr9AkQymzcjEsNZAMMtVHJMQWKX6GNPJIhOi5DFuv TfO0HDpT0H3d7M2mhV42YR2Qo7Hxx3IXnYbfiugurdTB7UkwA5opYX4ebjbI03Y3+zrJc9 JxL4PcOj21N/JZF1PbodoGCviEhjZJo= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-241-RYEEZG6CP7mZ0xoVXLkuCw-1; Thu, 23 Jan 2020 08:51:57 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 65CA9802567 for ; Thu, 23 Jan 2020 13:51:56 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3A94785781; Thu, 23 Jan 2020 13:51:54 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 30/59] accel/tcg: Sanitize include path Date: Thu, 23 Jan 2020 14:50:20 +0100 Message-Id: <1579787449-27599-31-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: RYEEZG6CP7mZ0xoVXLkuCw-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé Commit af0440ae852 moved the qemu_tcg_configure() function, but introduced extraneous 'include/' in the includes path. As it is not necessary, remove it. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Cornelia Huck Message-Id: <20200121110349.25842-11-philmd@redhat.com> Signed-off-by: Paolo Bonzini --- accel/tcg/tcg-all.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c index 1802ce0..acfdcfd 100644 --- a/accel/tcg/tcg-all.c +++ b/accel/tcg/tcg-all.c @@ -31,9 +31,9 @@ #include "sysemu/cpus.h" #include "qemu/main-loop.h" #include "tcg/tcg.h" -#include "include/qapi/error.h" -#include "include/qemu/error-report.h" -#include "include/hw/boards.h" +#include "qapi/error.h" +#include "qemu/error-report.h" +#include "hw/boards.h" #include "qapi/qapi-builtin-visit.h" typedef struct TCGState { From patchwork Thu Jan 23 13:50:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348623 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A94726C1 for ; Thu, 23 Jan 2020 16:15:48 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7F7FC2071E for ; Thu, 23 Jan 2020 16:15:48 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="KN7tCV7C" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7F7FC2071E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60174 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuf91-0004J8-4F for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:15:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52777) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctw-0000dz-5E for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctv-0000gf-0c for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:03 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:38865 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 1iuctu-0000g4-U6 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787522; 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=NdJ666D4ydfuLy4ZZ2nFXzl8hR3J4CpdJaKV4OmG/Ok=; b=KN7tCV7COqaMBqdszP08YfsbzuDOs9KJS1e8GN5bz8zkqcQCkPKikvXTAAsNKc5/0XWNYo p0O6dLQSQcDH9F+BY2pItZalYTbx1R6HaFL4GCGstXWhkhA7lklV6ObS6nkM55n2dgqzrq ARh4xy+iTsDKrcp/aoQB42khsW03v5Q= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-342-aNQnZBdrOuusfQ1iA7llRQ-1; Thu, 23 Jan 2020 08:52:01 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 608558C272A for ; Thu, 23 Jan 2020 13:52:00 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id B88208882F; Thu, 23 Jan 2020 13:51:56 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 31/59] object: add extra sanity checks Date: Thu, 23 Jan 2020 14:50:21 +0100 Message-Id: <1579787449-27599-32-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: aNQnZBdrOuusfQ1iA7llRQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Type system checked that children class_size >= parent class_size, but not instances. Fix that. Signed-off-by: Marc-André Lureau Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20200110153039.1379601-2-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- qom/object.c | 1 + 1 file changed, 1 insertion(+) diff --git a/qom/object.c b/qom/object.c index 90155fa..dcb6863 100644 --- a/qom/object.c +++ b/qom/object.c @@ -307,6 +307,7 @@ static void type_initialize(TypeImpl *ti) int i; g_assert(parent->class_size <= ti->class_size); + g_assert(parent->instance_size <= ti->instance_size); memcpy(ti->class, parent->class, parent->class_size); ti->class->interfaces = NULL; ti->class->properties = g_hash_table_new_full( From patchwork Thu Jan 23 13:50:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348545 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7664E139A for ; Thu, 23 Jan 2020 16:00:11 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4C49A20704 for ; Thu, 23 Jan 2020 16:00:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="L37Dd17O" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4C49A20704 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:59930 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuett-0006Jo-Rr for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:00:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52818) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuctz-0000jV-K8 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucty-0000lq-HL for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:07 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:57282 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 1iucty-0000lb-EV for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:06 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787526; 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=uGtirKO2x8LatZcTwxQVCWV+j2GJli1ju0HnJOC/W14=; b=L37Dd17OvLRIDEZaaS0QnKdc37UFyza3kpiLEadxuqtCTdNLQvVEoNqSxlqEroGXgPFOJb hLtPBYTOsPq6iwa6J3pRO32Pg5q9p/rBx9XGBiZ9J35TTaBDikfjGUCzmUI08g5OT/KatL uWC0TYTuGVSZFyzk9BIQmkFS4m15XHo= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-326-aVF6WOm5PWGCm-LPmUCWiQ-1; Thu, 23 Jan 2020 08:52:02 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D6541101FE4B for ; Thu, 23 Jan 2020 13:52:01 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id D352684DBD; Thu, 23 Jan 2020 13:52:00 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 32/59] qdev: remove duplicated qdev_property_add_static() doc Date: Thu, 23 Jan 2020 14:50:22 +0100 Message-Id: <1579787449-27599-33-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: aVF6WOm5PWGCm-LPmUCWiQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau The function is already documented in the header. Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-3-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- hw/core/qdev.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 58e87d3..b47dc07 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -717,16 +717,6 @@ static void qdev_property_add_legacy(DeviceState *dev, Property *prop, g_free(name); } -/** - * qdev_property_add_static: - * @dev: Device to add the property to. - * @prop: The qdev property definition. - * @errp: location to store error information. - * - * Add a static QOM property to @dev for qdev property @prop. - * On error, store error in @errp. Static properties access data in a struct. - * The type of the QOM property is derived from prop->info. - */ void qdev_property_add_static(DeviceState *dev, Property *prop, Error **errp) { From patchwork Thu Jan 23 13:50:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348713 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7D137139A for ; Thu, 23 Jan 2020 16:52:17 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4FB6F214AF for ; Thu, 23 Jan 2020 16:52:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="eyM0R9Yf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4FB6F214AF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:32778 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufiJ-00013Q-TA for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:52:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52831) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucu0-0000lR-Nu for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuctz-0000mx-6q for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:08 -0500 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:47393 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 1iuctz-0000m5-3U for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787526; 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=sIDfpUAfjmb3GO2cMU5bNvUrPqrsqmxPRyHuEIvKml0=; b=eyM0R9YfPADl5wH01nu+lUYsnsCTIioqFuqw7yglIeYk3scRd5o1xLaHePgHgO1nwhwpSK rW6cZ0AgCr34irWoJXxhAfwHYqpQWbF4ySDhO/EyIIupwtLSrC4RoSU0xceAKmYgnNq4Rg ulYk+RalQUC739XvjJ2O1HmN4mClqCo= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-386-cE9VDBzTO3G_SOnexpkXKQ-1; Thu, 23 Jan 2020 08:52:04 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5F2FD9A289 for ; Thu, 23 Jan 2020 13:52:03 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 55FA085780; Thu, 23 Jan 2020 13:52:02 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 33/59] qdev: remove extraneous error Date: Thu, 23 Jan 2020 14:50:23 +0100 Message-Id: <1579787449-27599-34-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: cE9VDBzTO3G_SOnexpkXKQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau All callers use error_abort, and even the function itself calls with error_abort. Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-4-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- hw/core/qdev.c | 15 ++++----------- include/hw/qdev-properties.h | 3 +-- target/arm/cpu.c | 36 ++++++++++++------------------------ 3 files changed, 17 insertions(+), 37 deletions(-) diff --git a/hw/core/qdev.c b/hw/core/qdev.c index b47dc07..60aec8b 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -717,24 +717,17 @@ static void qdev_property_add_legacy(DeviceState *dev, Property *prop, g_free(name); } -void qdev_property_add_static(DeviceState *dev, Property *prop, - Error **errp) +void qdev_property_add_static(DeviceState *dev, Property *prop) { - Error *local_err = NULL; Object *obj = OBJECT(dev); if (prop->info->create) { - prop->info->create(obj, prop, &local_err); + prop->info->create(obj, prop, &error_abort); } else { object_property_add(obj, prop->name, prop->info->name, prop->info->get, prop->info->set, prop->info->release, - prop, &local_err); - } - - if (local_err) { - error_propagate(errp, local_err); - return; + prop, &error_abort); } object_property_set_description(obj, prop->name, @@ -989,7 +982,7 @@ static void device_initfn(Object *obj) do { for (prop = DEVICE_CLASS(class)->props; prop && prop->name; prop++) { qdev_property_add_legacy(dev, prop, &error_abort); - qdev_property_add_static(dev, prop, &error_abort); + qdev_property_add_static(dev, prop); } class = object_class_get_parent(class); } while (class != object_class_by_name(TYPE_DEVICE)); diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index a90a9ce..906e697 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -253,13 +253,12 @@ void error_set_from_qdev_prop_error(Error **errp, int ret, DeviceState *dev, * qdev_property_add_static: * @dev: Device to add the property to. * @prop: The qdev property definition. - * @errp: location to store error information. * * Add a static QOM property to @dev for qdev property @prop. * On error, store error in @errp. Static properties access data in a struct. * The type of the QOM property is derived from prop->info. */ -void qdev_property_add_static(DeviceState *dev, Property *prop, Error **errp); +void qdev_property_add_static(DeviceState *dev, Property *prop); void qdev_alias_all_properties(DeviceState *target, Object *source); diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 411faaa..d161da8 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1104,26 +1104,22 @@ void arm_cpu_post_init(Object *obj) if (arm_feature(&cpu->env, ARM_FEATURE_CBAR) || arm_feature(&cpu->env, ARM_FEATURE_CBAR_RO)) { - qdev_property_add_static(DEVICE(obj), &arm_cpu_reset_cbar_property, - &error_abort); + qdev_property_add_static(DEVICE(obj), &arm_cpu_reset_cbar_property); } if (!arm_feature(&cpu->env, ARM_FEATURE_M)) { - qdev_property_add_static(DEVICE(obj), &arm_cpu_reset_hivecs_property, - &error_abort); + qdev_property_add_static(DEVICE(obj), &arm_cpu_reset_hivecs_property); } if (arm_feature(&cpu->env, ARM_FEATURE_AARCH64)) { - qdev_property_add_static(DEVICE(obj), &arm_cpu_rvbar_property, - &error_abort); + qdev_property_add_static(DEVICE(obj), &arm_cpu_rvbar_property); } if (arm_feature(&cpu->env, ARM_FEATURE_EL3)) { /* Add the has_el3 state CPU property only if EL3 is allowed. This will * prevent "has_el3" from existing on CPUs which cannot support EL3. */ - qdev_property_add_static(DEVICE(obj), &arm_cpu_has_el3_property, - &error_abort); + qdev_property_add_static(DEVICE(obj), &arm_cpu_has_el3_property); #ifndef CONFIG_USER_ONLY object_property_add_link(obj, "secure-memory", @@ -1136,8 +1132,7 @@ void arm_cpu_post_init(Object *obj) } if (arm_feature(&cpu->env, ARM_FEATURE_EL2)) { - qdev_property_add_static(DEVICE(obj), &arm_cpu_has_el2_property, - &error_abort); + qdev_property_add_static(DEVICE(obj), &arm_cpu_has_el2_property); } if (arm_feature(&cpu->env, ARM_FEATURE_PMU)) { @@ -1154,32 +1149,27 @@ void arm_cpu_post_init(Object *obj) if (arm_feature(&cpu->env, ARM_FEATURE_VFP)) { cpu->has_vfp = true; if (!kvm_enabled()) { - qdev_property_add_static(DEVICE(obj), &arm_cpu_has_vfp_property, - &error_abort); + qdev_property_add_static(DEVICE(obj), &arm_cpu_has_vfp_property); } } if (arm_feature(&cpu->env, ARM_FEATURE_NEON)) { cpu->has_neon = true; if (!kvm_enabled()) { - qdev_property_add_static(DEVICE(obj), &arm_cpu_has_neon_property, - &error_abort); + qdev_property_add_static(DEVICE(obj), &arm_cpu_has_neon_property); } } if (arm_feature(&cpu->env, ARM_FEATURE_M) && arm_feature(&cpu->env, ARM_FEATURE_THUMB_DSP)) { - qdev_property_add_static(DEVICE(obj), &arm_cpu_has_dsp_property, - &error_abort); + qdev_property_add_static(DEVICE(obj), &arm_cpu_has_dsp_property); } if (arm_feature(&cpu->env, ARM_FEATURE_PMSA)) { - qdev_property_add_static(DEVICE(obj), &arm_cpu_has_mpu_property, - &error_abort); + qdev_property_add_static(DEVICE(obj), &arm_cpu_has_mpu_property); if (arm_feature(&cpu->env, ARM_FEATURE_V7)) { qdev_property_add_static(DEVICE(obj), - &arm_cpu_pmsav7_dregion_property, - &error_abort); + &arm_cpu_pmsav7_dregion_property); } } @@ -1198,12 +1188,10 @@ void arm_cpu_post_init(Object *obj) NULL, NULL, &error_abort); } - qdev_property_add_static(DEVICE(obj), &arm_cpu_cfgend_property, - &error_abort); + qdev_property_add_static(DEVICE(obj), &arm_cpu_cfgend_property); if (arm_feature(&cpu->env, ARM_FEATURE_GENERIC_TIMER)) { - qdev_property_add_static(DEVICE(cpu), &arm_cpu_gt_cntfrq_property, - &error_abort); + qdev_property_add_static(DEVICE(cpu), &arm_cpu_gt_cntfrq_property); } } From patchwork Thu Jan 23 13:50:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348721 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8119F139A for ; Thu, 23 Jan 2020 16:55:38 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 56D7B21569 for ; Thu, 23 Jan 2020 16:55:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="hlqhzEN1" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 56D7B21569 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:32846 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuflY-0004tI-R6 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:55:36 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52845) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucu3-0000pV-Dm for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucu2-0000td-3f for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:11 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:34447 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 1iucu2-0000so-0L for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787529; 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=YakKicgq1yczgnsimWE5XO2RYGDnHLqN9vhs4Cs4jBM=; b=hlqhzEN1q8UeF8IlUPCnsIvguoxru5okssvQwU0KqCwsOUv3rYJi2IBYLU3UX0nOf51hwt YI7YUhPrnRxIPo92/8YFGAfOPxZfn9shf1avdYR//7dmiuqZuAnmybb9M7ELv+PACYvH4E kEgoUGN7kKfrI7JZ3lxp5m/ZvNwpzms= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-72-T-vPD1tuOUWiDPm9JLYyzA-1; Thu, 23 Jan 2020 08:52:08 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0FEB46C197 for ; Thu, 23 Jan 2020 13:52:07 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id D0B698575A; Thu, 23 Jan 2020 13:52:03 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 34/59] qdev: move helper function to monitor/misc Date: Thu, 23 Jan 2020 14:50:24 +0100 Message-Id: <1579787449-27599-35-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: T-vPD1tuOUWiDPm9JLYyzA-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Move the one-user function to the place it is being used. Signed-off-by: Marc-André Lureau Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20200110153039.1379601-5-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- hw/core/qdev.c | 26 -------------------------- include/hw/qdev-core.h | 2 -- monitor/misc.c | 26 ++++++++++++++++++++++++++ 3 files changed, 26 insertions(+), 28 deletions(-) diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 60aec8b..8708605 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -760,32 +760,6 @@ void qdev_alias_all_properties(DeviceState *target, Object *source) } while (class != object_class_by_name(TYPE_DEVICE)); } -static int qdev_add_hotpluggable_device(Object *obj, void *opaque) -{ - GSList **list = opaque; - DeviceState *dev = (DeviceState *)object_dynamic_cast(OBJECT(obj), - TYPE_DEVICE); - - if (dev == NULL) { - return 0; - } - - if (dev->realized && object_property_get_bool(obj, "hotpluggable", NULL)) { - *list = g_slist_append(*list, dev); - } - - return 0; -} - -GSList *qdev_build_hotpluggable_device_list(Object *peripheral) -{ - GSList *list = NULL; - - object_child_foreach(peripheral, qdev_add_hotpluggable_device, &list); - - return list; -} - static bool device_get_realized(Object *obj, Error **errp) { DeviceState *dev = DEVICE(obj); diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 1518495..6b0e7b2 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -457,8 +457,6 @@ extern bool qdev_hot_removed; char *qdev_get_dev_path(DeviceState *dev); -GSList *qdev_build_hotpluggable_device_list(Object *peripheral); - void qbus_set_hotplug_handler(BusState *bus, Object *handler, Error **errp); void qbus_set_bus_hotplug_handler(BusState *bus, Error **errp); diff --git a/monitor/misc.c b/monitor/misc.c index de1ca4d..4752150 100644 --- a/monitor/misc.c +++ b/monitor/misc.c @@ -1959,6 +1959,32 @@ void object_add_completion(ReadLineState *rs, int nb_args, const char *str) g_slist_free(list); } +static int qdev_add_hotpluggable_device(Object *obj, void *opaque) +{ + GSList **list = opaque; + DeviceState *dev = (DeviceState *)object_dynamic_cast(OBJECT(obj), + TYPE_DEVICE); + + if (dev == NULL) { + return 0; + } + + if (dev->realized && object_property_get_bool(obj, "hotpluggable", NULL)) { + *list = g_slist_append(*list, dev); + } + + return 0; +} + +static GSList *qdev_build_hotpluggable_device_list(Object *peripheral) +{ + GSList *list = NULL; + + object_child_foreach(peripheral, qdev_add_hotpluggable_device, &list); + + return list; +} + static void peripheral_device_del_completion(ReadLineState *rs, const char *str, size_t len) { From patchwork Thu Jan 23 13:50:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348731 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CBCEC13A4 for ; Thu, 23 Jan 2020 16:58:46 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 90F8F21D7E for ; Thu, 23 Jan 2020 16:58:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="GJVXT4Ak" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 90F8F21D7E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:32866 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufob-000855-65 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:58:45 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52859) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucu4-0000rV-G0 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucu3-0000uv-EJ for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:12 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:59449 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 1iucu3-0000uh-Bn for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:11 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787531; 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=Z5XFGQqk7sa0oFK95YMlOz0cT3ZBKnoL8H8zBBcszCI=; b=GJVXT4Akb7TdkbIoyv/GmCipGErG76ieJDOPAGGZnttSTEE8aK+AC5LUt4v7PhI8afd0MG crdZrSqsrwyA8rbPXYkEaQKBUrKzu9145VsMPol4ClkJ6x26NOkh1f5gs95opjFlP1I/rr 981HGOXYf3tSh5/yizsutqOmr4tHZHQ= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-71-rTLGWIa7Mk20VPn43uRbaQ-1; Thu, 23 Jan 2020 08:52:09 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 87F5063AD9 for ; Thu, 23 Jan 2020 13:52:08 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 80C4884DBD; Thu, 23 Jan 2020 13:52:07 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 35/59] object: avoid extra class property key duplication Date: Thu, 23 Jan 2020 14:50:25 +0100 Message-Id: <1579787449-27599-36-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: rTLGWIa7Mk20VPn43uRbaQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Like object properties, no need to duplicate property name, as it is owned already by ObjectProperty value. Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-6-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- qom/object.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qom/object.c b/qom/object.c index dcb6863..e921363 100644 --- a/qom/object.c +++ b/qom/object.c @@ -311,7 +311,7 @@ static void type_initialize(TypeImpl *ti) memcpy(ti->class, parent->class, parent->class_size); ti->class->interfaces = NULL; ti->class->properties = g_hash_table_new_full( - g_str_hash, g_str_equal, g_free, object_property_free); + g_str_hash, g_str_equal, NULL, object_property_free); for (e = parent->class->interfaces; e; e = e->next) { InterfaceClass *iface = e->data; @@ -343,7 +343,7 @@ static void type_initialize(TypeImpl *ti) } } else { ti->class->properties = g_hash_table_new_full( - g_str_hash, g_str_equal, g_free, object_property_free); + g_str_hash, g_str_equal, NULL, object_property_free); } ti->class->type = ti; @@ -1187,7 +1187,7 @@ object_class_property_add(ObjectClass *klass, prop->release = release; prop->opaque = opaque; - g_hash_table_insert(klass->properties, g_strdup(name), prop); + g_hash_table_insert(klass->properties, prop->name, prop); return prop; } From patchwork Thu Jan 23 13:50:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348633 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 89612139A for ; Thu, 23 Jan 2020 16:18:57 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5E02F2071E for ; Thu, 23 Jan 2020 16:18:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="W5bbElw6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5E02F2071E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60224 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufC3-0008Nf-VN for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:18:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52874) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucu5-0000tY-OW for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucu4-0000wp-JD for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:13 -0500 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:46101 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 1iucu4-0000wT-GG for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787532; 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=EcS9avS7KL2nNo2Qs4sJPKqyNXTWAkkAQQ0V0ViLEnk=; b=W5bbElw6YNTetVF95LadHH7uD7eItkVckiZsPq2HZD4NCksA0iEBiOr/8yOsd1XedrFnUi ASHmJLlRUMCjNR4UgezoDldJtDWZLFAuNbXqCE8ElRI2HrmBuZLMmXxsfHy8vtZ4d225Ur 7axMZ68mQ4dtfs56saF8d29kVO1JKtU= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-378-W1LmqmWEO2W7JVWi6-L9Lg-1; Thu, 23 Jan 2020 08:52:10 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0C3F01080D51 for ; Thu, 23 Jan 2020 13:52:10 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 063B585780; Thu, 23 Jan 2020 13:52:08 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 36/59] object: add class property initializer Date: Thu, 23 Jan 2020 14:50:26 +0100 Message-Id: <1579787449-27599-37-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: W1LmqmWEO2W7JVWi6-L9Lg-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau This callback is used to set default value in following patch "object: add object_property_set_defaut_{bool,str,int,uint}()". Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-7-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- include/qom/object.h | 16 ++++++++++++++-- qom/object.c | 14 ++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index 54a5488..29f47d3 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -309,6 +309,8 @@ typedef struct InterfaceInfo InterfaceInfo; */ +typedef struct ObjectProperty ObjectProperty; + /** * ObjectPropertyAccessor: * @obj: the object that owns the property @@ -356,7 +358,16 @@ typedef void (ObjectPropertyRelease)(Object *obj, const char *name, void *opaque); -typedef struct ObjectProperty +/** + * ObjectPropertyInit: + * @obj: the object that owns the property + * @prop: the property to set + * + * Called when a property is initialized. + */ +typedef void (ObjectPropertyInit)(Object *obj, ObjectProperty *prop); + +struct ObjectProperty { gchar *name; gchar *type; @@ -365,8 +376,9 @@ typedef struct ObjectProperty ObjectPropertyAccessor *set; ObjectPropertyResolve *resolve; ObjectPropertyRelease *release; + ObjectPropertyInit *init; void *opaque; -} ObjectProperty; +}; /** * ObjectUnparent: diff --git a/qom/object.c b/qom/object.c index e921363..cd7ce81 100644 --- a/qom/object.c +++ b/qom/object.c @@ -478,6 +478,19 @@ void object_apply_compat_props(Object *obj) } } +static void object_class_property_init_all(Object *obj) +{ + ObjectPropertyIterator iter; + ObjectProperty *prop; + + object_class_property_iter_init(&iter, object_get_class(obj)); + while ((prop = object_property_iter_next(&iter))) { + if (prop->init) { + prop->init(obj, prop); + } + } +} + static void object_initialize_with_type(void *data, size_t size, TypeImpl *type) { Object *obj = data; @@ -491,6 +504,7 @@ static void object_initialize_with_type(void *data, size_t size, TypeImpl *type) memset(obj, 0, type->instance_size); obj->class = type->class; object_ref(obj); + object_class_property_init_all(obj); obj->properties = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, object_property_free); object_init_with_type(obj, type); From patchwork Thu Jan 23 13:50:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348557 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4DA1B1398 for ; Thu, 23 Jan 2020 16:03:26 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 12C65214AF for ; Thu, 23 Jan 2020 16:03:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="iQs/G6Gm" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 12C65214AF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:59982 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuex2-0001Uy-JU for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:03:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52899) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucu8-0000xf-9Y for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucu6-0000zc-Gs for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:16 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:24188 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 1iucu6-0000z4-C3 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787534; 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=Cxjukf8dwnJmXEIJ5SE66uhpu+tjG3UeTYibKiR6zJ0=; b=iQs/G6GmZwBnqgUaX2nhV4htLl0b9ZZhRB+2PwMo19bPbi3V88XsFU2XRsv08w501ptmgC M4xFiYIExjQhNyYRnqzlLccCudT5o9ou76EqcFfEiogiq4Qe8C011dhV0fHA5UOTdrcda+ NfS0MOwJNw5QTUXx8we1+UFw7tLSATk= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-183-rB4ossySONSd-l7c9hD9Bw-1; Thu, 23 Jan 2020 08:52:12 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7058C1080D76 for ; Thu, 23 Jan 2020 13:52:11 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7EB1D1CB; Thu, 23 Jan 2020 13:52:10 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 37/59] object: make object_class_property_add* return property Date: Thu, 23 Jan 2020 14:50:27 +0100 Message-Id: <1579787449-27599-38-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: rB4ossySONSd-l7c9hD9Bw-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau This will help calling other ObjectProperty associated functions easily after. Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-9-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- include/qom/object.h | 24 +++++++++++++------- qom/object.c | 64 ++++++++++++++++++++++++++++++++++++---------------- 2 files changed, 60 insertions(+), 28 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index 29f47d3..afe658c 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1539,7 +1539,8 @@ void object_property_add_str(Object *obj, const char *name, void (*set)(Object *, const char *, Error **), Error **errp); -void object_class_property_add_str(ObjectClass *klass, const char *name, +ObjectProperty *object_class_property_add_str(ObjectClass *klass, + const char *name, char *(*get)(Object *, Error **), void (*set)(Object *, const char *, Error **), @@ -1561,7 +1562,8 @@ void object_property_add_bool(Object *obj, const char *name, void (*set)(Object *, bool, Error **), Error **errp); -void object_class_property_add_bool(ObjectClass *klass, const char *name, +ObjectProperty *object_class_property_add_bool(ObjectClass *klass, + const char *name, bool (*get)(Object *, Error **), void (*set)(Object *, bool, Error **), Error **errp); @@ -1585,7 +1587,8 @@ void object_property_add_enum(Object *obj, const char *name, void (*set)(Object *, int, Error **), Error **errp); -void object_class_property_add_enum(ObjectClass *klass, const char *name, +ObjectProperty *object_class_property_add_enum(ObjectClass *klass, + const char *name, const char *typename, const QEnumLookup *lookup, int (*get)(Object *, Error **), @@ -1606,7 +1609,8 @@ void object_property_add_tm(Object *obj, const char *name, void (*get)(Object *, struct tm *, Error **), Error **errp); -void object_class_property_add_tm(ObjectClass *klass, const char *name, +ObjectProperty *object_class_property_add_tm(ObjectClass *klass, + const char *name, void (*get)(Object *, struct tm *, Error **), Error **errp); @@ -1622,7 +1626,8 @@ void object_class_property_add_tm(ObjectClass *klass, const char *name, */ void object_property_add_uint8_ptr(Object *obj, const char *name, const uint8_t *v, Error **errp); -void object_class_property_add_uint8_ptr(ObjectClass *klass, const char *name, +ObjectProperty *object_class_property_add_uint8_ptr(ObjectClass *klass, + const char *name, const uint8_t *v, Error **errp); /** @@ -1637,7 +1642,8 @@ void object_class_property_add_uint8_ptr(ObjectClass *klass, const char *name, */ void object_property_add_uint16_ptr(Object *obj, const char *name, const uint16_t *v, Error **errp); -void object_class_property_add_uint16_ptr(ObjectClass *klass, const char *name, +ObjectProperty *object_class_property_add_uint16_ptr(ObjectClass *klass, + const char *name, const uint16_t *v, Error **errp); /** @@ -1652,7 +1658,8 @@ void object_class_property_add_uint16_ptr(ObjectClass *klass, const char *name, */ void object_property_add_uint32_ptr(Object *obj, const char *name, const uint32_t *v, Error **errp); -void object_class_property_add_uint32_ptr(ObjectClass *klass, const char *name, +ObjectProperty *object_class_property_add_uint32_ptr(ObjectClass *klass, + const char *name, const uint32_t *v, Error **errp); /** @@ -1667,7 +1674,8 @@ void object_class_property_add_uint32_ptr(ObjectClass *klass, const char *name, */ void object_property_add_uint64_ptr(Object *obj, const char *name, const uint64_t *v, Error **errp); -void object_class_property_add_uint64_ptr(ObjectClass *klass, const char *name, +ObjectProperty *object_class_property_add_uint64_ptr(ObjectClass *klass, + const char *name, const uint64_t *v, Error **errp); /** diff --git a/qom/object.c b/qom/object.c index cd7ce81..4ade409 100644 --- a/qom/object.c +++ b/qom/object.c @@ -2065,7 +2065,8 @@ void object_property_add_str(Object *obj, const char *name, } } -void object_class_property_add_str(ObjectClass *klass, const char *name, +ObjectProperty * +object_class_property_add_str(ObjectClass *klass, const char *name, char *(*get)(Object *, Error **), void (*set)(Object *, const char *, Error **), @@ -2073,11 +2074,12 @@ void object_class_property_add_str(ObjectClass *klass, const char *name, { Error *local_err = NULL; StringProperty *prop = g_malloc0(sizeof(*prop)); + ObjectProperty *rv; prop->get = get; prop->set = set; - object_class_property_add(klass, name, "string", + rv = object_class_property_add(klass, name, "string", get ? property_get_str : NULL, set ? property_set_str : NULL, property_release_str, @@ -2086,6 +2088,8 @@ void object_class_property_add_str(ObjectClass *klass, const char *name, error_propagate(errp, local_err); g_free(prop); } + + return rv; } typedef struct BoolProperty @@ -2155,18 +2159,20 @@ void object_property_add_bool(Object *obj, const char *name, } } -void object_class_property_add_bool(ObjectClass *klass, const char *name, +ObjectProperty * +object_class_property_add_bool(ObjectClass *klass, const char *name, bool (*get)(Object *, Error **), void (*set)(Object *, bool, Error **), Error **errp) { Error *local_err = NULL; BoolProperty *prop = g_malloc0(sizeof(*prop)); + ObjectProperty *rv; prop->get = get; prop->set = set; - object_class_property_add(klass, name, "bool", + rv = object_class_property_add(klass, name, "bool", get ? property_get_bool : NULL, set ? property_set_bool : NULL, property_release_bool, @@ -2175,6 +2181,8 @@ void object_class_property_add_bool(ObjectClass *klass, const char *name, error_propagate(errp, local_err); g_free(prop); } + + return rv; } static void property_get_enum(Object *obj, Visitor *v, const char *name, @@ -2240,7 +2248,8 @@ void object_property_add_enum(Object *obj, const char *name, } } -void object_class_property_add_enum(ObjectClass *klass, const char *name, +ObjectProperty * +object_class_property_add_enum(ObjectClass *klass, const char *name, const char *typename, const QEnumLookup *lookup, int (*get)(Object *, Error **), @@ -2249,12 +2258,13 @@ void object_class_property_add_enum(ObjectClass *klass, const char *name, { Error *local_err = NULL; EnumProperty *prop = g_malloc(sizeof(*prop)); + ObjectProperty *rv; prop->lookup = lookup; prop->get = get; prop->set = set; - object_class_property_add(klass, name, typename, + rv = object_class_property_add(klass, name, typename, get ? property_get_enum : NULL, set ? property_set_enum : NULL, property_release_enum, @@ -2263,6 +2273,8 @@ void object_class_property_add_enum(ObjectClass *klass, const char *name, error_propagate(errp, local_err); g_free(prop); } + + return rv; } typedef struct TMProperty { @@ -2343,16 +2355,18 @@ void object_property_add_tm(Object *obj, const char *name, } } -void object_class_property_add_tm(ObjectClass *klass, const char *name, +ObjectProperty * +object_class_property_add_tm(ObjectClass *klass, const char *name, void (*get)(Object *, struct tm *, Error **), Error **errp) { Error *local_err = NULL; TMProperty *prop = g_malloc0(sizeof(*prop)); + ObjectProperty *rv; prop->get = get; - object_class_property_add(klass, name, "struct tm", + rv = object_class_property_add(klass, name, "struct tm", get ? property_get_tm : NULL, NULL, property_release_tm, prop, &local_err); @@ -2360,6 +2374,8 @@ void object_class_property_add_tm(ObjectClass *klass, const char *name, error_propagate(errp, local_err); g_free(prop); } + + return rv; } static char *qdev_get_type(Object *obj, Error **errp) @@ -2402,11 +2418,13 @@ void object_property_add_uint8_ptr(Object *obj, const char *name, NULL, NULL, (void *)v, errp); } -void object_class_property_add_uint8_ptr(ObjectClass *klass, const char *name, +ObjectProperty * +object_class_property_add_uint8_ptr(ObjectClass *klass, const char *name, const uint8_t *v, Error **errp) { - object_class_property_add(klass, name, "uint8", property_get_uint8_ptr, - NULL, NULL, (void *)v, errp); + return object_class_property_add(klass, name, "uint8", + property_get_uint8_ptr, + NULL, NULL, (void *)v, errp); } void object_property_add_uint16_ptr(Object *obj, const char *name, @@ -2416,11 +2434,13 @@ void object_property_add_uint16_ptr(Object *obj, const char *name, NULL, NULL, (void *)v, errp); } -void object_class_property_add_uint16_ptr(ObjectClass *klass, const char *name, +ObjectProperty * +object_class_property_add_uint16_ptr(ObjectClass *klass, const char *name, const uint16_t *v, Error **errp) { - object_class_property_add(klass, name, "uint16", property_get_uint16_ptr, - NULL, NULL, (void *)v, errp); + return object_class_property_add(klass, name, "uint16", + property_get_uint16_ptr, + NULL, NULL, (void *)v, errp); } void object_property_add_uint32_ptr(Object *obj, const char *name, @@ -2430,11 +2450,13 @@ void object_property_add_uint32_ptr(Object *obj, const char *name, NULL, NULL, (void *)v, errp); } -void object_class_property_add_uint32_ptr(ObjectClass *klass, const char *name, +ObjectProperty * +object_class_property_add_uint32_ptr(ObjectClass *klass, const char *name, const uint32_t *v, Error **errp) { - object_class_property_add(klass, name, "uint32", property_get_uint32_ptr, - NULL, NULL, (void *)v, errp); + return object_class_property_add(klass, name, "uint32", + property_get_uint32_ptr, + NULL, NULL, (void *)v, errp); } void object_property_add_uint64_ptr(Object *obj, const char *name, @@ -2444,11 +2466,13 @@ void object_property_add_uint64_ptr(Object *obj, const char *name, NULL, NULL, (void *)v, errp); } -void object_class_property_add_uint64_ptr(ObjectClass *klass, const char *name, +ObjectProperty * +object_class_property_add_uint64_ptr(ObjectClass *klass, const char *name, const uint64_t *v, Error **errp) { - object_class_property_add(klass, name, "uint64", property_get_uint64_ptr, - NULL, NULL, (void *)v, errp); + return object_class_property_add(klass, name, "uint64", + property_get_uint64_ptr, + NULL, NULL, (void *)v, errp); } typedef struct { From patchwork Thu Jan 23 13:50:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348759 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 442EB92A for ; Thu, 23 Jan 2020 17:02:35 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 18DD42071E for ; Thu, 23 Jan 2020 17:02:34 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="UZ7rnfsE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 18DD42071E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:32966 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufsH-000449-QC for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 12:02:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52907) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucu8-0000yV-PX for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucu7-00012f-P7 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:16 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:44723 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 1iucu7-00012D-MK for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:15 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787535; 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=Gtlhalq0fbK5m4my9MiVYhdXV3346mpyFNYm5Qsi5uc=; b=UZ7rnfsExxae89+iY2Uk4/NO4Sc0th9lbWujF7clCV6/s1PWxCH18KsbVQkeq0APm1H+oH DLqrhbYySuaR1WEbrKmPJvytcMz0y0sQZ0ES/MKQE9pCYgs6fgh0CkFCEWMQ45J2BO9yjg fXMkGnRdjWFFD8UPxQ06LpsgzU4T1Wo= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-436-Buzxx_PIP-yhXfKKUjoIvg-1; Thu, 23 Jan 2020 08:52:13 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id DD0FE100F0E7 for ; Thu, 23 Jan 2020 13:52:12 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id D8A691CB; Thu, 23 Jan 2020 13:52:11 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 38/59] qstring: add qstring_free() Date: Thu, 23 Jan 2020 14:50:28 +0100 Message-Id: <1579787449-27599-39-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: Buzxx_PIP-yhXfKKUjoIvg-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Similar to g_string_free(), optionally return the underlying char*. Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-10-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- include/qapi/qmp/qstring.h | 1 + qobject/qstring.c | 27 ++++++++++++++++++++++----- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/include/qapi/qmp/qstring.h b/include/qapi/qmp/qstring.h index 3e83e3a..e2e356e 100644 --- a/include/qapi/qmp/qstring.h +++ b/include/qapi/qmp/qstring.h @@ -33,6 +33,7 @@ void qstring_append_int(QString *qstring, int64_t value); void qstring_append(QString *qstring, const char *str); void qstring_append_chr(QString *qstring, int c); bool qstring_is_equal(const QObject *x, const QObject *y); +char *qstring_free(QString *qstring, bool return_str); void qstring_destroy_obj(QObject *obj); #endif /* QSTRING_H */ diff --git a/qobject/qstring.c b/qobject/qstring.c index 1c6897d..b66a2c3 100644 --- a/qobject/qstring.c +++ b/qobject/qstring.c @@ -150,15 +150,32 @@ bool qstring_is_equal(const QObject *x, const QObject *y) } /** + * qstring_free(): Free the memory allocated by a QString object + * + * Return: if @return_str, return the underlying string, to be + * g_free(), otherwise NULL is returned. + */ +char *qstring_free(QString *qstring, bool return_str) +{ + char *rv = NULL; + + if (return_str) { + rv = qstring->string; + } else { + g_free(qstring->string); + } + + g_free(qstring); + + return rv; +} + +/** * qstring_destroy_obj(): Free all memory allocated by a QString * object */ void qstring_destroy_obj(QObject *obj) { - QString *qs; - assert(obj != NULL); - qs = qobject_to(QString, obj); - g_free(qs->string); - g_free(qs); + qstring_free(qobject_to(QString, obj), FALSE); } From patchwork Thu Jan 23 13:50:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348817 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8A61E13A4 for ; Thu, 23 Jan 2020 17:23:22 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5FF1021569 for ; Thu, 23 Jan 2020 17:23:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Pvi0GXzg" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5FF1021569 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:33334 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iugCP-0004PE-Bn for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 12:23:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52926) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuA-000120-Si for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucu9-00014q-Gp for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:18 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:28084 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 1iucu9-00014Q-D7 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787537; 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=Lru7EtjHaEqMeItb4R9+tzTA7eHFGIwJYyGXegiVPeE=; b=Pvi0GXzgk+q8PmmmeakzdkOu3e8wDK4w+uiE0fOtrQtFbxDMOnHBHROewzaKwCL046u+od PIkrlYGjgeAGGfOguS3ewDG+38sfeVnVn48ZpOPNtb4er8l+2A/Sp0JsJy92fs5AHliLsG ihhI9fInXkY1Y5ztuZs9ErYsu/2x6DY= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-377-2GIZirLdNfCS80pqO_Gweg-1; Thu, 23 Jan 2020 08:52:15 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 6032E100F107 for ; Thu, 23 Jan 2020 13:52:14 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5AC1C8575C; Thu, 23 Jan 2020 13:52:13 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 39/59] object: add object_property_set_default Date: Thu, 23 Jan 2020 14:50:29 +0100 Message-Id: <1579787449-27599-40-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: 2GIZirLdNfCS80pqO_Gweg-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Add a default value to ObjectProperty and an implementation of ObjectPropertyInit that uses it. This will make it easier to show the default in help messages. Also provide convenience functions object_property_set_default_{bool, str, int, uint}(). Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-11-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- include/qom/object.h | 37 +++++++++++++++++++++++++++++++++++++ qom/object.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) diff --git a/include/qom/object.h b/include/qom/object.h index afe658c..82cf20f 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -378,6 +378,7 @@ struct ObjectProperty ObjectPropertyRelease *release; ObjectPropertyInit *init; void *opaque; + QObject *defval; }; /** @@ -1056,6 +1057,42 @@ ObjectProperty *object_class_property_add(ObjectClass *klass, const char *name, void *opaque, Error **errp); /** + * object_property_set_default_bool: + * @prop: the property to set + * @value: the value to be written to the property + * + * Set the property default value. + */ +void object_property_set_default_bool(ObjectProperty *prop, bool value); + +/** + * object_property_set_default_str: + * @prop: the property to set + * @value: the value to be written to the property + * + * Set the property default value. + */ +void object_property_set_default_str(ObjectProperty *prop, const char *value); + +/** + * object_property_set_default_int: + * @prop: the property to set + * @value: the value to be written to the property + * + * Set the property default value. + */ +void object_property_set_default_int(ObjectProperty *prop, int64_t value); + +/** + * object_property_set_default_uint: + * @prop: the property to set + * @value: the value to be written to the property + * + * Set the property default value. + */ +void object_property_set_default_uint(ObjectProperty *prop, uint64_t value); + +/** * object_property_find: * @obj: the object * @name: the name of the property diff --git a/qom/object.c b/qom/object.c index 4ade409..2d29019 100644 --- a/qom/object.c +++ b/qom/object.c @@ -19,8 +19,10 @@ #include "qapi/visitor.h" #include "qapi/string-input-visitor.h" #include "qapi/string-output-visitor.h" +#include "qapi/qobject-input-visitor.h" #include "qapi/qapi-builtin-visit.h" #include "qapi/qmp/qerror.h" +#include "qapi/qmp/qjson.h" #include "trace.h" /* TODO: replace QObject with a simpler visitor to avoid a dependency @@ -268,6 +270,10 @@ static void object_property_free(gpointer data) { ObjectProperty *prop = data; + if (prop->defval) { + qobject_unref(prop->defval); + prop->defval = NULL; + } g_free(prop->name); g_free(prop->type); g_free(prop->description); @@ -1438,6 +1444,45 @@ int64_t object_property_get_int(Object *obj, const char *name, return retval; } +static void object_property_init_defval(Object *obj, ObjectProperty *prop) +{ + Visitor *v = qobject_input_visitor_new(prop->defval); + + assert(prop->set != NULL); + prop->set(obj, v, prop->name, prop->opaque, &error_abort); + + visit_free(v); +} + +static void object_property_set_default(ObjectProperty *prop, QObject *defval) +{ + assert(!prop->defval); + assert(!prop->init); + + prop->defval = defval; + prop->init = object_property_init_defval; +} + +void object_property_set_default_bool(ObjectProperty *prop, bool value) +{ + object_property_set_default(prop, QOBJECT(qbool_from_bool(value))); +} + +void object_property_set_default_str(ObjectProperty *prop, const char *value) +{ + object_property_set_default(prop, QOBJECT(qstring_from_str(value))); +} + +void object_property_set_default_int(ObjectProperty *prop, int64_t value) +{ + object_property_set_default(prop, QOBJECT(qnum_from_int(value))); +} + +void object_property_set_default_uint(ObjectProperty *prop, uint64_t value) +{ + object_property_set_default(prop, QOBJECT(qnum_from_uint(value))); +} + void object_property_set_uint(Object *obj, uint64_t value, const char *name, Error **errp) { @@ -2549,6 +2594,9 @@ void object_property_add_alias(Object *obj, const char *name, goto out; } op->resolve = property_resolve_alias; + if (target_prop->defval) { + op->defval = qobject_ref(target_prop->defval); + } object_property_set_description(obj, op->name, target_prop->description, From patchwork Thu Jan 23 13:50:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348787 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B397892A for ; Thu, 23 Jan 2020 17:05:45 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 52E5B2071E for ; Thu, 23 Jan 2020 17:05:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="EUzPoaXk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 52E5B2071E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:33014 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufvL-00082O-5G for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 12:05:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52946) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuE-000177-6C for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucuD-00019i-3H for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:22 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:23312 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 1iucuC-00019Y-WA for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:21 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787540; 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=de9QrPkRWGGC7NfeGWGFAsbrfkEMdZgdrwJ20cK3IrI=; b=EUzPoaXkvvKfTUgs5BNn4/uBImuUw2L8gfdOOfQp6EkoU4LzeUI1C0oot03F8giBsp92BN FPKT9VImgYw52fBkzNEAjD7xwTNxyWc6E0nK16reuhIqpCYZwkquzGA4Kn8AGAjC8/9+KV yrD3QR8GJduQr4pf/XWnxutPQwjZbKA= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-347-36Hd2ofsNsyiU4XqaIt2-A-1; Thu, 23 Jan 2020 08:52:19 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 213C08010F7 for ; Thu, 23 Jan 2020 13:52:18 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id D2C2F1CB; Thu, 23 Jan 2020 13:52:14 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 40/59] object: do not free class properties Date: Thu, 23 Jan 2020 14:50:30 +0100 Message-Id: <1579787449-27599-41-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: 36Hd2ofsNsyiU4XqaIt2-A-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau The release callback is called during object_property_del_all(), on a live instance. But class properties are common among all instances. It is not currently called, because we don't release classes, but it would not be correct if we did. Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-12-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- qom/object.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/qom/object.c b/qom/object.c index 2d29019..864281e 100644 --- a/qom/object.c +++ b/qom/object.c @@ -2127,7 +2127,7 @@ object_class_property_add_str(ObjectClass *klass, const char *name, rv = object_class_property_add(klass, name, "string", get ? property_get_str : NULL, set ? property_set_str : NULL, - property_release_str, + NULL, prop, &local_err); if (local_err) { error_propagate(errp, local_err); @@ -2220,7 +2220,7 @@ object_class_property_add_bool(ObjectClass *klass, const char *name, rv = object_class_property_add(klass, name, "bool", get ? property_get_bool : NULL, set ? property_set_bool : NULL, - property_release_bool, + NULL, prop, &local_err); if (local_err) { error_propagate(errp, local_err); @@ -2312,7 +2312,7 @@ object_class_property_add_enum(ObjectClass *klass, const char *name, rv = object_class_property_add(klass, name, typename, get ? property_get_enum : NULL, set ? property_set_enum : NULL, - property_release_enum, + NULL, prop, &local_err); if (local_err) { error_propagate(errp, local_err); @@ -2413,7 +2413,7 @@ object_class_property_add_tm(ObjectClass *klass, const char *name, rv = object_class_property_add(klass, name, "struct tm", get ? property_get_tm : NULL, NULL, - property_release_tm, + NULL, prop, &local_err); if (local_err) { error_propagate(errp, local_err); From patchwork Thu Jan 23 13:50:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348567 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9F2E91398 for ; Thu, 23 Jan 2020 16:06:31 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 754CE214AF for ; Thu, 23 Jan 2020 16:06:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="XvhNFO55" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 754CE214AF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60026 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuf02-00069U-32 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:06:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52970) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuH-0001Br-1k for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucuF-0001CX-UQ for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:24 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:51129 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 1iucuF-0001CL-Qv for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787543; 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=XnRGK7uSDf4Aas8Cqy6y28fC3ipmSv9T3ctkKMWSkDk=; b=XvhNFO55PzsXNhSzTR8Jx9KA2XXCTPxJg025HmBzQ8XM0HymKfo3FJQ2mbR7yL1PDszCzi /sJXnX4ITwJq1ctPWxBArXdjh87i28Mdp0jfBwix0tZoP9n/nNZ2ohlhnH+jZueYAS580y IMWb5UYQ7AvSKkzlCPINleT5moEsaNs= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-88-DG2gGcnfNu2q3EUS2mhGJA-1; Thu, 23 Jan 2020 08:52:20 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 989E7802C81 for ; Thu, 23 Jan 2020 13:52:19 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 95A248575C; Thu, 23 Jan 2020 13:52:18 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 41/59] object: check strong flag with & Date: Thu, 23 Jan 2020 14:50:31 +0100 Message-Id: <1579787449-27599-42-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: DG2gGcnfNu2q3EUS2mhGJA-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau The following patch is going to introduce more flags. Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-13-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- qom/object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qom/object.c b/qom/object.c index 864281e..d7974e9 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1806,7 +1806,7 @@ static void object_set_link_property(Object *obj, Visitor *v, } *child = new_target; - if (prop->flags == OBJ_PROP_LINK_STRONG) { + if (prop->flags & OBJ_PROP_LINK_STRONG) { object_ref(new_target); object_unref(old_target); } From patchwork Thu Jan 23 13:50:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348579 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A4DC5139A for ; Thu, 23 Jan 2020 16:08:44 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7B84421835 for ; Thu, 23 Jan 2020 16:08:44 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="imRfnAZJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7B84421835 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60060 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuf2B-0001rg-0Z for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:08:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52978) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuH-0001Cj-NQ for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucuG-0001Cp-8V for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:25 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:49572 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 1iucuG-0001Cb-4o for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:24 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787543; 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=DTG8VVGuS/GFxBzkknwG9vv5It3iTI/wRfmZdKp/48U=; b=imRfnAZJlhun9pbnW5yX51uqtopixRk7Rkx2ASfyDKTwifY5KRHbHz8bl7RI8H9agAbL/3 ZHmjFffubp+bo0wpScn39WDOftn6/+OTvKwrBUvgXmFxoY6ysHsuoBROeMbUGZv3ubvtuw zhUTShwPJ837xCTB/8MjsDNkri0D65Q= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-235-x6rp8K5xM9CDoGJiO99G0w-1; Thu, 23 Jan 2020 08:52:22 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2245D7A479 for ; Thu, 23 Jan 2020 13:52:21 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1C6A71CB; Thu, 23 Jan 2020 13:52:19 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 42/59] object: rename link "child" to "target" Date: Thu, 23 Jan 2020 14:50:32 +0100 Message-Id: <1579787449-27599-43-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: x6rp8K5xM9CDoGJiO99G0w-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau A child property is a different kind of property. Let's use "target" for the link target. Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-14-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- include/qom/object.h | 4 ++-- qom/object.c | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index 82cf20f..a163adc 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1528,7 +1528,7 @@ void object_property_allow_set_link(const Object *, const char *, * @obj: the object to add a property to * @name: the name of the property * @type: the qobj type of the link - * @child: a pointer to where the link object reference is stored + * @targetp: a pointer to where the link object reference is stored * @check: callback to veto setting or NULL if the property is read-only * @flags: additional options for the link * @errp: if an error occurs, a pointer to an area to store the error @@ -1553,7 +1553,7 @@ void object_property_allow_set_link(const Object *, const char *, * modified. */ void object_property_add_link(Object *obj, const char *name, - const char *type, Object **child, + const char *type, Object **targetp, void (*check)(const Object *obj, const char *name, Object *val, Error **errp), ObjectPropertyLinkFlags flags, diff --git a/qom/object.c b/qom/object.c index d7974e9..bb5b739 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1713,7 +1713,7 @@ void object_property_allow_set_link(const Object *obj, const char *name, } typedef struct { - Object **child; + Object **targetp; void (*check)(const Object *, const char *, Object *, Error **); ObjectPropertyLinkFlags flags; } LinkProperty; @@ -1723,11 +1723,11 @@ static void object_get_link_property(Object *obj, Visitor *v, Error **errp) { LinkProperty *lprop = opaque; - Object **child = lprop->child; + Object **targetp = lprop->targetp; gchar *path; - if (*child) { - path = object_get_canonical_path(*child); + if (*targetp) { + path = object_get_canonical_path(*targetp); visit_type_str(v, name, &path, errp); g_free(path); } else { @@ -1782,8 +1782,8 @@ static void object_set_link_property(Object *obj, Visitor *v, { Error *local_err = NULL; LinkProperty *prop = opaque; - Object **child = prop->child; - Object *old_target = *child; + Object **targetp = prop->targetp; + Object *old_target = *targetp; Object *new_target = NULL; char *path = NULL; @@ -1805,7 +1805,7 @@ static void object_set_link_property(Object *obj, Visitor *v, return; } - *child = new_target; + *targetp = new_target; if (prop->flags & OBJ_PROP_LINK_STRONG) { object_ref(new_target); object_unref(old_target); @@ -1816,7 +1816,7 @@ static Object *object_resolve_link_property(Object *parent, void *opaque, const { LinkProperty *lprop = opaque; - return *lprop->child; + return *lprop->targetp; } static void object_release_link_property(Object *obj, const char *name, @@ -1824,14 +1824,14 @@ static void object_release_link_property(Object *obj, const char *name, { LinkProperty *prop = opaque; - if ((prop->flags & OBJ_PROP_LINK_STRONG) && *prop->child) { - object_unref(*prop->child); + if ((prop->flags & OBJ_PROP_LINK_STRONG) && *prop->targetp) { + object_unref(*prop->targetp); } g_free(prop); } void object_property_add_link(Object *obj, const char *name, - const char *type, Object **child, + const char *type, Object **targetp, void (*check)(const Object *, const char *, Object *, Error **), ObjectPropertyLinkFlags flags, @@ -1842,7 +1842,7 @@ void object_property_add_link(Object *obj, const char *name, gchar *full_type; ObjectProperty *op; - prop->child = child; + prop->targetp = targetp; prop->check = check; prop->flags = flags; From patchwork Thu Jan 23 13:50:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348641 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CE290139A for ; Thu, 23 Jan 2020 16:21:14 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A3FBF2071E for ; Thu, 23 Jan 2020 16:21:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="XujCjY1f" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A3FBF2071E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60286 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufEH-0003l3-By for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:21:13 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53000) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuJ-0001FG-8N for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucuI-0001EV-3u for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:27 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:58812 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 1iucuH-0001E8-Vz for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:26 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787545; 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=/DL/TCYFmA6bmpfBPtbOJVRKkxK70kDc22k6XCUTUHU=; b=XujCjY1fbX1CT22BgBEmupzy+pf+H+qfyzfyn/KyJx3P1aKNV3wYVtu9zf2oMYqBRaeo4O LdEnZseut6gXLraTgDNBukCsJx6i0e4xdv4ITWRLViXY4JxxKJsY4fwyqPpJdoLAfiQuSm +DbCDm+a5mUipyUoDYSdAgMunNt/WBY= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-54-3ekynewHMb-YzCqp-4zehQ-1; Thu, 23 Jan 2020 08:52:23 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 985BF1B18BFE for ; Thu, 23 Jan 2020 13:52:22 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 94EBF1CB; Thu, 23 Jan 2020 13:52:21 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 43/59] object: add direct link flag Date: Thu, 23 Jan 2020 14:50:33 +0100 Message-Id: <1579787449-27599-44-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: 3ekynewHMb-YzCqp-4zehQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Allow the link property to hold the pointer to the target, instead of indirectly through another variable. Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-15-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- include/qom/object.h | 3 +++ qom/object.c | 26 ++++++++++++++++++++------ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index a163adc..24d6ebe 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1511,6 +1511,9 @@ void object_property_add_child(Object *obj, const char *name, typedef enum { /* Unref the link pointer when the property is deleted */ OBJ_PROP_LINK_STRONG = 0x1, + + /* private */ + OBJ_PROP_LINK_DIRECT = 0x2, } ObjectPropertyLinkFlags; /** diff --git a/qom/object.c b/qom/object.c index bb5b739..a9760d5 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1713,17 +1713,30 @@ void object_property_allow_set_link(const Object *obj, const char *name, } typedef struct { - Object **targetp; + union { + Object **targetp; + Object *target; /* if OBJ_PROP_LINK_DIRECT, when holding the pointer */ + }; void (*check)(const Object *, const char *, Object *, Error **); ObjectPropertyLinkFlags flags; } LinkProperty; +static Object ** +object_link_get_targetp(Object *obj, LinkProperty *lprop) +{ + if (lprop->flags & OBJ_PROP_LINK_DIRECT) { + return &lprop->target; + } else { + return lprop->targetp; + } +} + static void object_get_link_property(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { LinkProperty *lprop = opaque; - Object **targetp = lprop->targetp; + Object **targetp = object_link_get_targetp(obj, lprop); gchar *path; if (*targetp) { @@ -1782,7 +1795,7 @@ static void object_set_link_property(Object *obj, Visitor *v, { Error *local_err = NULL; LinkProperty *prop = opaque; - Object **targetp = prop->targetp; + Object **targetp = object_link_get_targetp(obj, prop); Object *old_target = *targetp; Object *new_target = NULL; char *path = NULL; @@ -1816,16 +1829,17 @@ static Object *object_resolve_link_property(Object *parent, void *opaque, const { LinkProperty *lprop = opaque; - return *lprop->targetp; + return *object_link_get_targetp(parent, lprop); } static void object_release_link_property(Object *obj, const char *name, void *opaque) { LinkProperty *prop = opaque; + Object **targetp = object_link_get_targetp(obj, prop); - if ((prop->flags & OBJ_PROP_LINK_STRONG) && *prop->targetp) { - object_unref(*prop->targetp); + if ((prop->flags & OBJ_PROP_LINK_STRONG) && *targetp) { + object_unref(*targetp); } g_free(prop); } From patchwork Thu Jan 23 13:50:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348647 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AB0B2139A for ; Thu, 23 Jan 2020 16:23:28 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8155821734 for ; Thu, 23 Jan 2020 16:23:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="h3KWZpgg" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8155821734 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60316 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufGR-0007Pf-3e for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:23:27 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53014) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuK-0001H8-ED for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucuJ-0001FP-Bv for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:28 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:23806 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 1iucuJ-0001FB-8Y for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:27 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787547; 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=MOgcG9+yeYfqXwpXoejUxtJaBTPmZdn6SO0MP6lruHY=; b=h3KWZpggPsGSzJGt425VQyF1bSduV6tYMhbA08MmEdhF+C3BPAgBSJ++0dGhd+5WUUVEsV vaIAlvNdVXR8ltXuxQuXcco30zFosBOFA5HR89HQC30ybzOYobj2zBCfB5QP0VaxXIQWXR Htv8lYH0koWSxegyi18hUKLMsMxc2ls= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-211-JQCRYsiBOcmOzAiUpvXXWg-1; Thu, 23 Jan 2020 08:52:25 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 1B3851005F9D for ; Thu, 23 Jan 2020 13:52:24 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 16AE21CB; Thu, 23 Jan 2020 13:52:22 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 44/59] object: express const link with link property Date: Thu, 23 Jan 2020 14:50:34 +0100 Message-Id: <1579787449-27599-45-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: JQCRYsiBOcmOzAiUpvXXWg-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Let's not mix child property and link property callbacks, as this is confusing, use LinkProperty with DIRECT flag to hold the target pointer. Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-16-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- qom/object.c | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/qom/object.c b/qom/object.c index a9760d5..b2bc87b 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1844,19 +1844,23 @@ static void object_release_link_property(Object *obj, const char *name, g_free(prop); } -void object_property_add_link(Object *obj, const char *name, - const char *type, Object **targetp, - void (*check)(const Object *, const char *, - Object *, Error **), - ObjectPropertyLinkFlags flags, - Error **errp) +static void object_add_link_prop(Object *obj, const char *name, + const char *type, void *ptr, + void (*check)(const Object *, const char *, + Object *, Error **), + ObjectPropertyLinkFlags flags, + Error **errp) { Error *local_err = NULL; LinkProperty *prop = g_malloc(sizeof(*prop)); gchar *full_type; ObjectProperty *op; - prop->targetp = targetp; + if (flags & OBJ_PROP_LINK_DIRECT) { + prop->target = ptr; + } else { + prop->targetp = ptr; + } prop->check = check; prop->flags = flags; @@ -1880,20 +1884,21 @@ out: g_free(full_type); } +void object_property_add_link(Object *obj, const char *name, + const char *type, Object **targetp, + void (*check)(const Object *, const char *, + Object *, Error **), + ObjectPropertyLinkFlags flags, + Error **errp) +{ + object_add_link_prop(obj, name, type, targetp, check, flags, errp); +} + void object_property_add_const_link(Object *obj, const char *name, Object *target, Error **errp) { - char *link_type; - ObjectProperty *op; - - link_type = g_strdup_printf("link<%s>", object_get_typename(target)); - op = object_property_add(obj, name, link_type, - object_get_child_property, NULL, - NULL, target, errp); - if (op != NULL) { - op->resolve = object_resolve_child_property; - } - g_free(link_type); + object_add_link_prop(obj, name, object_get_typename(target), target, + NULL, OBJ_PROP_LINK_DIRECT, errp); } gchar *object_get_canonical_path_component(Object *obj) From patchwork Thu Jan 23 13:50:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348819 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1E8F9921 for ; Thu, 23 Jan 2020 17:25:51 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E8478207FF for ; Thu, 23 Jan 2020 17:25:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="LG7Ia07+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E8478207FF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:33390 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iugEn-0007z6-E8 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 12:25:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53025) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuL-0001JX-QG for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucuK-0001GA-HU for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:29 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:27678 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 1iucuK-0001Ft-Ds for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787548; 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=AXIT44GcHEqEwBK1Et1RXBJRReAeylHT2cdVn0IclIY=; b=LG7Ia07+3f2oZceKkNx2DQYCQ/jHL746/bTyvNm02/lCWbwvyjrKg0CY1dvER3YGXsVyQt uDpKBMfVXs4GO3mdNJC33iRho2thpJ7nUUFXaWGQiO91C+q1+cMxtln2TACVHlyswHXG+3 WQMvS9Zz/drOnCL1y8dcpzxsojvc93I= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-344-PWM2SyfcPRucYRaxG2OgFA-1; Thu, 23 Jan 2020 08:52:26 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 93F6D1854331 for ; Thu, 23 Jan 2020 13:52:25 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8D41A1CB; Thu, 23 Jan 2020 13:52:24 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 45/59] object: add object_class_property_add_link() Date: Thu, 23 Jan 2020 14:50:35 +0100 Message-Id: <1579787449-27599-46-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: PWM2SyfcPRucYRaxG2OgFA-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-17-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- include/qom/object.h | 9 +++++++++ qom/object.c | 46 +++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/include/qom/object.h b/include/qom/object.h index 24d6ebe..5e2f60d 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1514,6 +1514,7 @@ typedef enum { /* private */ OBJ_PROP_LINK_DIRECT = 0x2, + OBJ_PROP_LINK_CLASS = 0x4, } ObjectPropertyLinkFlags; /** @@ -1562,6 +1563,14 @@ void object_property_add_link(Object *obj, const char *name, ObjectPropertyLinkFlags flags, Error **errp); +ObjectProperty *object_class_property_add_link(ObjectClass *oc, + const char *name, + const char *type, ptrdiff_t offset, + void (*check)(const Object *obj, const char *name, + Object *val, Error **errp), + ObjectPropertyLinkFlags flags, + Error **errp); + /** * object_property_add_str: * @obj: the object to add a property to diff --git a/qom/object.c b/qom/object.c index b2bc87b..a3da546 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1716,6 +1716,7 @@ typedef struct { union { Object **targetp; Object *target; /* if OBJ_PROP_LINK_DIRECT, when holding the pointer */ + ptrdiff_t offset; /* if OBJ_PROP_LINK_CLASS */ }; void (*check)(const Object *, const char *, Object *, Error **); ObjectPropertyLinkFlags flags; @@ -1726,6 +1727,8 @@ object_link_get_targetp(Object *obj, LinkProperty *lprop) { if (lprop->flags & OBJ_PROP_LINK_DIRECT) { return &lprop->target; + } else if (lprop->flags & OBJ_PROP_LINK_CLASS) { + return (void *)obj + lprop->offset; } else { return lprop->targetp; } @@ -1841,7 +1844,9 @@ static void object_release_link_property(Object *obj, const char *name, if ((prop->flags & OBJ_PROP_LINK_STRONG) && *targetp) { object_unref(*targetp); } - g_free(prop); + if (!(prop->flags & OBJ_PROP_LINK_CLASS)) { + g_free(prop); + } } static void object_add_link_prop(Object *obj, const char *name, @@ -1894,6 +1899,45 @@ void object_property_add_link(Object *obj, const char *name, object_add_link_prop(obj, name, type, targetp, check, flags, errp); } +ObjectProperty * +object_class_property_add_link(ObjectClass *oc, + const char *name, + const char *type, ptrdiff_t offset, + void (*check)(const Object *obj, const char *name, + Object *val, Error **errp), + ObjectPropertyLinkFlags flags, + Error **errp) +{ + Error *local_err = NULL; + LinkProperty *prop = g_new0(LinkProperty, 1); + gchar *full_type; + ObjectProperty *op; + + prop->offset = offset; + prop->check = check; + prop->flags = flags | OBJ_PROP_LINK_CLASS; + + full_type = g_strdup_printf("link<%s>", type); + + op = object_class_property_add(oc, name, full_type, + object_get_link_property, + check ? object_set_link_property : NULL, + object_release_link_property, + prop, + &local_err); + if (local_err) { + error_propagate(errp, local_err); + g_free(prop); + goto out; + } + + op->resolve = object_resolve_link_property; + +out: + g_free(full_type); + return op; +} + void object_property_add_const_link(Object *obj, const char *name, Object *target, Error **errp) { From patchwork Thu Jan 23 13:50:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348655 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9D9D56C1 for ; Thu, 23 Jan 2020 16:25:40 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7430321734 for ; Thu, 23 Jan 2020 16:25:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="JSJeB1hy" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7430321734 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60364 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufIZ-0002cb-5S for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:25:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53038) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuN-0001LQ-1b for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucuM-0001Gz-1e for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:30 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:57272 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 1iucuL-0001Gn-UR for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787549; 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=IHfd+wKG0HObWs0T+rNYcGUQGmZU6V/Hd1C2C2od1NE=; b=JSJeB1hyZyGUkPzduos2stnILZRgmy7/0/I2UDwxZrNo0ZS6wQ3UNgPOFOMAJUVLl7lvxi MlaqM8c6shABAyxdNeVIvhBYWo3SiRNJlsWXJxWxYrqDuefryKTd6RLz8wJ605veuHCcHi jkkGIzrRcWUt1yDF9c17Ay1529LOmlo= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-29-8TqNCaWnOv2nCET-3CkjGQ-1; Thu, 23 Jan 2020 08:52:27 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 10C4C1137840 for ; Thu, 23 Jan 2020 13:52:27 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0E6638575C; Thu, 23 Jan 2020 13:52:25 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 46/59] object: release all props Date: Thu, 23 Jan 2020 14:50:36 +0100 Message-Id: <1579787449-27599-47-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: 8TqNCaWnOv2nCET-3CkjGQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Class properties may have to release resources when the object is destroyed. Let's use the existing release() callback for that, but class properties must not release ObjectProperty, as it can be shared by various instances. Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-18-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- qom/object.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/qom/object.c b/qom/object.c index a3da546..66c4a5f 100644 --- a/qom/object.c +++ b/qom/object.c @@ -592,23 +592,22 @@ static inline bool object_property_is_child(ObjectProperty *prop) static void object_property_del_all(Object *obj) { + g_autoptr(GHashTable) done = g_hash_table_new(NULL, NULL); ObjectProperty *prop; - GHashTableIter iter; - gpointer key, value; + ObjectPropertyIterator iter; bool released; do { released = false; - g_hash_table_iter_init(&iter, obj->properties); - while (g_hash_table_iter_next(&iter, &key, &value)) { - prop = value; - if (prop->release) { - prop->release(obj, prop->name, prop->opaque); - prop->release = NULL; - released = true; - break; + object_property_iter_init(&iter, obj); + while ((prop = object_property_iter_next(&iter)) != NULL) { + if (g_hash_table_add(done, prop)) { + if (prop->release) { + prop->release(obj, prop->name, prop->opaque); + released = true; + break; + } } - g_hash_table_iter_remove(&iter); } } while (released); From patchwork Thu Jan 23 13:50:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348661 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 48EF392A for ; Thu, 23 Jan 2020 16:28:18 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1ECBC21D7D for ; Thu, 23 Jan 2020 16:28:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="bGVBBobi" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1ECBC21D7D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60408 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufL6-000693-S6 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:28:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53049) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuO-0001NT-7d for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucuN-0001He-6c for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:32 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:24629 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 1iucuN-0001HR-37 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:31 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787550; 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=ppgAxw9SO7HGyY8uV4plx7AC+/cE4ShpaHOxwMrlAfY=; b=bGVBBobi/xJnBBiPz88SMlnLJ3ZASPbeiXB4f3BNa+9t7/Fi3WiMfMhO6GayAPNZ54nJMO O0IEjEiWVEkoZlstlnxsI9MpHdl6YQDLMuIzKLbyg/SPXdnFEyFuidZIIi77VnAQ980hrU SbbhSJl1dPcLTiyHmtMwITa7eai4Ax4= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-349-RLXnwoC4OS-_QTbOQFWwAg-1; Thu, 23 Jan 2020 08:52:29 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 84CEF8024D3 for ; Thu, 23 Jan 2020 13:52:28 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 82F118575C; Thu, 23 Jan 2020 13:52:27 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 47/59] object: return self in object_ref() Date: Thu, 23 Jan 2020 14:50:37 +0100 Message-Id: <1579787449-27599-48-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: RLXnwoC4OS-_QTbOQFWwAg-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau This allow for simpler assignment with ref: foo = object_ref(bar) Signed-off-by: Marc-André Lureau Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20200110153039.1379601-19-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- include/qom/object.h | 3 ++- qom/object.c | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index 5e2f60d..18660fd 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1005,8 +1005,9 @@ GSList *object_class_get_list_sorted(const char *implements_type, * * Increase the reference count of a object. A object cannot be freed as long * as its reference count is greater than zero. + * Returns: @obj */ -void object_ref(Object *obj); +Object *object_ref(Object *obj); /** * object_unref: diff --git a/qom/object.c b/qom/object.c index 66c4a5f..555c8b9 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1107,12 +1107,13 @@ GSList *object_class_get_list_sorted(const char *implements_type, object_class_cmp); } -void object_ref(Object *obj) +Object *object_ref(Object *obj) { if (!obj) { - return; + return NULL; } atomic_inc(&obj->ref); + return obj; } void object_unref(Object *obj) From patchwork Thu Jan 23 13:50:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348707 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7ECE01398 for ; Thu, 23 Jan 2020 16:44:54 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E683924125 for ; Thu, 23 Jan 2020 16:44:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="HStQMnpk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E683924125 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60670 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufbA-0001os-B4 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:44:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53157) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucud-0001m8-QK for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucuT-0001KY-81 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:47 -0500 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:49964 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 1iucuS-0001K3-Mf for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:37 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787556; 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=cr7Xz81+aKY/Mb1f+pZZVmy9usrkoQPPhCQgGqlrguQ=; b=HStQMnpk6bmXLsZefn1nmqSpY1M++EXLpkRXOWewPtJWmhQyLPRuEVJ7Jvv8u8DwYXLtaQ Gw/PJzgf9+ancRe11KAD5jpE/vWjlzDplbjDczK17g+mK+WdLDLREMGpuEKmOddeb5jQiN LZs3pqnKsGVrjGYokG4QIFEuI4aBuBs= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-222-VVQua_elMueNlxbKj0KYVg-1; Thu, 23 Jan 2020 08:52:32 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5AA531854345 for ; Thu, 23 Jan 2020 13:52:31 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 03AFF1CB; Thu, 23 Jan 2020 13:52:28 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 48/59] qdev: set properties with device_class_set_props() Date: Thu, 23 Jan 2020 14:50:38 +0100 Message-Id: <1579787449-27599-49-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: VVQua_elMueNlxbKj0KYVg-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau The following patch will need to handle properties registration during class_init time. Let's use a device_class_set_props() setter. spatch --macro-file scripts/cocci-macro-file.h --sp-file ./scripts/coccinelle/qdev-set-props.cocci --keep-comments --in-place --dir . @@ typedef DeviceClass; DeviceClass *d; expression val; @@ - d->props = val + device_class_set_props(d, val) Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-20-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- hw/9pfs/virtio-9p-device.c | 2 +- hw/acpi/generic_event_device.c | 2 +- hw/acpi/piix4.c | 2 +- hw/acpi/vmgenid.c | 2 +- hw/arm/armsse.c | 2 +- hw/arm/armv7m.c | 4 ++-- hw/arm/aspeed_soc.c | 2 +- hw/arm/bcm2836.c | 2 +- hw/arm/integratorcp.c | 2 +- hw/arm/msf2-soc.c | 2 +- hw/arm/musicpal.c | 2 +- hw/arm/nrf51_soc.c | 2 +- hw/arm/pxa2xx.c | 4 ++-- hw/arm/pxa2xx_gpio.c | 2 +- hw/arm/smmu-common.c | 2 +- hw/arm/spitz.c | 2 +- hw/arm/stm32f205_soc.c | 2 +- hw/arm/stm32f405_soc.c | 2 +- hw/arm/strongarm.c | 2 +- hw/arm/xlnx-versal.c | 2 +- hw/arm/xlnx-zynqmp.c | 2 +- hw/audio/ac97.c | 2 +- hw/audio/adlib.c | 2 +- hw/audio/cs4231.c | 2 +- hw/audio/cs4231a.c | 2 +- hw/audio/es1370.c | 2 +- hw/audio/gus.c | 2 +- hw/audio/hda-codec.c | 2 +- hw/audio/intel-hda.c | 4 ++-- hw/audio/milkymist-ac97.c | 2 +- hw/audio/pcspk.c | 2 +- hw/audio/pl041.c | 2 +- hw/audio/sb16.c | 2 +- hw/audio/wm8750.c | 2 +- hw/block/fdc.c | 8 ++++---- hw/block/m25p80.c | 2 +- hw/block/nand.c | 2 +- hw/block/nvme.c | 2 +- hw/block/onenand.c | 2 +- hw/block/pflash_cfi01.c | 2 +- hw/block/pflash_cfi02.c | 2 +- hw/block/swim.c | 2 +- hw/block/vhost-user-blk.c | 2 +- hw/block/virtio-blk.c | 2 +- hw/block/xen-block.c | 2 +- hw/char/bcm2835_aux.c | 2 +- hw/char/cadence_uart.c | 2 +- hw/char/cmsdk-apb-uart.c | 2 +- hw/char/debugcon.c | 2 +- hw/char/digic-uart.c | 2 +- hw/char/escc.c | 2 +- hw/char/etraxfs_ser.c | 2 +- hw/char/exynos4210_uart.c | 2 +- hw/char/grlib_apbuart.c | 2 +- hw/char/imx_serial.c | 2 +- hw/char/ipoctal232.c | 2 +- hw/char/lm32_juart.c | 2 +- hw/char/lm32_uart.c | 2 +- hw/char/mcf_uart.c | 2 +- hw/char/milkymist-uart.c | 2 +- hw/char/nrf51_uart.c | 2 +- hw/char/parallel.c | 2 +- hw/char/pl011.c | 2 +- hw/char/sclpconsole-lm.c | 2 +- hw/char/sclpconsole.c | 2 +- hw/char/serial-isa.c | 2 +- hw/char/serial-pci-multi.c | 4 ++-- hw/char/serial-pci.c | 2 +- hw/char/serial.c | 4 ++-- hw/char/spapr_vty.c | 2 +- hw/char/stm32f2xx_usart.c | 2 +- hw/char/terminal3270.c | 2 +- hw/char/virtio-console.c | 2 +- hw/char/virtio-serial-bus.c | 4 ++-- hw/char/xilinx_uartlite.c | 2 +- hw/core/cpu.c | 2 +- hw/core/generic-loader.c | 2 +- hw/core/or-irq.c | 2 +- hw/core/platform-bus.c | 2 +- hw/core/qdev.c | 5 +++++ hw/core/split-irq.c | 2 +- hw/cpu/a15mpcore.c | 2 +- hw/cpu/a9mpcore.c | 2 +- hw/cpu/arm11mpcore.c | 2 +- hw/cpu/cluster.c | 2 +- hw/cpu/realview_mpcore.c | 2 +- hw/display/ati.c | 2 +- hw/display/bcm2835_fb.c | 2 +- hw/display/bochs-display.c | 2 +- hw/display/cg3.c | 2 +- hw/display/cirrus_vga.c | 2 +- hw/display/cirrus_vga_isa.c | 2 +- hw/display/g364fb.c | 2 +- hw/display/i2c-ddc.c | 2 +- hw/display/macfb.c | 4 ++-- hw/display/milkymist-vgafb.c | 2 +- hw/display/qxl.c | 2 +- hw/display/ramfb-standalone.c | 2 +- hw/display/sm501.c | 4 ++-- hw/display/tcx.c | 2 +- hw/display/vga-isa.c | 2 +- hw/display/vga-pci.c | 4 ++-- hw/display/vhost-user-gpu.c | 2 +- hw/display/virtio-gpu-pci.c | 2 +- hw/display/virtio-gpu.c | 2 +- hw/display/virtio-vga.c | 2 +- hw/display/vmware_vga.c | 2 +- hw/dma/i82374.c | 2 +- hw/dma/i8257.c | 2 +- hw/dma/pl080.c | 2 +- hw/dma/pl330.c | 2 +- hw/dma/pxa2xx_dma.c | 2 +- hw/dma/xilinx_axidma.c | 2 +- hw/dma/xlnx-zdma.c | 2 +- hw/gpio/imx_gpio.c | 2 +- hw/gpio/omap_gpio.c | 4 ++-- hw/i2c/aspeed_i2c.c | 2 +- hw/i2c/core.c | 2 +- hw/i2c/omap_i2c.c | 2 +- hw/i386/intel_iommu.c | 2 +- hw/i386/kvm/clock.c | 2 +- hw/i386/kvm/i8254.c | 2 +- hw/i386/kvm/ioapic.c | 2 +- hw/i386/vmmouse.c | 2 +- hw/i386/x86-iommu.c | 2 +- hw/i386/xen/xen_pvdevice.c | 2 +- hw/ide/ahci.c | 2 +- hw/ide/cmd646.c | 2 +- hw/ide/isa.c | 2 +- hw/ide/macio.c | 2 +- hw/ide/mmio.c | 2 +- hw/ide/qdev.c | 8 ++++---- hw/input/adb.c | 2 +- hw/input/milkymist-softusb.c | 2 +- hw/input/virtio-input-hid.c | 6 +++--- hw/input/virtio-input-host.c | 2 +- hw/input/virtio-input.c | 2 +- hw/intc/apic_common.c | 2 +- hw/intc/arm_gic_common.c | 2 +- hw/intc/arm_gicv2m.c | 2 +- hw/intc/arm_gicv3_common.c | 2 +- hw/intc/arm_gicv3_its_kvm.c | 2 +- hw/intc/armv7m_nvic.c | 2 +- hw/intc/exynos4210_combiner.c | 2 +- hw/intc/exynos4210_gic.c | 4 ++-- hw/intc/i8259_common.c | 2 +- hw/intc/ioapic.c | 2 +- hw/intc/mips_gic.c | 2 +- hw/intc/omap_intc.c | 4 ++-- hw/intc/ompic.c | 2 +- hw/intc/openpic.c | 2 +- hw/intc/openpic_kvm.c | 2 +- hw/intc/pnv_xive.c | 2 +- hw/intc/s390_flic.c | 2 +- hw/intc/spapr_xive.c | 2 +- hw/intc/xics.c | 4 ++-- hw/intc/xilinx_intc.c | 2 +- hw/intc/xive.c | 8 ++++---- hw/intc/xlnx-pmu-iomod-intc.c | 2 +- hw/ipack/ipack.c | 2 +- hw/ipmi/ipmi.c | 2 +- hw/ipmi/ipmi_bmc_extern.c | 2 +- hw/ipmi/ipmi_bmc_sim.c | 2 +- hw/ipmi/isa_ipmi_bt.c | 2 +- hw/ipmi/isa_ipmi_kcs.c | 2 +- hw/isa/lpc_ich9.c | 2 +- hw/isa/pc87312.c | 2 +- hw/isa/vt82c686.c | 2 +- hw/mem/nvdimm.c | 2 +- hw/mem/pc-dimm.c | 2 +- hw/mips/cps.c | 2 +- hw/misc/a9scu.c | 2 +- hw/misc/applesmc.c | 2 +- hw/misc/arm11scu.c | 2 +- hw/misc/arm_l2x0.c | 2 +- hw/misc/arm_sysctl.c | 2 +- hw/misc/armsse-cpuid.c | 2 +- hw/misc/aspeed_scu.c | 2 +- hw/misc/aspeed_sdmc.c | 2 +- hw/misc/bcm2835_property.c | 2 +- hw/misc/debugexit.c | 2 +- hw/misc/eccmemctl.c | 2 +- hw/misc/iotkit-sysctl.c | 2 +- hw/misc/iotkit-sysinfo.c | 2 +- hw/misc/ivshmem.c | 4 ++-- hw/misc/mac_via.c | 2 +- hw/misc/macio/cuda.c | 2 +- hw/misc/macio/macio.c | 4 ++-- hw/misc/macio/pmu.c | 2 +- hw/misc/mips_cmgcr.c | 2 +- hw/misc/mips_cpc.c | 2 +- hw/misc/mips_itu.c | 2 +- hw/misc/mos6522.c | 2 +- hw/misc/mps2-fpgaio.c | 2 +- hw/misc/mps2-scc.c | 2 +- hw/misc/msf2-sysreg.c | 2 +- hw/misc/nrf51_rng.c | 2 +- hw/misc/pci-testdev.c | 2 +- hw/misc/pvpanic.c | 2 +- hw/misc/tz-mpc.c | 2 +- hw/misc/tz-msc.c | 2 +- hw/misc/tz-ppc.c | 2 +- hw/misc/unimp.c | 2 +- hw/net/allwinner_emac.c | 2 +- hw/net/cadence_gem.c | 2 +- hw/net/dp8393x.c | 2 +- hw/net/e1000.c | 2 +- hw/net/e1000e.c | 2 +- hw/net/eepro100.c | 2 +- hw/net/etraxfs_eth.c | 2 +- hw/net/fsl_etsec/etsec.c | 2 +- hw/net/ftgmac100.c | 4 ++-- hw/net/imx_fec.c | 2 +- hw/net/lan9118.c | 2 +- hw/net/lance.c | 2 +- hw/net/mcf_fec.c | 2 +- hw/net/milkymist-minimac2.c | 2 +- hw/net/mipsnet.c | 2 +- hw/net/ne2000-isa.c | 2 +- hw/net/ne2000-pci.c | 2 +- hw/net/opencores_eth.c | 2 +- hw/net/pcnet-pci.c | 2 +- hw/net/rocker/rocker.c | 2 +- hw/net/rtl8139.c | 2 +- hw/net/smc91c111.c | 2 +- hw/net/spapr_llan.c | 2 +- hw/net/stellaris_enet.c | 2 +- hw/net/sungem.c | 2 +- hw/net/sunhme.c | 2 +- hw/net/tulip.c | 2 +- hw/net/virtio-net.c | 2 +- hw/net/vmxnet3.c | 2 +- hw/net/xgmac.c | 2 +- hw/net/xilinx_axienet.c | 2 +- hw/net/xilinx_ethlite.c | 2 +- hw/nvram/ds1225y.c | 2 +- hw/nvram/eeprom_at24c.c | 2 +- hw/nvram/fw_cfg.c | 4 ++-- hw/nvram/mac_nvram.c | 2 +- hw/nvram/nrf51_nvm.c | 2 +- hw/nvram/spapr_nvram.c | 2 +- hw/pci-bridge/gen_pcie_root_port.c | 2 +- hw/pci-bridge/pci_bridge_dev.c | 2 +- hw/pci-bridge/pci_expander_bridge.c | 4 ++-- hw/pci-bridge/pcie_pci_bridge.c | 2 +- hw/pci-bridge/pcie_root_port.c | 2 +- hw/pci-bridge/xio3130_downstream.c | 2 +- hw/pci-host/grackle.c | 2 +- hw/pci-host/i440fx.c | 2 +- hw/pci-host/ppce500.c | 2 +- hw/pci-host/prep.c | 2 +- hw/pci-host/q35.c | 4 ++-- hw/pci-host/sabre.c | 2 +- hw/pci-host/uninorth.c | 2 +- hw/pci-host/versatile.c | 2 +- hw/pci-host/xilinx-pcie.c | 2 +- hw/pci/pci.c | 2 +- hw/pci/pcie_port.c | 4 ++-- hw/ppc/pnv.c | 2 +- hw/ppc/pnv_core.c | 4 ++-- hw/ppc/pnv_homer.c | 2 +- hw/ppc/pnv_lpc.c | 2 +- hw/ppc/pnv_occ.c | 2 +- hw/ppc/pnv_pnor.c | 2 +- hw/ppc/pnv_psi.c | 2 +- hw/ppc/ppc440_uc.c | 2 +- hw/ppc/prep_systemio.c | 2 +- hw/ppc/rs6000_mc.c | 2 +- hw/ppc/spapr_cpu_core.c | 2 +- hw/ppc/spapr_pci.c | 2 +- hw/ppc/spapr_rng.c | 2 +- hw/ppc/spapr_tpm_proxy.c | 2 +- hw/rdma/vmw/pvrdma_main.c | 2 +- hw/riscv/riscv_hart.c | 2 +- hw/riscv/sifive_clint.c | 2 +- hw/riscv/sifive_plic.c | 2 +- hw/riscv/sifive_u_otp.c | 2 +- hw/rtc/m48t59-isa.c | 2 +- hw/rtc/m48t59.c | 2 +- hw/rtc/mc146818rtc.c | 2 +- hw/rtc/pl031.c | 2 +- hw/s390x/3270-ccw.c | 2 +- hw/s390x/ccw-device.c | 2 +- hw/s390x/css-bridge.c | 2 +- hw/s390x/ipl.c | 2 +- hw/s390x/s390-pci-bus.c | 2 +- hw/s390x/vhost-vsock-ccw.c | 2 +- hw/s390x/virtio-ccw-9p.c | 2 +- hw/s390x/virtio-ccw-balloon.c | 2 +- hw/s390x/virtio-ccw-blk.c | 2 +- hw/s390x/virtio-ccw-crypto.c | 2 +- hw/s390x/virtio-ccw-gpu.c | 2 +- hw/s390x/virtio-ccw-input.c | 2 +- hw/s390x/virtio-ccw-net.c | 2 +- hw/s390x/virtio-ccw-rng.c | 2 +- hw/s390x/virtio-ccw-scsi.c | 4 ++-- hw/s390x/virtio-ccw-serial.c | 2 +- hw/scsi/megasas.c | 2 +- hw/scsi/mptsas.c | 2 +- hw/scsi/scsi-bus.c | 2 +- hw/scsi/scsi-disk.c | 8 ++++---- hw/scsi/scsi-generic.c | 2 +- hw/scsi/spapr_vscsi.c | 2 +- hw/scsi/vhost-scsi.c | 2 +- hw/scsi/vhost-user-scsi.c | 2 +- hw/scsi/virtio-scsi.c | 2 +- hw/scsi/vmw_pvscsi.c | 2 +- hw/sd/sd.c | 2 +- hw/sd/sdhci-pci.c | 2 +- hw/sd/sdhci.c | 2 +- hw/sparc/sun4m.c | 4 ++-- hw/sparc/sun4m_iommu.c | 2 +- hw/sparc64/sun4u.c | 6 +++--- hw/ssi/aspeed_smc.c | 2 +- hw/ssi/xilinx_spi.c | 2 +- hw/ssi/xilinx_spips.c | 4 ++-- hw/timer/a9gtimer.c | 2 +- hw/timer/allwinner-a10-pit.c | 2 +- hw/timer/altera_timer.c | 2 +- hw/timer/arm_mptimer.c | 2 +- hw/timer/arm_timer.c | 2 +- hw/timer/aspeed_timer.c | 2 +- hw/timer/cmsdk-apb-dualtimer.c | 2 +- hw/timer/cmsdk-apb-timer.c | 2 +- hw/timer/grlib_gptimer.c | 2 +- hw/timer/hpet.c | 2 +- hw/timer/i8254.c | 2 +- hw/timer/lm32_timer.c | 2 +- hw/timer/milkymist-sysctl.c | 2 +- hw/timer/mss-timer.c | 2 +- hw/timer/pxa2xx_timer.c | 4 ++-- hw/timer/slavio_timer.c | 2 +- hw/timer/stm32f2xx_timer.c | 2 +- hw/timer/xilinx_timer.c | 2 +- hw/tpm/tpm_crb.c | 2 +- hw/tpm/tpm_tis.c | 2 +- hw/usb/bus.c | 2 +- hw/usb/ccid-card-emulated.c | 2 +- hw/usb/ccid-card-passthru.c | 2 +- hw/usb/dev-audio.c | 2 +- hw/usb/dev-hid.c | 6 +++--- hw/usb/dev-hub.c | 2 +- hw/usb/dev-mtp.c | 2 +- hw/usb/dev-network.c | 2 +- hw/usb/dev-serial.c | 4 ++-- hw/usb/dev-smartcard-reader.c | 4 ++-- hw/usb/dev-storage.c | 2 +- hw/usb/dev-uas.c | 2 +- hw/usb/hcd-ehci-pci.c | 2 +- hw/usb/hcd-ehci-sysbus.c | 2 +- hw/usb/hcd-ohci-pci.c | 2 +- hw/usb/hcd-ohci.c | 2 +- hw/usb/hcd-uhci.c | 4 ++-- hw/usb/hcd-xhci-nec.c | 2 +- hw/usb/hcd-xhci.c | 2 +- hw/usb/host-libusb.c | 2 +- hw/usb/redirect.c | 2 +- hw/vfio/ap.c | 2 +- hw/vfio/ccw.c | 2 +- hw/vfio/pci.c | 4 ++-- hw/vfio/platform.c | 2 +- hw/virtio/vhost-scsi-pci.c | 2 +- hw/virtio/vhost-user-blk-pci.c | 2 +- hw/virtio/vhost-user-fs-pci.c | 2 +- hw/virtio/vhost-user-fs.c | 2 +- hw/virtio/vhost-user-scsi-pci.c | 2 +- hw/virtio/vhost-vsock-pci.c | 2 +- hw/virtio/vhost-vsock.c | 2 +- hw/virtio/virtio-9p-pci.c | 2 +- hw/virtio/virtio-balloon-pci.c | 2 +- hw/virtio/virtio-balloon.c | 2 +- hw/virtio/virtio-blk-pci.c | 2 +- hw/virtio/virtio-crypto-pci.c | 2 +- hw/virtio/virtio-crypto.c | 2 +- hw/virtio/virtio-input-pci.c | 2 +- hw/virtio/virtio-mmio.c | 2 +- hw/virtio/virtio-net-pci.c | 2 +- hw/virtio/virtio-pci.c | 4 ++-- hw/virtio/virtio-pmem.c | 2 +- hw/virtio/virtio-rng.c | 2 +- hw/virtio/virtio-scsi-pci.c | 2 +- hw/virtio/virtio-serial-pci.c | 2 +- hw/virtio/virtio.c | 2 +- hw/watchdog/cmsdk-apb-watchdog.c | 2 +- hw/watchdog/wdt_aspeed.c | 2 +- hw/xen/xen-bus.c | 2 +- hw/xen/xen-legacy-backend.c | 4 ++-- hw/xen/xen_pt.c | 2 +- include/hw/qdev-core.h | 2 ++ migration/migration.c | 2 +- target/arm/cpu.c | 2 +- target/i386/cpu.c | 4 ++-- target/microblaze/cpu.c | 2 +- target/nios2/cpu.c | 2 +- target/ppc/translate_init.inc.c | 10 +++++----- target/riscv/cpu.c | 2 +- target/s390x/cpu.c | 2 +- target/sparc/cpu.c | 2 +- tests/test-qdev-global-props.c | 2 +- 399 files changed, 458 insertions(+), 451 deletions(-) diff --git a/hw/9pfs/virtio-9p-device.c b/hw/9pfs/virtio-9p-device.c index 991e175..963a58c 100644 --- a/hw/9pfs/virtio-9p-device.c +++ b/hw/9pfs/virtio-9p-device.c @@ -245,7 +245,7 @@ static void virtio_9p_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass); - dc->props = virtio_9p_properties; + device_class_set_props(dc, virtio_9p_properties); dc->vmsd = &vmstate_virtio_9p; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); vdc->realize = virtio_9p_device_realize; diff --git a/hw/acpi/generic_event_device.c b/hw/acpi/generic_event_device.c index 9cee90c..375272e 100644 --- a/hw/acpi/generic_event_device.c +++ b/hw/acpi/generic_event_device.c @@ -282,7 +282,7 @@ static void acpi_ged_class_init(ObjectClass *class, void *data) AcpiDeviceIfClass *adevc = ACPI_DEVICE_IF_CLASS(class); dc->desc = "ACPI Generic Event Device"; - dc->props = acpi_ged_properties; + device_class_set_props(dc, acpi_ged_properties); dc->vmsd = &vmstate_acpi_ged; hc->plug = acpi_ged_device_plug_cb; diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c index 93aec2d..6d621c3 100644 --- a/hw/acpi/piix4.c +++ b/hw/acpi/piix4.c @@ -653,7 +653,7 @@ static void piix4_pm_class_init(ObjectClass *klass, void *data) dc->reset = piix4_pm_reset; dc->desc = "PM"; dc->vmsd = &vmstate_acpi; - dc->props = piix4_pm_properties; + device_class_set_props(dc, piix4_pm_properties); /* * Reason: part of PIIX4 southbridge, needs to be wired up, * e.g. by mips_malta_init() diff --git a/hw/acpi/vmgenid.c b/hw/acpi/vmgenid.c index 6e11b0f..2df7623 100644 --- a/hw/acpi/vmgenid.c +++ b/hw/acpi/vmgenid.c @@ -226,7 +226,7 @@ static void vmgenid_device_class_init(ObjectClass *klass, void *data) dc->vmsd = &vmstate_vmgenid; dc->realize = vmgenid_realize; - dc->props = vmgenid_device_properties; + device_class_set_props(dc, vmgenid_device_properties); dc->hotpluggable = false; set_bit(DEVICE_CATEGORY_MISC, dc->categories); } diff --git a/hw/arm/armsse.c b/hw/arm/armsse.c index e5263aa..174ca7e 100644 --- a/hw/arm/armsse.c +++ b/hw/arm/armsse.c @@ -1283,7 +1283,7 @@ static void armsse_class_init(ObjectClass *klass, void *data) dc->realize = armsse_realize; dc->vmsd = &armsse_vmstate; - dc->props = info->props; + device_class_set_props(dc, info->props); dc->reset = armsse_reset; iic->check = armsse_idau_check; asc->info = info; diff --git a/hw/arm/armv7m.c b/hw/arm/armv7m.c index 7a3c48f..5d4a581 100644 --- a/hw/arm/armv7m.c +++ b/hw/arm/armv7m.c @@ -288,7 +288,7 @@ static void armv7m_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = armv7m_realize; - dc->props = armv7m_properties; + device_class_set_props(dc, armv7m_properties); } static const TypeInfo armv7m_info = { @@ -367,7 +367,7 @@ static void bitband_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = bitband_realize; - dc->props = bitband_properties; + device_class_set_props(dc, bitband_properties); } static const TypeInfo bitband_info = { diff --git a/hw/arm/aspeed_soc.c b/hw/arm/aspeed_soc.c index a6237e5..99892cb 100644 --- a/hw/arm/aspeed_soc.c +++ b/hw/arm/aspeed_soc.c @@ -449,7 +449,7 @@ static void aspeed_soc_class_init(ObjectClass *oc, void *data) dc->realize = aspeed_soc_realize; /* Reason: Uses serial_hds and nd_table in realize() directly */ dc->user_creatable = false; - dc->props = aspeed_soc_properties; + device_class_set_props(dc, aspeed_soc_properties); } static const TypeInfo aspeed_soc_type_info = { diff --git a/hw/arm/bcm2836.c b/hw/arm/bcm2836.c index 221ff06..38e2941 100644 --- a/hw/arm/bcm2836.c +++ b/hw/arm/bcm2836.c @@ -180,7 +180,7 @@ static void bcm283x_class_init(ObjectClass *oc, void *data) bc->info = data; dc->realize = bcm2836_realize; - dc->props = bcm2836_props; + device_class_set_props(dc, bcm2836_props); /* Reason: Must be wired up in code (see raspi_init() function) */ dc->user_creatable = false; } diff --git a/hw/arm/integratorcp.c b/hw/arm/integratorcp.c index 5249708..0cd94d9 100644 --- a/hw/arm/integratorcp.c +++ b/hw/arm/integratorcp.c @@ -673,7 +673,7 @@ static void core_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = core_properties; + device_class_set_props(dc, core_properties); dc->realize = integratorcm_realize; dc->vmsd = &vmstate_integratorcm; } diff --git a/hw/arm/msf2-soc.c b/hw/arm/msf2-soc.c index 008fd93..8f84692 100644 --- a/hw/arm/msf2-soc.c +++ b/hw/arm/msf2-soc.c @@ -229,7 +229,7 @@ static void m2sxxx_soc_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = m2sxxx_soc_realize; - dc->props = m2sxxx_soc_properties; + device_class_set_props(dc, m2sxxx_soc_properties); } static const TypeInfo m2sxxx_soc_info = { diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c index f68a399..dc551bb 100644 --- a/hw/arm/musicpal.c +++ b/hw/arm/musicpal.c @@ -435,7 +435,7 @@ static void mv88w8618_eth_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->vmsd = &mv88w8618_eth_vmsd; - dc->props = mv88w8618_eth_properties; + device_class_set_props(dc, mv88w8618_eth_properties); dc->realize = mv88w8618_eth_realize; } diff --git a/hw/arm/nrf51_soc.c b/hw/arm/nrf51_soc.c index 7402916..4817a76 100644 --- a/hw/arm/nrf51_soc.c +++ b/hw/arm/nrf51_soc.c @@ -224,7 +224,7 @@ static void nrf51_soc_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = nrf51_soc_realize; - dc->props = nrf51_soc_properties; + device_class_set_props(dc, nrf51_soc_properties); } static const TypeInfo nrf51_soc_info = { diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c index 950ff42..b33f8f1 100644 --- a/hw/arm/pxa2xx.c +++ b/hw/arm/pxa2xx.c @@ -1531,7 +1531,7 @@ static void pxa2xx_i2c_class_init(ObjectClass *klass, void *data) dc->desc = "PXA2xx I2C Bus Controller"; dc->vmsd = &vmstate_pxa2xx_i2c; - dc->props = pxa2xx_i2c_properties; + device_class_set_props(dc, pxa2xx_i2c_properties); } static const TypeInfo pxa2xx_i2c_info = { @@ -2015,7 +2015,7 @@ static void pxa2xx_fir_class_init(ObjectClass *klass, void *data) dc->realize = pxa2xx_fir_realize; dc->vmsd = &pxa2xx_fir_vmsd; - dc->props = pxa2xx_fir_properties; + device_class_set_props(dc, pxa2xx_fir_properties); dc->reset = pxa2xx_fir_reset; } diff --git a/hw/arm/pxa2xx_gpio.c b/hw/arm/pxa2xx_gpio.c index 86a0e86..f8df3cc 100644 --- a/hw/arm/pxa2xx_gpio.c +++ b/hw/arm/pxa2xx_gpio.c @@ -347,7 +347,7 @@ static void pxa2xx_gpio_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->desc = "PXA2xx GPIO controller"; - dc->props = pxa2xx_gpio_properties; + device_class_set_props(dc, pxa2xx_gpio_properties); dc->vmsd = &vmstate_pxa2xx_gpio_regs; dc->realize = pxa2xx_gpio_realize; } diff --git a/hw/arm/smmu-common.c b/hw/arm/smmu-common.c index 245817d..23eb117 100644 --- a/hw/arm/smmu-common.c +++ b/hw/arm/smmu-common.c @@ -461,7 +461,7 @@ static void smmu_base_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); SMMUBaseClass *sbc = ARM_SMMU_CLASS(klass); - dc->props = smmu_dev_properties; + device_class_set_props(dc, smmu_dev_properties); device_class_set_parent_realize(dc, smmu_base_realize, &sbc->parent_realize); dc->reset = smmu_base_reset; diff --git a/hw/arm/spitz.c b/hw/arm/spitz.c index 25bd0f5..e001088 100644 --- a/hw/arm/spitz.c +++ b/hw/arm/spitz.c @@ -1083,7 +1083,7 @@ static void sl_nand_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->vmsd = &vmstate_sl_nand_info; - dc->props = sl_nand_properties; + device_class_set_props(dc, sl_nand_properties); dc->realize = sl_nand_realize; /* Reason: init() method uses drive_get() */ dc->user_creatable = false; diff --git a/hw/arm/stm32f205_soc.c b/hw/arm/stm32f205_soc.c index f5a5c2d..627fd44 100644 --- a/hw/arm/stm32f205_soc.c +++ b/hw/arm/stm32f205_soc.c @@ -207,7 +207,7 @@ static void stm32f205_soc_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = stm32f205_soc_realize; - dc->props = stm32f205_soc_properties; + device_class_set_props(dc, stm32f205_soc_properties); } static const TypeInfo stm32f205_soc_info = { diff --git a/hw/arm/stm32f405_soc.c b/hw/arm/stm32f405_soc.c index f22516f..9bcad97 100644 --- a/hw/arm/stm32f405_soc.c +++ b/hw/arm/stm32f405_soc.c @@ -282,7 +282,7 @@ static void stm32f405_soc_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = stm32f405_soc_realize; - dc->props = stm32f405_soc_properties; + device_class_set_props(dc, stm32f405_soc_properties); /* No vmstate or reset required: device has no internal state */ } diff --git a/hw/arm/strongarm.c b/hw/arm/strongarm.c index c6776e8..cd8a99a 100644 --- a/hw/arm/strongarm.c +++ b/hw/arm/strongarm.c @@ -1327,7 +1327,7 @@ static void strongarm_uart_class_init(ObjectClass *klass, void *data) dc->desc = "StrongARM UART controller"; dc->reset = strongarm_uart_reset; dc->vmsd = &vmstate_strongarm_uart_regs; - dc->props = strongarm_uart_properties; + device_class_set_props(dc, strongarm_uart_properties); dc->realize = strongarm_uart_realize; } diff --git a/hw/arm/xlnx-versal.c b/hw/arm/xlnx-versal.c index 8b3d8d8..1cf3daa 100644 --- a/hw/arm/xlnx-versal.c +++ b/hw/arm/xlnx-versal.c @@ -305,7 +305,7 @@ static void versal_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = versal_realize; - dc->props = versal_properties; + device_class_set_props(dc, versal_properties); /* No VMSD since we haven't got any top-level SoC state to save. */ } diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c index fb03c60..cab0160 100644 --- a/hw/arm/xlnx-zynqmp.c +++ b/hw/arm/xlnx-zynqmp.c @@ -657,7 +657,7 @@ static void xlnx_zynqmp_class_init(ObjectClass *oc, void *data) { DeviceClass *dc = DEVICE_CLASS(oc); - dc->props = xlnx_zynqmp_props; + device_class_set_props(dc, xlnx_zynqmp_props); dc->realize = xlnx_zynqmp_realize; /* Reason: Uses serial_hds in realize function, thus can't be used twice */ dc->user_creatable = false; diff --git a/hw/audio/ac97.c b/hw/audio/ac97.c index 78cda88..1ec87fe 100644 --- a/hw/audio/ac97.c +++ b/hw/audio/ac97.c @@ -1420,7 +1420,7 @@ static void ac97_class_init (ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_SOUND, dc->categories); dc->desc = "Intel 82801AA AC97 Audio"; dc->vmsd = &vmstate_ac97; - dc->props = ac97_properties; + device_class_set_props(dc, ac97_properties); dc->reset = ac97_on_reset; } diff --git a/hw/audio/adlib.c b/hw/audio/adlib.c index cb4178d..d6c1fb0 100644 --- a/hw/audio/adlib.c +++ b/hw/audio/adlib.c @@ -312,7 +312,7 @@ static void adlib_class_initfn (ObjectClass *klass, void *data) dc->realize = adlib_realizefn; set_bit(DEVICE_CATEGORY_SOUND, dc->categories); dc->desc = ADLIB_DESC; - dc->props = adlib_properties; + device_class_set_props(dc, adlib_properties); } static const TypeInfo adlib_info = { diff --git a/hw/audio/cs4231.c b/hw/audio/cs4231.c index b5d3e89..11a6328 100644 --- a/hw/audio/cs4231.c +++ b/hw/audio/cs4231.c @@ -168,7 +168,7 @@ static void cs4231_class_init(ObjectClass *klass, void *data) dc->reset = cs_reset; dc->vmsd = &vmstate_cs4231; - dc->props = cs4231_properties; + device_class_set_props(dc, cs4231_properties); } static const TypeInfo cs4231_info = { diff --git a/hw/audio/cs4231a.c b/hw/audio/cs4231a.c index c7b8067..ffdbb58 100644 --- a/hw/audio/cs4231a.c +++ b/hw/audio/cs4231a.c @@ -706,7 +706,7 @@ static void cs4231a_class_initfn (ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_SOUND, dc->categories); dc->desc = "Crystal Semiconductor CS4231A"; dc->vmsd = &vmstate_cs4231a; - dc->props = cs4231a_properties; + device_class_set_props(dc, cs4231a_properties); } static const TypeInfo cs4231a_info = { diff --git a/hw/audio/es1370.c b/hw/audio/es1370.c index f9e9f2a..89c4dab 100644 --- a/hw/audio/es1370.c +++ b/hw/audio/es1370.c @@ -908,7 +908,7 @@ static void es1370_class_init (ObjectClass *klass, void *data) dc->desc = "ENSONIQ AudioPCI ES1370"; dc->vmsd = &vmstate_es1370; dc->reset = es1370_on_reset; - dc->props = es1370_properties; + device_class_set_props(dc, es1370_properties); } static const TypeInfo es1370_info = { diff --git a/hw/audio/gus.c b/hw/audio/gus.c index 2b6b7c4..eb4a803 100644 --- a/hw/audio/gus.c +++ b/hw/audio/gus.c @@ -315,7 +315,7 @@ static void gus_class_initfn (ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_SOUND, dc->categories); dc->desc = "Gravis Ultrasound GF1"; dc->vmsd = &vmstate_gus; - dc->props = gus_properties; + device_class_set_props(dc, gus_properties); } static const TypeInfo gus_info = { diff --git a/hw/audio/hda-codec.c b/hw/audio/hda-codec.c index e711a99..cbd92b7 100644 --- a/hw/audio/hda-codec.c +++ b/hw/audio/hda-codec.c @@ -892,7 +892,7 @@ static void hda_audio_base_class_init(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_SOUND, dc->categories); dc->reset = hda_audio_reset; dc->vmsd = &vmstate_hda_audio; - dc->props = hda_audio_properties; + device_class_set_props(dc, hda_audio_properties); } static const TypeInfo hda_audio_info = { diff --git a/hw/audio/intel-hda.c b/hw/audio/intel-hda.c index 6ecd383..e96a707 100644 --- a/hw/audio/intel-hda.c +++ b/hw/audio/intel-hda.c @@ -1233,7 +1233,7 @@ static void intel_hda_class_init(ObjectClass *klass, void *data) k->class_id = PCI_CLASS_MULTIMEDIA_HD_AUDIO; dc->reset = intel_hda_reset; dc->vmsd = &vmstate_intel_hda; - dc->props = intel_hda_properties; + device_class_set_props(dc, intel_hda_properties); } static void intel_hda_class_init_ich6(ObjectClass *klass, void *data) @@ -1289,7 +1289,7 @@ static void hda_codec_device_class_init(ObjectClass *klass, void *data) k->unrealize = hda_codec_dev_unrealize; set_bit(DEVICE_CATEGORY_SOUND, k->categories); k->bus_type = TYPE_HDA_BUS; - k->props = hda_props; + device_class_set_props(k, hda_props); } static const TypeInfo hda_codec_device_type_info = { diff --git a/hw/audio/milkymist-ac97.c b/hw/audio/milkymist-ac97.c index 6d409ef..0fa38ad 100644 --- a/hw/audio/milkymist-ac97.c +++ b/hw/audio/milkymist-ac97.c @@ -342,7 +342,7 @@ static void milkymist_ac97_class_init(ObjectClass *klass, void *data) dc->realize = milkymist_ac97_realize; dc->reset = milkymist_ac97_reset; dc->vmsd = &vmstate_milkymist_ac97; - dc->props = milkymist_ac97_properties; + device_class_set_props(dc, milkymist_ac97_properties); } static const TypeInfo milkymist_ac97_info = { diff --git a/hw/audio/pcspk.c b/hw/audio/pcspk.c index d773eb8..29dc00b 100644 --- a/hw/audio/pcspk.c +++ b/hw/audio/pcspk.c @@ -222,7 +222,7 @@ static void pcspk_class_initfn(ObjectClass *klass, void *data) dc->realize = pcspk_realizefn; set_bit(DEVICE_CATEGORY_SOUND, dc->categories); dc->vmsd = &vmstate_spk; - dc->props = pcspk_properties; + device_class_set_props(dc, pcspk_properties); /* Reason: realize sets global pcspk_state */ /* Reason: pit object link */ dc->user_creatable = false; diff --git a/hw/audio/pl041.c b/hw/audio/pl041.c index c30417d..c3d3eab 100644 --- a/hw/audio/pl041.c +++ b/hw/audio/pl041.c @@ -640,7 +640,7 @@ static void pl041_device_class_init(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_SOUND, dc->categories); dc->reset = pl041_device_reset; dc->vmsd = &vmstate_pl041; - dc->props = pl041_device_properties; + device_class_set_props(dc, pl041_device_properties); } static const TypeInfo pl041_device_info = { diff --git a/hw/audio/sb16.c b/hw/audio/sb16.c index a354f94..df6f755 100644 --- a/hw/audio/sb16.c +++ b/hw/audio/sb16.c @@ -1439,7 +1439,7 @@ static void sb16_class_initfn (ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_SOUND, dc->categories); dc->desc = "Creative Sound Blaster 16"; dc->vmsd = &vmstate_sb16; - dc->props = sb16_properties; + device_class_set_props(dc, sb16_properties); } static const TypeInfo sb16_info = { diff --git a/hw/audio/wm8750.c b/hw/audio/wm8750.c index 601ed04..92b2902 100644 --- a/hw/audio/wm8750.c +++ b/hw/audio/wm8750.c @@ -717,7 +717,7 @@ static void wm8750_class_init(ObjectClass *klass, void *data) sc->recv = wm8750_rx; sc->send = wm8750_tx; dc->vmsd = &vmstate_wm8750; - dc->props = wm8750_properties; + device_class_set_props(dc, wm8750_properties); } static const TypeInfo wm8750_info = { diff --git a/hw/block/fdc.c b/hw/block/fdc.c index ac5d31e..22e954e 100644 --- a/hw/block/fdc.c +++ b/hw/block/fdc.c @@ -606,7 +606,7 @@ static void floppy_drive_class_init(ObjectClass *klass, void *data) k->realize = floppy_drive_realize; set_bit(DEVICE_CATEGORY_STORAGE, k->categories); k->bus_type = TYPE_FLOPPY_BUS; - k->props = floppy_drive_properties; + device_class_set_props(k, floppy_drive_properties); k->desc = "virtual floppy drive"; } @@ -2827,7 +2827,7 @@ static void isabus_fdc_class_init(ObjectClass *klass, void *data) dc->fw_name = "fdc"; dc->reset = fdctrl_external_reset_isa; dc->vmsd = &vmstate_isa_fdc; - dc->props = isa_fdc_properties; + device_class_set_props(dc, isa_fdc_properties); set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); } @@ -2880,7 +2880,7 @@ static void sysbus_fdc_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = sysbus_fdc_properties; + device_class_set_props(dc, sysbus_fdc_properties); set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); } @@ -2906,7 +2906,7 @@ static void sun4m_fdc_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = sun4m_fdc_properties; + device_class_set_props(dc, sun4m_fdc_properties); set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); } diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c index 11ff5b9..61f2fb8 100644 --- a/hw/block/m25p80.c +++ b/hw/block/m25p80.c @@ -1391,7 +1391,7 @@ static void m25p80_class_init(ObjectClass *klass, void *data) k->set_cs = m25p80_cs; k->cs_polarity = SSI_CS_LOW; dc->vmsd = &vmstate_m25p80; - dc->props = m25p80_properties; + device_class_set_props(dc, m25p80_properties); dc->reset = m25p80_reset; mc->pi = data; } diff --git a/hw/block/nand.c b/hw/block/nand.c index e396004..bba8968 100644 --- a/hw/block/nand.c +++ b/hw/block/nand.c @@ -448,7 +448,7 @@ static void nand_class_init(ObjectClass *klass, void *data) dc->realize = nand_realize; dc->reset = nand_reset; dc->vmsd = &vmstate_nand; - dc->props = nand_properties; + device_class_set_props(dc, nand_properties); } static const TypeInfo nand_info = { diff --git a/hw/block/nvme.c b/hw/block/nvme.c index 12d8254..d28335c 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -1475,7 +1475,7 @@ static void nvme_class_init(ObjectClass *oc, void *data) set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); dc->desc = "Non-Volatile Memory Express"; - dc->props = nvme_props; + device_class_set_props(dc, nvme_props); dc->vmsd = &nvme_vmstate; } diff --git a/hw/block/onenand.c b/hw/block/onenand.c index 9c233c1..898ac56 100644 --- a/hw/block/onenand.c +++ b/hw/block/onenand.c @@ -845,7 +845,7 @@ static void onenand_class_init(ObjectClass *klass, void *data) dc->realize = onenand_realize; dc->reset = onenand_system_reset; - dc->props = onenand_properties; + device_class_set_props(dc, onenand_properties); } static const TypeInfo onenand_info = { diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c index 54e6ebd..24f3bce 100644 --- a/hw/block/pflash_cfi01.c +++ b/hw/block/pflash_cfi01.c @@ -930,7 +930,7 @@ static void pflash_cfi01_class_init(ObjectClass *klass, void *data) dc->reset = pflash_cfi01_system_reset; dc->realize = pflash_cfi01_realize; - dc->props = pflash_cfi01_properties; + device_class_set_props(dc, pflash_cfi01_properties); dc->vmsd = &vmstate_pflash; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); } diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index c7d92c3..7c4744c 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -963,7 +963,7 @@ static void pflash_cfi02_class_init(ObjectClass *klass, void *data) dc->realize = pflash_cfi02_realize; dc->unrealize = pflash_cfi02_unrealize; - dc->props = pflash_cfi02_properties; + device_class_set_props(dc, pflash_cfi02_properties); set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); } diff --git a/hw/block/swim.c b/hw/block/swim.c index c6d117e..8f12478 100644 --- a/hw/block/swim.c +++ b/hw/block/swim.c @@ -239,7 +239,7 @@ static void swim_drive_class_init(ObjectClass *klass, void *data) k->realize = swim_drive_realize; set_bit(DEVICE_CATEGORY_STORAGE, k->categories); k->bus_type = TYPE_SWIM_BUS; - k->props = swim_drive_properties; + device_class_set_props(k, swim_drive_properties); k->desc = "virtual SWIM drive"; } diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c index 98b383f..d8c459c 100644 --- a/hw/block/vhost-user-blk.c +++ b/hw/block/vhost-user-blk.c @@ -511,7 +511,7 @@ static void vhost_user_blk_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass); - dc->props = vhost_user_blk_properties; + device_class_set_props(dc, vhost_user_blk_properties); dc->vmsd = &vmstate_vhost_user_blk; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); vdc->realize = vhost_user_blk_device_realize; diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index 9bee514..09f46ed 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -1294,7 +1294,7 @@ static void virtio_blk_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass); - dc->props = virtio_blk_properties; + device_class_set_props(dc, virtio_blk_properties); dc->vmsd = &vmstate_virtio_blk; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); vdc->realize = virtio_blk_device_realize; diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c index 879fc31..686bbc3 100644 --- a/hw/block/xen-block.c +++ b/hw/block/xen-block.c @@ -554,7 +554,7 @@ static void xen_block_class_init(ObjectClass *class, void *data) xendev_class->frontend_changed = xen_block_frontend_changed; xendev_class->unrealize = xen_block_unrealize; - dev_class->props = xen_block_props; + device_class_set_props(dev_class, xen_block_props); } static const TypeInfo xen_block_type_info = { diff --git a/hw/char/bcm2835_aux.c b/hw/char/bcm2835_aux.c index a6fc1bf..ee3dd40 100644 --- a/hw/char/bcm2835_aux.c +++ b/hw/char/bcm2835_aux.c @@ -299,7 +299,7 @@ static void bcm2835_aux_class_init(ObjectClass *oc, void *data) dc->realize = bcm2835_aux_realize; dc->vmsd = &vmstate_bcm2835_aux; set_bit(DEVICE_CATEGORY_INPUT, dc->categories); - dc->props = bcm2835_aux_props; + device_class_set_props(dc, bcm2835_aux_props); } static const TypeInfo bcm2835_aux_info = { diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c index 51791bd..22e4797 100644 --- a/hw/char/cadence_uart.c +++ b/hw/char/cadence_uart.c @@ -550,7 +550,7 @@ static void cadence_uart_class_init(ObjectClass *klass, void *data) dc->realize = cadence_uart_realize; dc->vmsd = &vmstate_cadence_uart; dc->reset = cadence_uart_reset; - dc->props = cadence_uart_properties; + device_class_set_props(dc, cadence_uart_properties); } static const TypeInfo cadence_uart_info = { diff --git a/hw/char/cmsdk-apb-uart.c b/hw/char/cmsdk-apb-uart.c index 9e1aa43..626b68f 100644 --- a/hw/char/cmsdk-apb-uart.c +++ b/hw/char/cmsdk-apb-uart.c @@ -389,7 +389,7 @@ static void cmsdk_apb_uart_class_init(ObjectClass *klass, void *data) dc->realize = cmsdk_apb_uart_realize; dc->vmsd = &cmsdk_apb_uart_vmstate; dc->reset = cmsdk_apb_uart_reset; - dc->props = cmsdk_apb_uart_properties; + device_class_set_props(dc, cmsdk_apb_uart_properties); } static const TypeInfo cmsdk_apb_uart_info = { diff --git a/hw/char/debugcon.c b/hw/char/debugcon.c index 5c592e0..c8d938e 100644 --- a/hw/char/debugcon.c +++ b/hw/char/debugcon.c @@ -125,7 +125,7 @@ static void debugcon_isa_class_initfn(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = debugcon_isa_realizefn; - dc->props = debugcon_isa_properties; + device_class_set_props(dc, debugcon_isa_properties); set_bit(DEVICE_CATEGORY_MISC, dc->categories); } diff --git a/hw/char/digic-uart.c b/hw/char/digic-uart.c index 033eba0..e130cb4 100644 --- a/hw/char/digic-uart.c +++ b/hw/char/digic-uart.c @@ -183,7 +183,7 @@ static void digic_uart_class_init(ObjectClass *klass, void *data) dc->realize = digic_uart_realize; dc->reset = digic_uart_reset; dc->vmsd = &vmstate_digic_uart; - dc->props = digic_uart_properties; + device_class_set_props(dc, digic_uart_properties); } static const TypeInfo digic_uart_info = { diff --git a/hw/char/escc.c b/hw/char/escc.c index c40c1d2..7d16ee8 100644 --- a/hw/char/escc.c +++ b/hw/char/escc.c @@ -865,7 +865,7 @@ static void escc_class_init(ObjectClass *klass, void *data) dc->reset = escc_reset; dc->realize = escc_realize; dc->vmsd = &vmstate_escc; - dc->props = escc_properties; + device_class_set_props(dc, escc_properties); set_bit(DEVICE_CATEGORY_INPUT, dc->categories); } diff --git a/hw/char/etraxfs_ser.c b/hw/char/etraxfs_ser.c index f34f767..947bdb6 100644 --- a/hw/char/etraxfs_ser.c +++ b/hw/char/etraxfs_ser.c @@ -244,7 +244,7 @@ static void etraxfs_ser_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->reset = etraxfs_ser_reset; - dc->props = etraxfs_ser_properties; + device_class_set_props(dc, etraxfs_ser_properties); dc->realize = etraxfs_ser_realize; } diff --git a/hw/char/exynos4210_uart.c b/hw/char/exynos4210_uart.c index 7e5c5ce..238aa0a 100644 --- a/hw/char/exynos4210_uart.c +++ b/hw/char/exynos4210_uart.c @@ -645,7 +645,7 @@ static void exynos4210_uart_class_init(ObjectClass *klass, void *data) dc->realize = exynos4210_uart_realize; dc->reset = exynos4210_uart_reset; - dc->props = exynos4210_uart_properties; + device_class_set_props(dc, exynos4210_uart_properties); dc->vmsd = &vmstate_exynos4210_uart; } diff --git a/hw/char/grlib_apbuart.c b/hw/char/grlib_apbuart.c index 8e59c3b..16d0fea 100644 --- a/hw/char/grlib_apbuart.c +++ b/hw/char/grlib_apbuart.c @@ -285,7 +285,7 @@ static void grlib_apbuart_class_init(ObjectClass *klass, void *data) dc->realize = grlib_apbuart_realize; dc->reset = grlib_apbuart_reset; - dc->props = grlib_apbuart_properties; + device_class_set_props(dc, grlib_apbuart_properties); } static const TypeInfo grlib_apbuart_info = { diff --git a/hw/char/imx_serial.c b/hw/char/imx_serial.c index d09c210..731b8fc 100644 --- a/hw/char/imx_serial.c +++ b/hw/char/imx_serial.c @@ -372,7 +372,7 @@ static void imx_serial_class_init(ObjectClass *klass, void *data) dc->reset = imx_serial_reset_at_boot; set_bit(DEVICE_CATEGORY_INPUT, dc->categories); dc->desc = "i.MX series UART"; - dc->props = imx_serial_properties; + device_class_set_props(dc, imx_serial_properties); } static const TypeInfo imx_serial_info = { diff --git a/hw/char/ipoctal232.c b/hw/char/ipoctal232.c index 80e9dff..d7c497b 100644 --- a/hw/char/ipoctal232.c +++ b/hw/char/ipoctal232.c @@ -588,7 +588,7 @@ static void ipoctal_class_init(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_INPUT, dc->categories); dc->desc = "GE IP-Octal 232 8-channel RS-232 IndustryPack"; - dc->props = ipoctal_properties; + device_class_set_props(dc, ipoctal_properties); dc->vmsd = &vmstate_ipoctal; } diff --git a/hw/char/lm32_juart.c b/hw/char/lm32_juart.c index da9dd56..3f34861 100644 --- a/hw/char/lm32_juart.c +++ b/hw/char/lm32_juart.c @@ -146,7 +146,7 @@ static void lm32_juart_class_init(ObjectClass *klass, void *data) dc->reset = juart_reset; dc->vmsd = &vmstate_lm32_juart; - dc->props = lm32_juart_properties; + device_class_set_props(dc, lm32_juart_properties); dc->realize = lm32_juart_realize; } diff --git a/hw/char/lm32_uart.c b/hw/char/lm32_uart.c index 8d7a475..b0b1092 100644 --- a/hw/char/lm32_uart.c +++ b/hw/char/lm32_uart.c @@ -293,7 +293,7 @@ static void lm32_uart_class_init(ObjectClass *klass, void *data) dc->reset = uart_reset; dc->vmsd = &vmstate_lm32_uart; - dc->props = lm32_uart_properties; + device_class_set_props(dc, lm32_uart_properties); dc->realize = lm32_uart_realize; } diff --git a/hw/char/mcf_uart.c b/hw/char/mcf_uart.c index 2de3680..97e4bbc 100644 --- a/hw/char/mcf_uart.c +++ b/hw/char/mcf_uart.c @@ -320,7 +320,7 @@ static void mcf_uart_class_init(ObjectClass *oc, void *data) dc->realize = mcf_uart_realize; dc->reset = mcf_uart_reset; - dc->props = mcf_uart_properties; + device_class_set_props(dc, mcf_uart_properties); set_bit(DEVICE_CATEGORY_INPUT, dc->categories); } diff --git a/hw/char/milkymist-uart.c b/hw/char/milkymist-uart.c index 1c7b614..1439efb 100644 --- a/hw/char/milkymist-uart.c +++ b/hw/char/milkymist-uart.c @@ -239,7 +239,7 @@ static void milkymist_uart_class_init(ObjectClass *klass, void *data) dc->realize = milkymist_uart_realize; dc->reset = milkymist_uart_reset; dc->vmsd = &vmstate_milkymist_uart; - dc->props = milkymist_uart_properties; + device_class_set_props(dc, milkymist_uart_properties); } static const TypeInfo milkymist_uart_info = { diff --git a/hw/char/nrf51_uart.c b/hw/char/nrf51_uart.c index b67fd21..d1fef77 100644 --- a/hw/char/nrf51_uart.c +++ b/hw/char/nrf51_uart.c @@ -314,7 +314,7 @@ static void nrf51_uart_class_init(ObjectClass *klass, void *data) dc->reset = nrf51_uart_reset; dc->realize = nrf51_uart_realize; - dc->props = nrf51_uart_properties; + device_class_set_props(dc, nrf51_uart_properties); dc->vmsd = &nrf51_uart_vmstate; } diff --git a/hw/char/parallel.c b/hw/char/parallel.c index 40174ee..8dd67d1 100644 --- a/hw/char/parallel.c +++ b/hw/char/parallel.c @@ -627,7 +627,7 @@ static void parallel_isa_class_initfn(ObjectClass *klass, void *data) dc->realize = parallel_isa_realizefn; dc->vmsd = &vmstate_parallel_isa; - dc->props = parallel_isa_properties; + device_class_set_props(dc, parallel_isa_properties); set_bit(DEVICE_CATEGORY_INPUT, dc->categories); } diff --git a/hw/char/pl011.c b/hw/char/pl011.c index 23cd544..13e784f 100644 --- a/hw/char/pl011.c +++ b/hw/char/pl011.c @@ -356,7 +356,7 @@ static void pl011_class_init(ObjectClass *oc, void *data) dc->realize = pl011_realize; dc->vmsd = &vmstate_pl011; - dc->props = pl011_properties; + device_class_set_props(dc, pl011_properties); } static const TypeInfo pl011_arm_info = { diff --git a/hw/char/sclpconsole-lm.c b/hw/char/sclpconsole-lm.c index 3926062..c420dc0 100644 --- a/hw/char/sclpconsole-lm.c +++ b/hw/char/sclpconsole-lm.c @@ -342,7 +342,7 @@ static void console_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); SCLPEventClass *ec = SCLP_EVENT_CLASS(klass); - dc->props = console_properties; + device_class_set_props(dc, console_properties); dc->reset = console_reset; dc->vmsd = &vmstate_sclplmconsole; ec->init = console_init; diff --git a/hw/char/sclpconsole.c b/hw/char/sclpconsole.c index da126f0..1fa124d 100644 --- a/hw/char/sclpconsole.c +++ b/hw/char/sclpconsole.c @@ -258,7 +258,7 @@ static void console_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); SCLPEventClass *ec = SCLP_EVENT_CLASS(klass); - dc->props = console_properties; + device_class_set_props(dc, console_properties); dc->reset = console_reset; dc->vmsd = &vmstate_sclpconsole; ec->init = console_init; diff --git a/hw/char/serial-isa.c b/hw/char/serial-isa.c index db86445..f9b6eed 100644 --- a/hw/char/serial-isa.c +++ b/hw/char/serial-isa.c @@ -106,7 +106,7 @@ static void serial_isa_class_initfn(ObjectClass *klass, void *data) dc->realize = serial_isa_realizefn; dc->vmsd = &vmstate_isa_serial; - dc->props = serial_isa_properties; + device_class_set_props(dc, serial_isa_properties); set_bit(DEVICE_CATEGORY_INPUT, dc->categories); } diff --git a/hw/char/serial-pci-multi.c b/hw/char/serial-pci-multi.c index e343a12..1742cb7 100644 --- a/hw/char/serial-pci-multi.c +++ b/hw/char/serial-pci-multi.c @@ -161,7 +161,7 @@ static void multi_2x_serial_pci_class_initfn(ObjectClass *klass, void *data) pc->revision = 1; pc->class_id = PCI_CLASS_COMMUNICATION_SERIAL; dc->vmsd = &vmstate_pci_multi_serial; - dc->props = multi_2x_serial_pci_properties; + device_class_set_props(dc, multi_2x_serial_pci_properties); set_bit(DEVICE_CATEGORY_INPUT, dc->categories); } @@ -176,7 +176,7 @@ static void multi_4x_serial_pci_class_initfn(ObjectClass *klass, void *data) pc->revision = 1; pc->class_id = PCI_CLASS_COMMUNICATION_SERIAL; dc->vmsd = &vmstate_pci_multi_serial; - dc->props = multi_4x_serial_pci_properties; + device_class_set_props(dc, multi_4x_serial_pci_properties); set_bit(DEVICE_CATEGORY_INPUT, dc->categories); } diff --git a/hw/char/serial-pci.c b/hw/char/serial-pci.c index b6a73c6..743552c 100644 --- a/hw/char/serial-pci.c +++ b/hw/char/serial-pci.c @@ -100,7 +100,7 @@ static void serial_pci_class_initfn(ObjectClass *klass, void *data) pc->revision = 1; pc->class_id = PCI_CLASS_COMMUNICATION_SERIAL; dc->vmsd = &vmstate_pci_serial; - dc->props = serial_pci_properties; + device_class_set_props(dc, serial_pci_properties); set_bit(DEVICE_CATEGORY_INPUT, dc->categories); } diff --git a/hw/char/serial.c b/hw/char/serial.c index d167c43..9298881 100644 --- a/hw/char/serial.c +++ b/hw/char/serial.c @@ -1044,7 +1044,7 @@ static void serial_class_init(ObjectClass *klass, void* data) dc->realize = serial_realize; dc->unrealize = serial_unrealize; dc->vmsd = &vmstate_serial; - dc->props = serial_properties; + device_class_set_props(dc, serial_properties); } static const TypeInfo serial_info = { @@ -1159,7 +1159,7 @@ static void serial_mm_class_init(ObjectClass *oc, void *data) { DeviceClass *dc = DEVICE_CLASS(oc); - dc->props = serial_mm_properties; + device_class_set_props(dc, serial_mm_properties); dc->realize = serial_mm_realize; } diff --git a/hw/char/spapr_vty.c b/hw/char/spapr_vty.c index 8f4d9fe..ecb94f5 100644 --- a/hw/char/spapr_vty.c +++ b/hw/char/spapr_vty.c @@ -193,7 +193,7 @@ static void spapr_vty_class_init(ObjectClass *klass, void *data) k->dt_type = "serial"; k->dt_compatible = "hvterm1"; set_bit(DEVICE_CATEGORY_INPUT, dc->categories); - dc->props = spapr_vty_properties; + device_class_set_props(dc, spapr_vty_properties); dc->vmsd = &vmstate_spapr_vty; } diff --git a/hw/char/stm32f2xx_usart.c b/hw/char/stm32f2xx_usart.c index 4ec843d..0d661be 100644 --- a/hw/char/stm32f2xx_usart.c +++ b/hw/char/stm32f2xx_usart.c @@ -222,7 +222,7 @@ static void stm32f2xx_usart_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->reset = stm32f2xx_usart_reset; - dc->props = stm32f2xx_usart_properties; + device_class_set_props(dc, stm32f2xx_usart_properties); dc->realize = stm32f2xx_usart_realize; } diff --git a/hw/char/terminal3270.c b/hw/char/terminal3270.c index f7aba12..2c47ebf 100644 --- a/hw/char/terminal3270.c +++ b/hw/char/terminal3270.c @@ -288,7 +288,7 @@ static void terminal_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); EmulatedCcw3270Class *ck = EMULATED_CCW_3270_CLASS(klass); - dc->props = terminal_properties; + device_class_set_props(dc, terminal_properties); dc->vmsd = &terminal3270_vmstate; ck->init = terminal_init; ck->read_payload_3270 = read_payload_3270; diff --git a/hw/char/virtio-console.c b/hw/char/virtio-console.c index a7d34fe..b010c21 100644 --- a/hw/char/virtio-console.c +++ b/hw/char/virtio-console.c @@ -287,7 +287,7 @@ static void virtserialport_class_init(ObjectClass *klass, void *data) k->set_guest_connected = set_guest_connected; k->enable_backend = virtconsole_enable_backend; k->guest_writable = guest_writable; - dc->props = virtserialport_properties; + device_class_set_props(dc, virtserialport_properties); } static const TypeInfo virtserialport_info = { diff --git a/hw/char/virtio-serial-bus.c b/hw/char/virtio-serial-bus.c index e1cbce3..941ed5a 100644 --- a/hw/char/virtio-serial-bus.c +++ b/hw/char/virtio-serial-bus.c @@ -1110,7 +1110,7 @@ static void virtio_serial_port_class_init(ObjectClass *klass, void *data) k->bus_type = TYPE_VIRTIO_SERIAL_BUS; k->realize = virtser_port_device_realize; k->unrealize = virtser_port_device_unrealize; - k->props = virtser_props; + device_class_set_props(k, virtser_props); } static const TypeInfo virtio_serial_port_type_info = { @@ -1179,7 +1179,7 @@ static void virtio_serial_class_init(ObjectClass *klass, void *data) QLIST_INIT(&vserdevices.devices); - dc->props = virtio_serial_properties; + device_class_set_props(dc, virtio_serial_properties); dc->vmsd = &vmstate_virtio_console; set_bit(DEVICE_CATEGORY_INPUT, dc->categories); vdc->realize = virtio_serial_device_realize; diff --git a/hw/char/xilinx_uartlite.c b/hw/char/xilinx_uartlite.c index aa6bf02..c651228 100644 --- a/hw/char/xilinx_uartlite.c +++ b/hw/char/xilinx_uartlite.c @@ -236,7 +236,7 @@ static void xilinx_uartlite_class_init(ObjectClass *klass, void *data) dc->reset = xilinx_uartlite_reset; dc->realize = xilinx_uartlite_realize; - dc->props = xilinx_uartlite_properties; + device_class_set_props(dc, xilinx_uartlite_properties); } static const TypeInfo xilinx_uartlite_info = { diff --git a/hw/core/cpu.c b/hw/core/cpu.c index fde5fd3..fe65ca6 100644 --- a/hw/core/cpu.c +++ b/hw/core/cpu.c @@ -440,7 +440,7 @@ static void cpu_class_init(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_CPU, dc->categories); dc->realize = cpu_common_realizefn; dc->unrealize = cpu_common_unrealizefn; - dc->props = cpu_common_props; + device_class_set_props(dc, cpu_common_props); /* * Reason: CPUs still need special care by board code: wiring up * IRQs, adding reset handlers, halting non-first CPUs, ... diff --git a/hw/core/generic-loader.c b/hw/core/generic-loader.c index 4b1fc86..e7eb57e 100644 --- a/hw/core/generic-loader.c +++ b/hw/core/generic-loader.c @@ -201,7 +201,7 @@ static void generic_loader_class_init(ObjectClass *klass, void *data) */ dc->realize = generic_loader_realize; dc->unrealize = generic_loader_unrealize; - dc->props = generic_loader_props; + device_class_set_props(dc, generic_loader_props); dc->desc = "Generic Loader"; set_bit(DEVICE_CATEGORY_MISC, dc->categories); } diff --git a/hw/core/or-irq.c b/hw/core/or-irq.c index 18d6383..4bbdbcb 100644 --- a/hw/core/or-irq.c +++ b/hw/core/or-irq.c @@ -125,7 +125,7 @@ static void or_irq_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->reset = or_irq_reset; - dc->props = or_irq_properties; + device_class_set_props(dc, or_irq_properties); dc->realize = or_irq_realize; dc->vmsd = &vmstate_or_irq; diff --git a/hw/core/platform-bus.c b/hw/core/platform-bus.c index edb0da1..22c5f76 100644 --- a/hw/core/platform-bus.c +++ b/hw/core/platform-bus.c @@ -211,7 +211,7 @@ static void platform_bus_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = platform_bus_realize; - dc->props = platform_bus_properties; + device_class_set_props(dc, platform_bus_properties); } static const TypeInfo platform_bus_info = { diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 8708605..8047ac9 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -1061,6 +1061,11 @@ static void device_class_init(ObjectClass *class, void *data) vc->get_id = device_vmstate_if_get_id; } +void device_class_set_props(DeviceClass *dc, Property *props) +{ + dc->props = props; +} + void device_class_set_parent_reset(DeviceClass *dc, DeviceReset dev_reset, DeviceReset *parent_reset) diff --git a/hw/core/split-irq.c b/hw/core/split-irq.c index b5acc66..3b90af2 100644 --- a/hw/core/split-irq.c +++ b/hw/core/split-irq.c @@ -69,7 +69,7 @@ static void split_irq_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); /* No state to reset or migrate */ - dc->props = split_irq_properties; + device_class_set_props(dc, split_irq_properties); dc->realize = split_irq_realize; /* Reason: Needs to be wired up to work */ diff --git a/hw/cpu/a15mpcore.c b/hw/cpu/a15mpcore.c index 7e9983a..4f65911 100644 --- a/hw/cpu/a15mpcore.c +++ b/hw/cpu/a15mpcore.c @@ -164,7 +164,7 @@ static void a15mp_priv_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = a15mp_priv_realize; - dc->props = a15mp_priv_properties; + device_class_set_props(dc, a15mp_priv_properties); /* We currently have no savable state */ } diff --git a/hw/cpu/a9mpcore.c b/hw/cpu/a9mpcore.c index 6872a3a..1f8bc8a 100644 --- a/hw/cpu/a9mpcore.c +++ b/hw/cpu/a9mpcore.c @@ -175,7 +175,7 @@ static void a9mp_priv_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = a9mp_priv_realize; - dc->props = a9mp_priv_properties; + device_class_set_props(dc, a9mp_priv_properties); } static const TypeInfo a9mp_priv_info = { diff --git a/hw/cpu/arm11mpcore.c b/hw/cpu/arm11mpcore.c index e78f5d0..2e3e87c 100644 --- a/hw/cpu/arm11mpcore.c +++ b/hw/cpu/arm11mpcore.c @@ -156,7 +156,7 @@ static void mpcore_priv_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = mpcore_priv_realize; - dc->props = mpcore_priv_properties; + device_class_set_props(dc, mpcore_priv_properties); } static const TypeInfo mpcore_priv_info = { diff --git a/hw/cpu/cluster.c b/hw/cpu/cluster.c index 349a883..e444b7c 100644 --- a/hw/cpu/cluster.c +++ b/hw/cpu/cluster.c @@ -78,7 +78,7 @@ static void cpu_cluster_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = cpu_cluster_properties; + device_class_set_props(dc, cpu_cluster_properties); dc->realize = cpu_cluster_realize; /* This is not directly for users, CPU children must be attached by code */ diff --git a/hw/cpu/realview_mpcore.c b/hw/cpu/realview_mpcore.c index ae2c991..cc2767c 100644 --- a/hw/cpu/realview_mpcore.c +++ b/hw/cpu/realview_mpcore.c @@ -125,7 +125,7 @@ static void mpcore_rirq_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = realview_mpcore_realize; - dc->props = mpcore_rirq_properties; + device_class_set_props(dc, mpcore_rirq_properties); } static const TypeInfo mpcore_rirq_info = { diff --git a/hw/display/ati.c b/hw/display/ati.c index db3b254..58ec829 100644 --- a/hw/display/ati.c +++ b/hw/display/ati.c @@ -980,7 +980,7 @@ static void ati_vga_class_init(ObjectClass *klass, void *data) PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); dc->reset = ati_vga_reset; - dc->props = ati_vga_properties; + device_class_set_props(dc, ati_vga_properties); dc->hotpluggable = false; set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories); diff --git a/hw/display/bcm2835_fb.c b/hw/display/bcm2835_fb.c index 85aaa54..d6bf337 100644 --- a/hw/display/bcm2835_fb.c +++ b/hw/display/bcm2835_fb.c @@ -451,7 +451,7 @@ static void bcm2835_fb_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = bcm2835_fb_props; + device_class_set_props(dc, bcm2835_fb_props); dc->realize = bcm2835_fb_realize; dc->reset = bcm2835_fb_reset; dc->vmsd = &vmstate_bcm2835_fb; diff --git a/hw/display/bochs-display.c b/hw/display/bochs-display.c index 215db9a..62085f9 100644 --- a/hw/display/bochs-display.c +++ b/hw/display/bochs-display.c @@ -364,7 +364,7 @@ static void bochs_display_class_init(ObjectClass *klass, void *data) k->romfile = "vgabios-bochs-display.bin"; k->exit = bochs_display_exit; dc->vmsd = &vmstate_bochs_display; - dc->props = bochs_display_properties; + device_class_set_props(dc, bochs_display_properties); set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories); } diff --git a/hw/display/cg3.c b/hw/display/cg3.c index f90baae..4fb67c6 100644 --- a/hw/display/cg3.c +++ b/hw/display/cg3.c @@ -382,7 +382,7 @@ static void cg3_class_init(ObjectClass *klass, void *data) dc->realize = cg3_realizefn; dc->reset = cg3_reset; dc->vmsd = &vmstate_cg3; - dc->props = cg3_properties; + device_class_set_props(dc, cg3_properties); } static const TypeInfo cg3_info = { diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c index cd283e5..0d391e1 100644 --- a/hw/display/cirrus_vga.c +++ b/hw/display/cirrus_vga.c @@ -3031,7 +3031,7 @@ static void cirrus_vga_class_init(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories); dc->desc = "Cirrus CLGD 54xx VGA"; dc->vmsd = &vmstate_pci_cirrus_vga; - dc->props = pci_vga_cirrus_properties; + device_class_set_props(dc, pci_vga_cirrus_properties); dc->hotpluggable = false; } diff --git a/hw/display/cirrus_vga_isa.c b/hw/display/cirrus_vga_isa.c index 7ef8e59..825ba57 100644 --- a/hw/display/cirrus_vga_isa.c +++ b/hw/display/cirrus_vga_isa.c @@ -80,7 +80,7 @@ static void isa_cirrus_vga_class_init(ObjectClass *klass, void *data) dc->vmsd = &vmstate_cirrus_vga; dc->realize = isa_cirrus_vga_realizefn; - dc->props = isa_cirrus_vga_properties; + device_class_set_props(dc, isa_cirrus_vga_properties); set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories); } diff --git a/hw/display/g364fb.c b/hw/display/g364fb.c index 839d26e..55185c9 100644 --- a/hw/display/g364fb.c +++ b/hw/display/g364fb.c @@ -526,7 +526,7 @@ static void g364fb_sysbus_class_init(ObjectClass *klass, void *data) dc->desc = "G364 framebuffer"; dc->reset = g364fb_sysbus_reset; dc->vmsd = &vmstate_g364fb; - dc->props = g364fb_sysbus_properties; + device_class_set_props(dc, g364fb_sysbus_properties); } static const TypeInfo g364fb_sysbus_info = { diff --git a/hw/display/i2c-ddc.c b/hw/display/i2c-ddc.c index fc70b79..13eb529 100644 --- a/hw/display/i2c-ddc.c +++ b/hw/display/i2c-ddc.c @@ -107,7 +107,7 @@ static void i2c_ddc_class_init(ObjectClass *oc, void *data) dc->reset = i2c_ddc_reset; dc->vmsd = &vmstate_i2c_ddc; - dc->props = i2c_ddc_properties; + device_class_set_props(dc, i2c_ddc_properties); isc->event = i2c_ddc_event; isc->recv = i2c_ddc_rx; isc->send = i2c_ddc_tx; diff --git a/hw/display/macfb.c b/hw/display/macfb.c index f4fa8e3..8bff16d 100644 --- a/hw/display/macfb.c +++ b/hw/display/macfb.c @@ -437,7 +437,7 @@ static void macfb_sysbus_class_init(ObjectClass *klass, void *data) dc->desc = "SysBus Macintosh framebuffer"; dc->reset = macfb_sysbus_reset; dc->vmsd = &vmstate_macfb; - dc->props = macfb_sysbus_properties; + device_class_set_props(dc, macfb_sysbus_properties); } static void macfb_nubus_class_init(ObjectClass *klass, void *data) @@ -450,7 +450,7 @@ static void macfb_nubus_class_init(ObjectClass *klass, void *data) dc->desc = "Nubus Macintosh framebuffer"; dc->reset = macfb_nubus_reset; dc->vmsd = &vmstate_macfb; - dc->props = macfb_nubus_properties; + device_class_set_props(dc, macfb_nubus_properties); } static TypeInfo macfb_sysbus_info = { diff --git a/hw/display/milkymist-vgafb.c b/hw/display/milkymist-vgafb.c index 8b0da46..6a6441e 100644 --- a/hw/display/milkymist-vgafb.c +++ b/hw/display/milkymist-vgafb.c @@ -341,7 +341,7 @@ static void milkymist_vgafb_class_init(ObjectClass *klass, void *data) dc->reset = milkymist_vgafb_reset; dc->vmsd = &vmstate_milkymist_vgafb; - dc->props = milkymist_vgafb_properties; + device_class_set_props(dc, milkymist_vgafb_properties); dc->realize = milkymist_vgafb_realize; } diff --git a/hw/display/qxl.c b/hw/display/qxl.c index 6d43b74..944c02c 100644 --- a/hw/display/qxl.c +++ b/hw/display/qxl.c @@ -2478,7 +2478,7 @@ static void qxl_pci_class_init(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories); dc->reset = qxl_reset_handler; dc->vmsd = &qxl_vmstate; - dc->props = qxl_properties; + device_class_set_props(dc, qxl_properties); } static const TypeInfo qxl_pci_type_info = { diff --git a/hw/display/ramfb-standalone.c b/hw/display/ramfb-standalone.c index 1f72450..d76a9d0 100644 --- a/hw/display/ramfb-standalone.c +++ b/hw/display/ramfb-standalone.c @@ -52,7 +52,7 @@ static void ramfb_class_initfn(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories); dc->realize = ramfb_realizefn; - dc->props = ramfb_properties; + device_class_set_props(dc, ramfb_properties); dc->desc = "ram framebuffer standalone device"; dc->user_creatable = true; } diff --git a/hw/display/sm501.c b/hw/display/sm501.c index 66a1bfb..de0ab9d 100644 --- a/hw/display/sm501.c +++ b/hw/display/sm501.c @@ -1995,7 +1995,7 @@ static void sm501_sysbus_class_init(ObjectClass *klass, void *data) dc->realize = sm501_realize_sysbus; set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories); dc->desc = "SM501 Multimedia Companion"; - dc->props = sm501_sysbus_properties; + device_class_set_props(dc, sm501_sysbus_properties); dc->reset = sm501_reset_sysbus; dc->vmsd = &vmstate_sm501_sysbus; } @@ -2085,7 +2085,7 @@ static void sm501_pci_class_init(ObjectClass *klass, void *data) k->class_id = PCI_CLASS_DISPLAY_OTHER; set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories); dc->desc = "SM501 Display Controller"; - dc->props = sm501_pci_properties; + device_class_set_props(dc, sm501_pci_properties); dc->reset = sm501_reset_pci; dc->hotpluggable = false; dc->vmsd = &vmstate_sm501_pci; diff --git a/hw/display/tcx.c b/hw/display/tcx.c index abbeb30..ca458f9 100644 --- a/hw/display/tcx.c +++ b/hw/display/tcx.c @@ -893,7 +893,7 @@ static void tcx_class_init(ObjectClass *klass, void *data) dc->realize = tcx_realizefn; dc->reset = tcx_reset; dc->vmsd = &vmstate_tcx; - dc->props = tcx_properties; + device_class_set_props(dc, tcx_properties); } static const TypeInfo tcx_info = { diff --git a/hw/display/vga-isa.c b/hw/display/vga-isa.c index 08a2730..0633ed3 100644 --- a/hw/display/vga-isa.c +++ b/hw/display/vga-isa.c @@ -95,7 +95,7 @@ static void vga_isa_class_initfn(ObjectClass *klass, void *data) dc->realize = vga_isa_realizefn; dc->reset = vga_isa_reset; dc->vmsd = &vmstate_vga_common; - dc->props = vga_isa_properties; + device_class_set_props(dc, vga_isa_properties); set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories); } diff --git a/hw/display/vga-pci.c b/hw/display/vga-pci.c index cfe0957..b346324 100644 --- a/hw/display/vga-pci.c +++ b/hw/display/vga-pci.c @@ -383,7 +383,7 @@ static void vga_class_init(ObjectClass *klass, void *data) k->realize = pci_std_vga_realize; k->romfile = "vgabios-stdvga.bin"; k->class_id = PCI_CLASS_DISPLAY_VGA; - dc->props = vga_pci_properties; + device_class_set_props(dc, vga_pci_properties); dc->hotpluggable = false; } @@ -395,7 +395,7 @@ static void secondary_class_init(ObjectClass *klass, void *data) k->realize = pci_secondary_vga_realize; k->exit = pci_secondary_vga_exit; k->class_id = PCI_CLASS_DISPLAY_OTHER; - dc->props = secondary_pci_properties; + device_class_set_props(dc, secondary_pci_properties); dc->reset = pci_secondary_vga_reset; } diff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c index 2798778..f0c7c6f 100644 --- a/hw/display/vhost-user-gpu.c +++ b/hw/display/vhost-user-gpu.c @@ -588,7 +588,7 @@ vhost_user_gpu_class_init(ObjectClass *klass, void *data) vdc->get_config = vhost_user_gpu_get_config; vdc->set_config = vhost_user_gpu_set_config; - dc->props = vhost_user_gpu_properties; + device_class_set_props(dc, vhost_user_gpu_properties); } static const TypeInfo vhost_user_gpu_info = { diff --git a/hw/display/virtio-gpu-pci.c b/hw/display/virtio-gpu-pci.c index 25e4038..3d152ff 100644 --- a/hw/display/virtio-gpu-pci.c +++ b/hw/display/virtio-gpu-pci.c @@ -56,7 +56,7 @@ static void virtio_gpu_pci_base_class_init(ObjectClass *klass, void *data) PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass); set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories); - dc->props = virtio_gpu_pci_base_properties; + device_class_set_props(dc, virtio_gpu_pci_base_properties); dc->hotpluggable = false; k->realize = virtio_gpu_pci_base_realize; pcidev_k->class_id = PCI_CLASS_DISPLAY_OTHER; diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c index 28e868c..5f0dd7c 100644 --- a/hw/display/virtio-gpu.c +++ b/hw/display/virtio-gpu.c @@ -1254,7 +1254,7 @@ static void virtio_gpu_class_init(ObjectClass *klass, void *data) vdc->set_config = virtio_gpu_set_config; dc->vmsd = &vmstate_virtio_gpu; - dc->props = virtio_gpu_properties; + device_class_set_props(dc, virtio_gpu_properties); } static const TypeInfo virtio_gpu_info = { diff --git a/hw/display/virtio-vga.c b/hw/display/virtio-vga.c index cc6e66e..2b4c2aa 100644 --- a/hw/display/virtio-vga.c +++ b/hw/display/virtio-vga.c @@ -184,7 +184,7 @@ static void virtio_vga_base_class_init(ObjectClass *klass, void *data) PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass); set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories); - dc->props = virtio_vga_base_properties; + device_class_set_props(dc, virtio_vga_base_properties); dc->vmsd = &vmstate_virtio_vga_base; dc->hotpluggable = false; device_class_set_parent_reset(dc, virtio_vga_base_reset, diff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c index ead754e..58ea82e 100644 --- a/hw/display/vmware_vga.c +++ b/hw/display/vmware_vga.c @@ -1336,7 +1336,7 @@ static void vmsvga_class_init(ObjectClass *klass, void *data) k->subsystem_id = SVGA_PCI_DEVICE_ID; dc->reset = vmsvga_reset; dc->vmsd = &vmstate_vmware_vga; - dc->props = vga_vmware_properties; + device_class_set_props(dc, vga_vmware_properties); dc->hotpluggable = false; set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories); } diff --git a/hw/dma/i82374.c b/hw/dma/i82374.c index b788b36..6977d85 100644 --- a/hw/dma/i82374.c +++ b/hw/dma/i82374.c @@ -149,7 +149,7 @@ static void i82374_class_init(ObjectClass *klass, void *data) dc->realize = i82374_realize; dc->vmsd = &vmstate_i82374; - dc->props = i82374_properties; + device_class_set_props(dc, i82374_properties); } static const TypeInfo i82374_info = { diff --git a/hw/dma/i8257.c b/hw/dma/i8257.c index 792f617..bad8deb 100644 --- a/hw/dma/i8257.c +++ b/hw/dma/i8257.c @@ -595,7 +595,7 @@ static void i8257_class_init(ObjectClass *klass, void *data) dc->realize = i8257_realize; dc->reset = i8257_reset; dc->vmsd = &vmstate_i8257; - dc->props = i8257_properties; + device_class_set_props(dc, i8257_properties); idc->get_transfer_mode = i8257_dma_get_transfer_mode; idc->has_autoinitialization = i8257_dma_has_autoinitialization; diff --git a/hw/dma/pl080.c b/hw/dma/pl080.c index 52ba23f..f1a586b 100644 --- a/hw/dma/pl080.c +++ b/hw/dma/pl080.c @@ -421,7 +421,7 @@ static void pl080_class_init(ObjectClass *oc, void *data) dc->vmsd = &vmstate_pl080; dc->realize = pl080_realize; - dc->props = pl080_properties; + device_class_set_props(dc, pl080_properties); dc->reset = pl080_reset; } diff --git a/hw/dma/pl330.c b/hw/dma/pl330.c index f2bb2d9..8c9625c 100644 --- a/hw/dma/pl330.c +++ b/hw/dma/pl330.c @@ -1656,7 +1656,7 @@ static void pl330_class_init(ObjectClass *klass, void *data) dc->realize = pl330_realize; dc->reset = pl330_reset; - dc->props = pl330_properties; + device_class_set_props(dc, pl330_properties); dc->vmsd = &vmstate_pl330; } diff --git a/hw/dma/pxa2xx_dma.c b/hw/dma/pxa2xx_dma.c index 18e7a0b..88ed4b6 100644 --- a/hw/dma/pxa2xx_dma.c +++ b/hw/dma/pxa2xx_dma.c @@ -566,7 +566,7 @@ static void pxa2xx_dma_class_init(ObjectClass *klass, void *data) dc->desc = "PXA2xx DMA controller"; dc->vmsd = &vmstate_pxa2xx_dma; - dc->props = pxa2xx_dma_properties; + device_class_set_props(dc, pxa2xx_dma_properties); dc->realize = pxa2xx_dma_realize; } diff --git a/hw/dma/xilinx_axidma.c b/hw/dma/xilinx_axidma.c index fb3a978..018f369 100644 --- a/hw/dma/xilinx_axidma.c +++ b/hw/dma/xilinx_axidma.c @@ -599,7 +599,7 @@ static void axidma_class_init(ObjectClass *klass, void *data) dc->realize = xilinx_axidma_realize, dc->reset = xilinx_axidma_reset; - dc->props = axidma_properties; + device_class_set_props(dc, axidma_properties); } static StreamSlaveClass xilinx_axidma_data_stream_class = { diff --git a/hw/dma/xlnx-zdma.c b/hw/dma/xlnx-zdma.c index 75b6609..8fb83f5 100644 --- a/hw/dma/xlnx-zdma.c +++ b/hw/dma/xlnx-zdma.c @@ -820,7 +820,7 @@ static void zdma_class_init(ObjectClass *klass, void *data) dc->reset = zdma_reset; dc->realize = zdma_realize; - dc->props = zdma_props; + device_class_set_props(dc, zdma_props); dc->vmsd = &vmstate_zdma; } diff --git a/hw/gpio/imx_gpio.c b/hw/gpio/imx_gpio.c index ac8304e..7a59180 100644 --- a/hw/gpio/imx_gpio.c +++ b/hw/gpio/imx_gpio.c @@ -335,7 +335,7 @@ static void imx_gpio_class_init(ObjectClass *klass, void *data) dc->realize = imx_gpio_realize; dc->reset = imx_gpio_reset; - dc->props = imx_gpio_properties; + device_class_set_props(dc, imx_gpio_properties); dc->vmsd = &vmstate_imx_gpio; dc->desc = "i.MX GPIO controller"; } diff --git a/hw/gpio/omap_gpio.c b/hw/gpio/omap_gpio.c index 85c1689..f662c4c 100644 --- a/hw/gpio/omap_gpio.c +++ b/hw/gpio/omap_gpio.c @@ -755,7 +755,7 @@ static void omap_gpio_class_init(ObjectClass *klass, void *data) dc->realize = omap_gpio_realize; dc->reset = omap_gpif_reset; - dc->props = omap_gpio_properties; + device_class_set_props(dc, omap_gpio_properties); /* Reason: pointer property "clk" */ dc->user_creatable = false; } @@ -790,7 +790,7 @@ static void omap2_gpio_class_init(ObjectClass *klass, void *data) dc->realize = omap2_gpio_realize; dc->reset = omap2_gpif_reset; - dc->props = omap2_gpio_properties; + device_class_set_props(dc, omap2_gpio_properties); /* Reason: pointer properties "iclk", "fclk0", ..., "fclk5" */ dc->user_creatable = false; } diff --git a/hw/i2c/aspeed_i2c.c b/hw/i2c/aspeed_i2c.c index 2da04a4..9cda968 100644 --- a/hw/i2c/aspeed_i2c.c +++ b/hw/i2c/aspeed_i2c.c @@ -832,7 +832,7 @@ static void aspeed_i2c_class_init(ObjectClass *klass, void *data) dc->vmsd = &aspeed_i2c_vmstate; dc->reset = aspeed_i2c_reset; - dc->props = aspeed_i2c_properties; + device_class_set_props(dc, aspeed_i2c_properties); dc->realize = aspeed_i2c_realize; dc->desc = "Aspeed I2C Controller"; } diff --git a/hw/i2c/core.c b/hw/i2c/core.c index d770035..d413a19 100644 --- a/hw/i2c/core.c +++ b/hw/i2c/core.c @@ -281,7 +281,7 @@ static void i2c_slave_class_init(ObjectClass *klass, void *data) DeviceClass *k = DEVICE_CLASS(klass); set_bit(DEVICE_CATEGORY_MISC, k->categories); k->bus_type = TYPE_I2C_BUS; - k->props = i2c_props; + device_class_set_props(k, i2c_props); } static const TypeInfo i2c_slave_type_info = { diff --git a/hw/i2c/omap_i2c.c b/hw/i2c/omap_i2c.c index 3ccbd5c..e5d205d 100644 --- a/hw/i2c/omap_i2c.c +++ b/hw/i2c/omap_i2c.c @@ -520,7 +520,7 @@ static void omap_i2c_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = omap_i2c_properties; + device_class_set_props(dc, omap_i2c_properties); dc->reset = omap_i2c_reset; /* Reason: pointer properties "iclk", "fclk" */ dc->user_creatable = false; diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index a523ef0..6258c58 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -3845,7 +3845,7 @@ static void vtd_class_init(ObjectClass *klass, void *data) dc->reset = vtd_reset; dc->vmsd = &vtd_vmstate; - dc->props = vtd_properties; + device_class_set_props(dc, vtd_properties); dc->hotpluggable = false; x86_class->realize = vtd_realize; x86_class->int_remap = vtd_int_remap; diff --git a/hw/i386/kvm/clock.c b/hw/i386/kvm/clock.c index 2c59b68..6428335 100644 --- a/hw/i386/kvm/clock.c +++ b/hw/i386/kvm/clock.c @@ -317,7 +317,7 @@ static void kvmclock_class_init(ObjectClass *klass, void *data) dc->realize = kvmclock_realize; dc->vmsd = &kvmclock_vmsd; - dc->props = kvmclock_properties; + device_class_set_props(dc, kvmclock_properties); } static const TypeInfo kvmclock_info = { diff --git a/hw/i386/kvm/i8254.c b/hw/i386/kvm/i8254.c index 6a911e2..876f5aa6 100644 --- a/hw/i386/kvm/i8254.c +++ b/hw/i386/kvm/i8254.c @@ -322,7 +322,7 @@ static void kvm_pit_class_init(ObjectClass *klass, void *data) k->set_channel_gate = kvm_pit_set_gate; k->get_channel_info = kvm_pit_get_channel_info; dc->reset = kvm_pit_reset; - dc->props = kvm_pit_properties; + device_class_set_props(dc, kvm_pit_properties); } static const TypeInfo kvm_pit_info = { diff --git a/hw/i386/kvm/ioapic.c b/hw/i386/kvm/ioapic.c index 973e2b2..4ba8e47 100644 --- a/hw/i386/kvm/ioapic.c +++ b/hw/i386/kvm/ioapic.c @@ -149,7 +149,7 @@ static void kvm_ioapic_class_init(ObjectClass *klass, void *data) k->pre_save = kvm_ioapic_get; k->post_load = kvm_ioapic_put; dc->reset = kvm_ioapic_reset; - dc->props = kvm_ioapic_properties; + device_class_set_props(dc, kvm_ioapic_properties); } static const TypeInfo kvm_ioapic_info = { diff --git a/hw/i386/vmmouse.c b/hw/i386/vmmouse.c index c0c329f..7c2a375 100644 --- a/hw/i386/vmmouse.c +++ b/hw/i386/vmmouse.c @@ -286,7 +286,7 @@ static void vmmouse_class_initfn(ObjectClass *klass, void *data) dc->realize = vmmouse_realizefn; dc->reset = vmmouse_reset; dc->vmsd = &vmstate_vmmouse; - dc->props = vmmouse_properties; + device_class_set_props(dc, vmmouse_properties); } static const TypeInfo vmmouse_info = { diff --git a/hw/i386/x86-iommu.c b/hw/i386/x86-iommu.c index 1eaf2dd..4104060 100644 --- a/hw/i386/x86-iommu.c +++ b/hw/i386/x86-iommu.c @@ -153,7 +153,7 @@ static void x86_iommu_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = x86_iommu_realize; - dc->props = x86_iommu_properties; + device_class_set_props(dc, x86_iommu_properties); } bool x86_iommu_ir_supported(X86IOMMUState *s) diff --git a/hw/i386/xen/xen_pvdevice.c b/hw/i386/xen/xen_pvdevice.c index 27f646d..ee2610c 100644 --- a/hw/i386/xen/xen_pvdevice.c +++ b/hw/i386/xen/xen_pvdevice.c @@ -131,7 +131,7 @@ static void xen_pv_class_init(ObjectClass *klass, void *data) k->realize = xen_pv_realize; k->class_id = PCI_CLASS_SYSTEM_OTHER; dc->desc = "Xen PV Device"; - dc->props = xen_pv_props; + device_class_set_props(dc, xen_pv_props); dc->vmsd = &vmstate_xen_pvdevice; } diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c index d45393c..68264a2 100644 --- a/hw/ide/ahci.c +++ b/hw/ide/ahci.c @@ -1795,7 +1795,7 @@ static void sysbus_ahci_class_init(ObjectClass *klass, void *data) dc->realize = sysbus_ahci_realize; dc->vmsd = &vmstate_sysbus_ahci; - dc->props = sysbus_ahci_properties; + device_class_set_props(dc, sysbus_ahci_properties); dc->reset = sysbus_ahci_reset; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); } diff --git a/hw/ide/cmd646.c b/hw/ide/cmd646.c index 3f9be96..335c060 100644 --- a/hw/ide/cmd646.c +++ b/hw/ide/cmd646.c @@ -347,7 +347,7 @@ static void cmd646_ide_class_init(ObjectClass *klass, void *data) k->class_id = PCI_CLASS_STORAGE_IDE; k->config_read = cmd646_pci_config_read; k->config_write = cmd646_pci_config_write; - dc->props = cmd646_ide_properties; + device_class_set_props(dc, cmd646_ide_properties); set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); } diff --git a/hw/ide/isa.c b/hw/ide/isa.c index 9c7f88b..8395807 100644 --- a/hw/ide/isa.c +++ b/hw/ide/isa.c @@ -117,7 +117,7 @@ static void isa_ide_class_initfn(ObjectClass *klass, void *data) dc->realize = isa_ide_realizefn; dc->fw_name = "ide"; dc->reset = isa_ide_reset; - dc->props = isa_ide_properties; + device_class_set_props(dc, isa_ide_properties); set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); } diff --git a/hw/ide/macio.c b/hw/ide/macio.c index 79f787c..7a8470e 100644 --- a/hw/ide/macio.c +++ b/hw/ide/macio.c @@ -474,7 +474,7 @@ static void macio_ide_class_init(ObjectClass *oc, void *data) dc->realize = macio_ide_realizefn; dc->reset = macio_ide_reset; - dc->props = macio_ide_properties; + device_class_set_props(dc, macio_ide_properties); dc->vmsd = &vmstate_pmac; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); } diff --git a/hw/ide/mmio.c b/hw/ide/mmio.c index 7149a9c..d233bd8 100644 --- a/hw/ide/mmio.c +++ b/hw/ide/mmio.c @@ -154,7 +154,7 @@ static void mmio_ide_class_init(ObjectClass *oc, void *data) dc->realize = mmio_ide_realizefn; dc->reset = mmio_ide_reset; - dc->props = mmio_ide_properties; + device_class_set_props(dc, mmio_ide_properties); dc->vmsd = &vmstate_ide_mmio; } diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c index 374a791..c22afdb 100644 --- a/hw/ide/qdev.c +++ b/hw/ide/qdev.c @@ -319,7 +319,7 @@ static void ide_hd_class_init(ObjectClass *klass, void *data) k->realize = ide_hd_realize; dc->fw_name = "drive"; dc->desc = "virtual IDE disk"; - dc->props = ide_hd_properties; + device_class_set_props(dc, ide_hd_properties); } static const TypeInfo ide_hd_info = { @@ -342,7 +342,7 @@ static void ide_cd_class_init(ObjectClass *klass, void *data) k->realize = ide_cd_realize; dc->fw_name = "drive"; dc->desc = "virtual IDE CD-ROM"; - dc->props = ide_cd_properties; + device_class_set_props(dc, ide_cd_properties); } static const TypeInfo ide_cd_info = { @@ -365,7 +365,7 @@ static void ide_drive_class_init(ObjectClass *klass, void *data) k->realize = ide_drive_realize; dc->fw_name = "drive"; dc->desc = "virtual IDE disk or CD-ROM (legacy)"; - dc->props = ide_drive_properties; + device_class_set_props(dc, ide_drive_properties); } static const TypeInfo ide_drive_info = { @@ -381,7 +381,7 @@ static void ide_device_class_init(ObjectClass *klass, void *data) k->realize = ide_qdev_realize; set_bit(DEVICE_CATEGORY_STORAGE, k->categories); k->bus_type = TYPE_IDE_BUS; - k->props = ide_props; + device_class_set_props(k, ide_props); } static const TypeInfo ide_device_type_info = { diff --git a/hw/input/adb.c b/hw/input/adb.c index 478a90f..b1ac4a3 100644 --- a/hw/input/adb.c +++ b/hw/input/adb.c @@ -128,7 +128,7 @@ static void adb_device_class_init(ObjectClass *oc, void *data) DeviceClass *dc = DEVICE_CLASS(oc); dc->realize = adb_device_realizefn; - dc->props = adb_device_properties; + device_class_set_props(dc, adb_device_properties); dc->bus_type = TYPE_ADB_BUS; } diff --git a/hw/input/milkymist-softusb.c b/hw/input/milkymist-softusb.c index 67fcb35..3e0a7eb 100644 --- a/hw/input/milkymist-softusb.c +++ b/hw/input/milkymist-softusb.c @@ -302,7 +302,7 @@ static void milkymist_softusb_class_init(ObjectClass *klass, void *data) dc->realize = milkymist_softusb_realize; dc->reset = milkymist_softusb_reset; dc->vmsd = &vmstate_milkymist_softusb; - dc->props = milkymist_softusb_properties; + device_class_set_props(dc, milkymist_softusb_properties); } static const TypeInfo milkymist_softusb_info = { diff --git a/hw/input/virtio-input-hid.c b/hw/input/virtio-input-hid.c index 386a363..e8ae6c1 100644 --- a/hw/input/virtio-input-hid.c +++ b/hw/input/virtio-input-hid.c @@ -222,7 +222,7 @@ static void virtio_input_hid_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); VirtIOInputClass *vic = VIRTIO_INPUT_CLASS(klass); - dc->props = virtio_input_hid_properties; + device_class_set_props(dc, virtio_input_hid_properties); vic->realize = virtio_input_hid_realize; vic->unrealize = virtio_input_hid_unrealize; vic->change_active = virtio_input_hid_change_active; @@ -362,7 +362,7 @@ static void virtio_mouse_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = virtio_mouse_properties; + device_class_set_props(dc, virtio_mouse_properties); } static void virtio_mouse_init(Object *obj) @@ -486,7 +486,7 @@ static void virtio_tablet_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = virtio_tablet_properties; + device_class_set_props(dc, virtio_tablet_properties); } static void virtio_tablet_init(Object *obj) diff --git a/hw/input/virtio-input-host.c b/hw/input/virtio-input-host.c index 1c3b12b..f2ab6df 100644 --- a/hw/input/virtio-input-host.c +++ b/hw/input/virtio-input-host.c @@ -226,7 +226,7 @@ static void virtio_input_host_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->vmsd = &vmstate_virtio_input_host; - dc->props = virtio_input_host_properties; + device_class_set_props(dc, virtio_input_host_properties); vic->realize = virtio_input_host_realize; vic->unrealize = virtio_input_host_unrealize; vic->handle_status = virtio_input_host_handle_status; diff --git a/hw/input/virtio-input.c b/hw/input/virtio-input.c index 9c013af..4d49790 100644 --- a/hw/input/virtio-input.c +++ b/hw/input/virtio-input.c @@ -316,7 +316,7 @@ static void virtio_input_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass); - dc->props = virtio_input_properties; + device_class_set_props(dc, virtio_input_properties); dc->vmsd = &vmstate_virtio_input; set_bit(DEVICE_CATEGORY_INPUT, dc->categories); vdc->realize = virtio_input_device_realize; diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c index b5dbeb6..9ec0f2d 100644 --- a/hw/intc/apic_common.c +++ b/hw/intc/apic_common.c @@ -453,7 +453,7 @@ static void apic_common_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->reset = apic_reset_common; - dc->props = apic_properties_common; + device_class_set_props(dc, apic_properties_common); dc->realize = apic_common_realize; dc->unrealize = apic_common_unrealize; /* diff --git a/hw/intc/arm_gic_common.c b/hw/intc/arm_gic_common.c index f0d0d7c..e6c4fe7 100644 --- a/hw/intc/arm_gic_common.c +++ b/hw/intc/arm_gic_common.c @@ -367,7 +367,7 @@ static void arm_gic_common_class_init(ObjectClass *klass, void *data) dc->reset = arm_gic_common_reset; dc->realize = arm_gic_common_realize; - dc->props = arm_gic_common_properties; + device_class_set_props(dc, arm_gic_common_properties); dc->vmsd = &vmstate_gic; albifc->arm_linux_init = arm_gic_common_linux_init; } diff --git a/hw/intc/arm_gicv2m.c b/hw/intc/arm_gicv2m.c index 6e45f4f..0b7e2b4 100644 --- a/hw/intc/arm_gicv2m.c +++ b/hw/intc/arm_gicv2m.c @@ -179,7 +179,7 @@ static void gicv2m_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = gicv2m_properties; + device_class_set_props(dc, gicv2m_properties); dc->realize = gicv2m_realize; } diff --git a/hw/intc/arm_gicv3_common.c b/hw/intc/arm_gicv3_common.c index f0c551d..58ef65f 100644 --- a/hw/intc/arm_gicv3_common.c +++ b/hw/intc/arm_gicv3_common.c @@ -507,7 +507,7 @@ static void arm_gicv3_common_class_init(ObjectClass *klass, void *data) dc->reset = arm_gicv3_common_reset; dc->realize = arm_gicv3_common_realize; - dc->props = arm_gicv3_common_properties; + device_class_set_props(dc, arm_gicv3_common_properties); dc->vmsd = &vmstate_gicv3; albifc->arm_linux_init = arm_gic_common_linux_init; } diff --git a/hw/intc/arm_gicv3_its_kvm.c b/hw/intc/arm_gicv3_its_kvm.c index d66f243..ad0ebab 100644 --- a/hw/intc/arm_gicv3_its_kvm.c +++ b/hw/intc/arm_gicv3_its_kvm.c @@ -246,7 +246,7 @@ static void kvm_arm_its_class_init(ObjectClass *klass, void *data) KVMARMITSClass *ic = KVM_ARM_ITS_CLASS(klass); dc->realize = kvm_arm_its_realize; - dc->props = kvm_arm_its_props; + device_class_set_props(dc, kvm_arm_its_props); device_class_set_parent_reset(dc, kvm_arm_its_reset, &ic->parent_reset); icc->send_msi = kvm_its_send_msi; icc->pre_save = kvm_arm_its_pre_save; diff --git a/hw/intc/armv7m_nvic.c b/hw/intc/armv7m_nvic.c index e8c74f9..f9e0eea 100644 --- a/hw/intc/armv7m_nvic.c +++ b/hw/intc/armv7m_nvic.c @@ -2749,7 +2749,7 @@ static void armv7m_nvic_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->vmsd = &vmstate_nvic; - dc->props = props_nvic; + device_class_set_props(dc, props_nvic); dc->reset = armv7m_nvic_reset; dc->realize = armv7m_nvic_realize; } diff --git a/hw/intc/exynos4210_combiner.c b/hw/intc/exynos4210_combiner.c index 5b33ca6..b8561e4 100644 --- a/hw/intc/exynos4210_combiner.c +++ b/hw/intc/exynos4210_combiner.c @@ -442,7 +442,7 @@ static void exynos4210_combiner_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->reset = exynos4210_combiner_reset; - dc->props = exynos4210_combiner_properties; + device_class_set_props(dc, exynos4210_combiner_properties); dc->vmsd = &vmstate_exynos4210_combiner; } diff --git a/hw/intc/exynos4210_gic.c b/hw/intc/exynos4210_gic.c index 9a84d85..82c8f41 100644 --- a/hw/intc/exynos4210_gic.c +++ b/hw/intc/exynos4210_gic.c @@ -355,7 +355,7 @@ static void exynos4210_gic_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = exynos4210_gic_properties; + device_class_set_props(dc, exynos4210_gic_properties); dc->realize = exynos4210_gic_realize; } @@ -462,7 +462,7 @@ static void exynos4210_irq_gate_class_init(ObjectClass *klass, void *data) dc->reset = exynos4210_irq_gate_reset; dc->vmsd = &vmstate_exynos4210_irq_gate; - dc->props = exynos4210_irq_gate_properties; + device_class_set_props(dc, exynos4210_irq_gate_properties); dc->realize = exynos4210_irq_gate_realize; } diff --git a/hw/intc/i8259_common.c b/hw/intc/i8259_common.c index e7b1a10..99f8f6a 100644 --- a/hw/intc/i8259_common.c +++ b/hw/intc/i8259_common.c @@ -184,7 +184,7 @@ static void pic_common_class_init(ObjectClass *klass, void *data) InterruptStatsProviderClass *ic = INTERRUPT_STATS_PROVIDER_CLASS(klass); dc->vmsd = &vmstate_pic_common; - dc->props = pic_properties_common; + device_class_set_props(dc, pic_properties_common); dc->realize = pic_common_realize; /* * Reason: unlike ordinary ISA devices, the PICs need additional diff --git a/hw/intc/ioapic.c b/hw/intc/ioapic.c index 4f55776..15747fe 100644 --- a/hw/intc/ioapic.c +++ b/hw/intc/ioapic.c @@ -477,7 +477,7 @@ static void ioapic_class_init(ObjectClass *klass, void *data) */ k->post_load = ioapic_update_kvm_routes; dc->reset = ioapic_reset_common; - dc->props = ioapic_properties; + device_class_set_props(dc, ioapic_properties); } static const TypeInfo ioapic_info = { diff --git a/hw/intc/mips_gic.c b/hw/intc/mips_gic.c index 54b3059..bda4549 100644 --- a/hw/intc/mips_gic.c +++ b/hw/intc/mips_gic.c @@ -448,7 +448,7 @@ static void mips_gic_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = mips_gic_properties; + device_class_set_props(dc, mips_gic_properties); dc->realize = mips_gic_realize; } diff --git a/hw/intc/omap_intc.c b/hw/intc/omap_intc.c index 73bb1c2..b8a1d1f 100644 --- a/hw/intc/omap_intc.c +++ b/hw/intc/omap_intc.c @@ -407,7 +407,7 @@ static void omap_intc_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->reset = omap_inth_reset; - dc->props = omap_intc_properties; + device_class_set_props(dc, omap_intc_properties); /* Reason: pointer property "clk" */ dc->user_creatable = false; dc->realize = omap_intc_realize; @@ -660,7 +660,7 @@ static void omap2_intc_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->reset = omap_inth_reset; - dc->props = omap2_intc_properties; + device_class_set_props(dc, omap2_intc_properties); /* Reason: pointer property "iclk", "fclk" */ dc->user_creatable = false; dc->realize = omap2_intc_realize; diff --git a/hw/intc/ompic.c b/hw/intc/ompic.c index ca9614f..c354427 100644 --- a/hw/intc/ompic.c +++ b/hw/intc/ompic.c @@ -161,7 +161,7 @@ static void or1k_ompic_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = or1k_ompic_properties; + device_class_set_props(dc, or1k_ompic_properties); dc->realize = or1k_ompic_realize; dc->vmsd = &vmstate_or1k_ompic; } diff --git a/hw/intc/openpic.c b/hw/intc/openpic.c index c797ba7..65970e1 100644 --- a/hw/intc/openpic.c +++ b/hw/intc/openpic.c @@ -1628,7 +1628,7 @@ static void openpic_class_init(ObjectClass *oc, void *data) DeviceClass *dc = DEVICE_CLASS(oc); dc->realize = openpic_realize; - dc->props = openpic_properties; + device_class_set_props(dc, openpic_properties); dc->reset = openpic_reset; dc->vmsd = &vmstate_openpic; set_bit(DEVICE_CATEGORY_MISC, dc->categories); diff --git a/hw/intc/openpic_kvm.c b/hw/intc/openpic_kvm.c index c09bebe..e4bf47d 100644 --- a/hw/intc/openpic_kvm.c +++ b/hw/intc/openpic_kvm.c @@ -274,7 +274,7 @@ static void kvm_openpic_class_init(ObjectClass *oc, void *data) DeviceClass *dc = DEVICE_CLASS(oc); dc->realize = kvm_openpic_realize; - dc->props = kvm_openpic_properties; + device_class_set_props(dc, kvm_openpic_properties); dc->reset = kvm_openpic_reset; set_bit(DEVICE_CATEGORY_MISC, dc->categories); } diff --git a/hw/intc/pnv_xive.c b/hw/intc/pnv_xive.c index 715fca6..aeda488 100644 --- a/hw/intc/pnv_xive.c +++ b/hw/intc/pnv_xive.c @@ -1957,7 +1957,7 @@ static void pnv_xive_class_init(ObjectClass *klass, void *data) dc->desc = "PowerNV XIVE Interrupt Controller"; device_class_set_parent_realize(dc, pnv_xive_realize, &pxc->parent_realize); dc->realize = pnv_xive_realize; - dc->props = pnv_xive_properties; + device_class_set_props(dc, pnv_xive_properties); xrc->get_eas = pnv_xive_get_eas; xrc->get_end = pnv_xive_get_end; diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c index a159c0c..5f290f5 100644 --- a/hw/intc/s390_flic.c +++ b/hw/intc/s390_flic.c @@ -427,7 +427,7 @@ static void s390_flic_class_init(ObjectClass *oc, void *data) { DeviceClass *dc = DEVICE_CLASS(oc); - dc->props = s390_flic_common_properties; + device_class_set_props(dc, s390_flic_common_properties); dc->realize = s390_flic_common_realize; } diff --git a/hw/intc/spapr_xive.c b/hw/intc/spapr_xive.c index 7663123..024b8ce 100644 --- a/hw/intc/spapr_xive.c +++ b/hw/intc/spapr_xive.c @@ -770,7 +770,7 @@ static void spapr_xive_class_init(ObjectClass *klass, void *data) SpaprXiveClass *sxc = SPAPR_XIVE_CLASS(klass); dc->desc = "sPAPR XIVE Interrupt Controller"; - dc->props = spapr_xive_properties; + device_class_set_props(dc, spapr_xive_properties); device_class_set_parent_realize(dc, spapr_xive_realize, &sxc->parent_realize); dc->vmsd = &vmstate_spapr_xive; diff --git a/hw/intc/xics.c b/hw/intc/xics.c index 1952009..785b607 100644 --- a/hw/intc/xics.c +++ b/hw/intc/xics.c @@ -358,7 +358,7 @@ static void icp_class_init(ObjectClass *klass, void *data) dc->realize = icp_realize; dc->unrealize = icp_unrealize; - dc->props = icp_properties; + device_class_set_props(dc, icp_properties); /* * Reason: part of XICS interrupt controller, needs to be wired up * by icp_create(). @@ -680,7 +680,7 @@ static void ics_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = ics_realize; - dc->props = ics_properties; + device_class_set_props(dc, ics_properties); dc->reset = ics_reset; dc->vmsd = &vmstate_ics; /* diff --git a/hw/intc/xilinx_intc.c b/hw/intc/xilinx_intc.c index e15cb42..3e65e68 100644 --- a/hw/intc/xilinx_intc.c +++ b/hw/intc/xilinx_intc.c @@ -185,7 +185,7 @@ static void xilinx_intc_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = xilinx_intc_properties; + device_class_set_props(dc, xilinx_intc_properties); } static const TypeInfo xilinx_intc_info = { diff --git a/hw/intc/xive.c b/hw/intc/xive.c index bc8019c..d6183f8 100644 --- a/hw/intc/xive.c +++ b/hw/intc/xive.c @@ -740,7 +740,7 @@ static void xive_tctx_class_init(ObjectClass *klass, void *data) dc->desc = "XIVE Interrupt Thread Context"; dc->realize = xive_tctx_realize; dc->vmsd = &vmstate_xive_tctx; - dc->props = xive_tctx_properties; + device_class_set_props(dc, xive_tctx_properties); /* * Reason: part of XIVE interrupt controller, needs to be wired up * by xive_tctx_create(). @@ -1192,7 +1192,7 @@ static void xive_source_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->desc = "XIVE Interrupt Source"; - dc->props = xive_source_properties; + device_class_set_props(dc, xive_source_properties); dc->realize = xive_source_realize; dc->vmsd = &vmstate_xive_source; /* @@ -1736,7 +1736,7 @@ static void xive_router_class_init(ObjectClass *klass, void *data) XiveNotifierClass *xnc = XIVE_NOTIFIER_CLASS(klass); dc->desc = "XIVE Router Engine"; - dc->props = xive_router_properties; + device_class_set_props(dc, xive_router_properties); /* Parent is SysBusDeviceClass. No need to call its realize hook */ dc->realize = xive_router_realize; xnc->notify = xive_router_notify; @@ -1899,7 +1899,7 @@ static void xive_end_source_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->desc = "XIVE END Source"; - dc->props = xive_end_source_properties; + device_class_set_props(dc, xive_end_source_properties); dc->realize = xive_end_source_realize; /* * Reason: part of XIVE interrupt controller, needs to be wired up, diff --git a/hw/intc/xlnx-pmu-iomod-intc.c b/hw/intc/xlnx-pmu-iomod-intc.c index f9a1401..acaa1c3 100644 --- a/hw/intc/xlnx-pmu-iomod-intc.c +++ b/hw/intc/xlnx-pmu-iomod-intc.c @@ -539,7 +539,7 @@ static void xlnx_pmu_io_intc_class_init(ObjectClass *klass, void *data) dc->reset = xlnx_pmu_io_intc_reset; dc->realize = xlnx_pmu_io_intc_realize; dc->vmsd = &vmstate_xlnx_pmu_io_intc; - dc->props = xlnx_pmu_io_intc_properties; + device_class_set_props(dc, xlnx_pmu_io_intc_properties); } static const TypeInfo xlnx_pmu_io_intc_info = { diff --git a/hw/ipack/ipack.c b/hw/ipack/ipack.c index 30e1669..49787a1 100644 --- a/hw/ipack/ipack.c +++ b/hw/ipack/ipack.c @@ -88,7 +88,7 @@ static void ipack_device_class_init(ObjectClass *klass, void *data) k->bus_type = TYPE_IPACK_BUS; k->realize = ipack_device_realize; k->unrealize = ipack_device_unrealize; - k->props = ipack_device_props; + device_class_set_props(k, ipack_device_props); } const VMStateDescription vmstate_ipack_device = { diff --git a/hw/ipmi/ipmi.c b/hw/ipmi/ipmi.c index cbe158f..46c6a79 100644 --- a/hw/ipmi/ipmi.c +++ b/hw/ipmi/ipmi.c @@ -118,7 +118,7 @@ static void bmc_class_init(ObjectClass *oc, void *data) { DeviceClass *dc = DEVICE_CLASS(oc); - dc->props = ipmi_bmc_properties; + device_class_set_props(dc, ipmi_bmc_properties); } static TypeInfo ipmi_bmc_type_info = { diff --git a/hw/ipmi/ipmi_bmc_extern.c b/hw/ipmi/ipmi_bmc_extern.c index 16a4117..f9a13e0 100644 --- a/hw/ipmi/ipmi_bmc_extern.c +++ b/hw/ipmi/ipmi_bmc_extern.c @@ -528,7 +528,7 @@ static void ipmi_bmc_extern_class_init(ObjectClass *oc, void *data) bk->handle_reset = ipmi_bmc_extern_handle_reset; dc->hotpluggable = false; dc->realize = ipmi_bmc_extern_realize; - dc->props = ipmi_bmc_extern_properties; + device_class_set_props(dc, ipmi_bmc_extern_properties); } static const TypeInfo ipmi_bmc_extern_type = { diff --git a/hw/ipmi/ipmi_bmc_sim.c b/hw/ipmi/ipmi_bmc_sim.c index 6670cf0..0b97e04 100644 --- a/hw/ipmi/ipmi_bmc_sim.c +++ b/hw/ipmi/ipmi_bmc_sim.c @@ -1989,7 +1989,7 @@ static void ipmi_sim_class_init(ObjectClass *oc, void *data) dc->hotpluggable = false; dc->realize = ipmi_sim_realize; - dc->props = ipmi_sim_properties; + device_class_set_props(dc, ipmi_sim_properties); bk->handle_command = ipmi_sim_handle_command; } diff --git a/hw/ipmi/isa_ipmi_bt.c b/hw/ipmi/isa_ipmi_bt.c index 9fba5ed..c8dc0a0 100644 --- a/hw/ipmi/isa_ipmi_bt.c +++ b/hw/ipmi/isa_ipmi_bt.c @@ -147,7 +147,7 @@ static void isa_ipmi_bt_class_init(ObjectClass *oc, void *data) IPMIInterfaceClass *iic = IPMI_INTERFACE_CLASS(oc); dc->realize = isa_ipmi_bt_realize; - dc->props = ipmi_isa_properties; + device_class_set_props(dc, ipmi_isa_properties); iic->get_backend_data = isa_ipmi_bt_get_backend_data; ipmi_bt_class_init(iic); diff --git a/hw/ipmi/isa_ipmi_kcs.c b/hw/ipmi/isa_ipmi_kcs.c index cc6bd81..4b421c3 100644 --- a/hw/ipmi/isa_ipmi_kcs.c +++ b/hw/ipmi/isa_ipmi_kcs.c @@ -154,7 +154,7 @@ static void isa_ipmi_kcs_class_init(ObjectClass *oc, void *data) IPMIInterfaceClass *iic = IPMI_INTERFACE_CLASS(oc); dc->realize = ipmi_isa_realize; - dc->props = ipmi_isa_properties; + device_class_set_props(dc, ipmi_isa_properties); iic->get_backend_data = isa_ipmi_kcs_get_backend_data; ipmi_kcs_class_init(iic); diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c index 170792a..f85b484 100644 --- a/hw/isa/lpc_ich9.c +++ b/hw/isa/lpc_ich9.c @@ -784,7 +784,7 @@ static void ich9_lpc_class_init(ObjectClass *klass, void *data) dc->reset = ich9_lpc_reset; k->realize = ich9_lpc_realize; dc->vmsd = &vmstate_ich9_lpc; - dc->props = ich9_lpc_properties; + device_class_set_props(dc, ich9_lpc_properties); k->config_write = ich9_lpc_config_write; dc->desc = "ICH9 LPC bridge"; k->vendor_id = PCI_VENDOR_ID_INTEL; diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c index b9bd574..0cacbbc 100644 --- a/hw/isa/pc87312.c +++ b/hw/isa/pc87312.c @@ -342,7 +342,7 @@ static void pc87312_class_init(ObjectClass *klass, void *data) dc->realize = pc87312_realize; dc->reset = pc87312_reset; dc->vmsd = &vmstate_pc87312; - dc->props = pc87312_properties; + device_class_set_props(dc, pc87312_properties); sc->parallel = (ISASuperIOFuncs){ .count = 1, diff --git a/hw/isa/vt82c686.c b/hw/isa/vt82c686.c index f828708..d9b51fc 100644 --- a/hw/isa/vt82c686.c +++ b/hw/isa/vt82c686.c @@ -417,7 +417,7 @@ static void via_pm_class_init(ObjectClass *klass, void *data) dc->desc = "PM"; dc->vmsd = &vmstate_acpi; set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); - dc->props = via_pm_properties; + device_class_set_props(dc, via_pm_properties); } static const TypeInfo via_pm_info = { diff --git a/hw/mem/nvdimm.c b/hw/mem/nvdimm.c index 375f9a5..39f1426 100644 --- a/hw/mem/nvdimm.c +++ b/hw/mem/nvdimm.c @@ -202,7 +202,7 @@ static void nvdimm_class_init(ObjectClass *oc, void *data) ddc->realize = nvdimm_realize; mdc->get_memory_region = nvdimm_md_get_memory_region; - dc->props = nvdimm_properties; + device_class_set_props(dc, nvdimm_properties); nvc->read_label_data = nvdimm_read_label_data; nvc->write_label_data = nvdimm_write_label_data; diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c index 99e2faf..8f50b8a 100644 --- a/hw/mem/pc-dimm.c +++ b/hw/mem/pc-dimm.c @@ -271,7 +271,7 @@ static void pc_dimm_class_init(ObjectClass *oc, void *data) dc->realize = pc_dimm_realize; dc->unrealize = pc_dimm_unrealize; - dc->props = pc_dimm_properties; + device_class_set_props(dc, pc_dimm_properties); dc->desc = "DIMM memory module"; ddc->get_vmstate_memory_region = pc_dimm_get_memory_region; diff --git a/hw/mips/cps.c b/hw/mips/cps.c index c49868d..92b9b1a 100644 --- a/hw/mips/cps.c +++ b/hw/mips/cps.c @@ -178,7 +178,7 @@ static void mips_cps_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = mips_cps_realize; - dc->props = mips_cps_properties; + device_class_set_props(dc, mips_cps_properties); } static const TypeInfo mips_cps_info = { diff --git a/hw/misc/a9scu.c b/hw/misc/a9scu.c index 45c91db..324371a 100644 --- a/hw/misc/a9scu.c +++ b/hw/misc/a9scu.c @@ -135,7 +135,7 @@ static void a9_scu_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = a9_scu_properties; + device_class_set_props(dc, a9_scu_properties); dc->vmsd = &vmstate_a9_scu; dc->reset = a9_scu_reset; } diff --git a/hw/misc/applesmc.c b/hw/misc/applesmc.c index 24d57e8..1c4addb 100644 --- a/hw/misc/applesmc.c +++ b/hw/misc/applesmc.c @@ -353,7 +353,7 @@ static void qdev_applesmc_class_init(ObjectClass *klass, void *data) dc->realize = applesmc_isa_realize; dc->reset = qdev_applesmc_isa_reset; - dc->props = applesmc_isa_properties; + device_class_set_props(dc, applesmc_isa_properties); set_bit(DEVICE_CATEGORY_MISC, dc->categories); } diff --git a/hw/misc/arm11scu.c b/hw/misc/arm11scu.c index 3023284..17c36a0 100644 --- a/hw/misc/arm11scu.c +++ b/hw/misc/arm11scu.c @@ -85,7 +85,7 @@ static void arm11_scu_class_init(ObjectClass *oc, void *data) DeviceClass *dc = DEVICE_CLASS(oc); dc->realize = arm11_scu_realize; - dc->props = arm11_scu_properties; + device_class_set_props(dc, arm11_scu_properties); } static const TypeInfo arm11_scu_type_info = { diff --git a/hw/misc/arm_l2x0.c b/hw/misc/arm_l2x0.c index af2c7af..2066c97 100644 --- a/hw/misc/arm_l2x0.c +++ b/hw/misc/arm_l2x0.c @@ -182,7 +182,7 @@ static void l2x0_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->vmsd = &vmstate_l2x0; - dc->props = l2x0_properties; + device_class_set_props(dc, l2x0_properties); dc->reset = l2x0_priv_reset; } diff --git a/hw/misc/arm_sysctl.c b/hw/misc/arm_sysctl.c index fc79522..a474bbd 100644 --- a/hw/misc/arm_sysctl.c +++ b/hw/misc/arm_sysctl.c @@ -642,7 +642,7 @@ static void arm_sysctl_class_init(ObjectClass *klass, void *data) dc->realize = arm_sysctl_realize; dc->reset = arm_sysctl_reset; dc->vmsd = &vmstate_arm_sysctl; - dc->props = arm_sysctl_properties; + device_class_set_props(dc, arm_sysctl_properties); } static const TypeInfo arm_sysctl_info = { diff --git a/hw/misc/armsse-cpuid.c b/hw/misc/armsse-cpuid.c index 8ab15fe..d58138d 100644 --- a/hw/misc/armsse-cpuid.c +++ b/hw/misc/armsse-cpuid.c @@ -116,7 +116,7 @@ static void armsse_cpuid_class_init(ObjectClass *klass, void *data) * does not need a reset function or VMState. */ - dc->props = armsse_cpuid_props; + device_class_set_props(dc, armsse_cpuid_props); } static const TypeInfo armsse_cpuid_info = { diff --git a/hw/misc/aspeed_scu.c b/hw/misc/aspeed_scu.c index f62fa25..ce2f956 100644 --- a/hw/misc/aspeed_scu.c +++ b/hw/misc/aspeed_scu.c @@ -447,7 +447,7 @@ static void aspeed_scu_class_init(ObjectClass *klass, void *data) dc->reset = aspeed_scu_reset; dc->desc = "ASPEED System Control Unit"; dc->vmsd = &vmstate_aspeed_scu; - dc->props = aspeed_scu_properties; + device_class_set_props(dc, aspeed_scu_properties); } static const TypeInfo aspeed_scu_info = { diff --git a/hw/misc/aspeed_sdmc.c b/hw/misc/aspeed_sdmc.c index 2df3244..9c18479 100644 --- a/hw/misc/aspeed_sdmc.c +++ b/hw/misc/aspeed_sdmc.c @@ -261,7 +261,7 @@ static void aspeed_sdmc_class_init(ObjectClass *klass, void *data) dc->reset = aspeed_sdmc_reset; dc->desc = "ASPEED SDRAM Memory Controller"; dc->vmsd = &vmstate_aspeed_sdmc; - dc->props = aspeed_sdmc_properties; + device_class_set_props(dc, aspeed_sdmc_properties); } static const TypeInfo aspeed_sdmc_info = { diff --git a/hw/misc/bcm2835_property.c b/hw/misc/bcm2835_property.c index 0eea2e2..df91280 100644 --- a/hw/misc/bcm2835_property.c +++ b/hw/misc/bcm2835_property.c @@ -426,7 +426,7 @@ static void bcm2835_property_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = bcm2835_property_props; + device_class_set_props(dc, bcm2835_property_props); dc->realize = bcm2835_property_realize; dc->vmsd = &vmstate_bcm2835_property; } diff --git a/hw/misc/debugexit.c b/hw/misc/debugexit.c index ccf02bd..99a814f 100644 --- a/hw/misc/debugexit.c +++ b/hw/misc/debugexit.c @@ -65,7 +65,7 @@ static void debug_exit_class_initfn(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = debug_exit_realizefn; - dc->props = debug_exit_properties; + device_class_set_props(dc, debug_exit_properties); set_bit(DEVICE_CATEGORY_MISC, dc->categories); } diff --git a/hw/misc/eccmemctl.c b/hw/misc/eccmemctl.c index 4b1f2b6..aec4473 100644 --- a/hw/misc/eccmemctl.c +++ b/hw/misc/eccmemctl.c @@ -336,7 +336,7 @@ static void ecc_class_init(ObjectClass *klass, void *data) dc->realize = ecc_realize; dc->reset = ecc_reset; dc->vmsd = &vmstate_ecc; - dc->props = ecc_properties; + device_class_set_props(dc, ecc_properties); } static const TypeInfo ecc_info = { diff --git a/hw/misc/iotkit-sysctl.c b/hw/misc/iotkit-sysctl.c index 9aa8109..ec1cc19 100644 --- a/hw/misc/iotkit-sysctl.c +++ b/hw/misc/iotkit-sysctl.c @@ -508,7 +508,7 @@ static void iotkit_sysctl_class_init(ObjectClass *klass, void *data) dc->vmsd = &iotkit_sysctl_vmstate; dc->reset = iotkit_sysctl_reset; - dc->props = iotkit_sysctl_props; + device_class_set_props(dc, iotkit_sysctl_props); dc->realize = iotkit_sysctl_realize; } diff --git a/hw/misc/iotkit-sysinfo.c b/hw/misc/iotkit-sysinfo.c index 783e613..b2dcfc4 100644 --- a/hw/misc/iotkit-sysinfo.c +++ b/hw/misc/iotkit-sysinfo.c @@ -121,7 +121,7 @@ static void iotkit_sysinfo_class_init(ObjectClass *klass, void *data) * does not need a reset function or VMState. */ - dc->props = iotkit_sysinfo_props; + device_class_set_props(dc, iotkit_sysinfo_props); } static const TypeInfo iotkit_sysinfo_info = { diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 710cdb72..1a0fad7 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -1055,7 +1055,7 @@ static void ivshmem_plain_class_init(ObjectClass *klass, void *data) PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); k->realize = ivshmem_plain_realize; - dc->props = ivshmem_plain_properties; + device_class_set_props(dc, ivshmem_plain_properties); dc->vmsd = &ivshmem_plain_vmsd; } @@ -1115,7 +1115,7 @@ static void ivshmem_doorbell_class_init(ObjectClass *klass, void *data) PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); k->realize = ivshmem_doorbell_realize; - dc->props = ivshmem_doorbell_properties; + device_class_set_props(dc, ivshmem_doorbell_properties); dc->vmsd = &ivshmem_doorbell_vmsd; } diff --git a/hw/misc/mac_via.c b/hw/misc/mac_via.c index e9e6a95..b7d0012 100644 --- a/hw/misc/mac_via.c +++ b/hw/misc/mac_via.c @@ -1021,7 +1021,7 @@ static void mac_via_class_init(ObjectClass *oc, void *data) dc->realize = mac_via_realize; dc->reset = mac_via_reset; dc->vmsd = &vmstate_mac_via; - dc->props = mac_via_properties; + device_class_set_props(dc, mac_via_properties); } static TypeInfo mac_via_info = { diff --git a/hw/misc/macio/cuda.c b/hw/misc/macio/cuda.c index e38becb..e0cc0aa 100644 --- a/hw/misc/macio/cuda.c +++ b/hw/misc/macio/cuda.c @@ -571,7 +571,7 @@ static void cuda_class_init(ObjectClass *oc, void *data) dc->realize = cuda_realize; dc->reset = cuda_reset; dc->vmsd = &vmstate_cuda; - dc->props = cuda_properties; + device_class_set_props(dc, cuda_properties); set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); } diff --git a/hw/misc/macio/macio.c b/hw/misc/macio/macio.c index 50f20d8..7922219 100644 --- a/hw/misc/macio/macio.c +++ b/hw/misc/macio/macio.c @@ -466,7 +466,7 @@ static void macio_newworld_class_init(ObjectClass *oc, void *data) pdc->realize = macio_newworld_realize; pdc->device_id = PCI_DEVICE_ID_APPLE_UNI_N_KEYL; dc->vmsd = &vmstate_macio_newworld; - dc->props = macio_newworld_properties; + device_class_set_props(dc, macio_newworld_properties); } static Property macio_properties[] = { @@ -481,7 +481,7 @@ static void macio_class_init(ObjectClass *klass, void *data) k->vendor_id = PCI_VENDOR_ID_APPLE; k->class_id = PCI_CLASS_OTHERS << 8; - dc->props = macio_properties; + device_class_set_props(dc, macio_properties); set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); /* Reason: Uses serial_hds in macio_instance_init */ dc->user_creatable = false; diff --git a/hw/misc/macio/pmu.c b/hw/misc/macio/pmu.c index 769aed8..b8466a4 100644 --- a/hw/misc/macio/pmu.c +++ b/hw/misc/macio/pmu.c @@ -795,7 +795,7 @@ static void pmu_class_init(ObjectClass *oc, void *data) dc->realize = pmu_realize; dc->reset = pmu_reset; dc->vmsd = &vmstate_pmu; - dc->props = pmu_properties; + device_class_set_props(dc, pmu_properties); set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); } diff --git a/hw/misc/mips_cmgcr.c b/hw/misc/mips_cmgcr.c index 8176d91..3c8b37f 100644 --- a/hw/misc/mips_cmgcr.c +++ b/hw/misc/mips_cmgcr.c @@ -233,7 +233,7 @@ static void mips_gcr_realize(DeviceState *dev, Error **errp) static void mips_gcr_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = mips_gcr_properties; + device_class_set_props(dc, mips_gcr_properties); dc->vmsd = &vmstate_mips_gcr; dc->reset = mips_gcr_reset; dc->realize = mips_gcr_realize; diff --git a/hw/misc/mips_cpc.c b/hw/misc/mips_cpc.c index 19ea016..2f7b2c9 100644 --- a/hw/misc/mips_cpc.c +++ b/hw/misc/mips_cpc.c @@ -175,7 +175,7 @@ static void mips_cpc_class_init(ObjectClass *klass, void *data) dc->realize = mips_cpc_realize; dc->reset = mips_cpc_reset; dc->vmsd = &vmstate_mips_cpc; - dc->props = mips_cpc_properties; + device_class_set_props(dc, mips_cpc_properties); } static const TypeInfo mips_cpc_info = { diff --git a/hw/misc/mips_itu.c b/hw/misc/mips_itu.c index ea0cf97..3540985 100644 --- a/hw/misc/mips_itu.c +++ b/hw/misc/mips_itu.c @@ -561,7 +561,7 @@ static void mips_itu_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = mips_itu_properties; + device_class_set_props(dc, mips_itu_properties); dc->realize = mips_itu_realize; dc->reset = mips_itu_reset; } diff --git a/hw/misc/mos6522.c b/hw/misc/mos6522.c index 10b85bf..19e154b 100644 --- a/hw/misc/mos6522.c +++ b/hw/misc/mos6522.c @@ -502,7 +502,7 @@ static void mos6522_class_init(ObjectClass *oc, void *data) dc->reset = mos6522_reset; dc->vmsd = &vmstate_mos6522; - dc->props = mos6522_properties; + device_class_set_props(dc, mos6522_properties); mdc->parent_reset = dc->reset; mdc->set_sr_int = mos6522_set_sr_int; mdc->portB_write = mos6522_portB_write; diff --git a/hw/misc/mps2-fpgaio.c b/hw/misc/mps2-fpgaio.c index 5e8b103..2f3fbee 100644 --- a/hw/misc/mps2-fpgaio.c +++ b/hw/misc/mps2-fpgaio.c @@ -300,7 +300,7 @@ static void mps2_fpgaio_class_init(ObjectClass *klass, void *data) dc->vmsd = &mps2_fpgaio_vmstate; dc->reset = mps2_fpgaio_reset; - dc->props = mps2_fpgaio_properties; + device_class_set_props(dc, mps2_fpgaio_properties); } static const TypeInfo mps2_fpgaio_info = { diff --git a/hw/misc/mps2-scc.c b/hw/misc/mps2-scc.c index 25779a1..9d0909e 100644 --- a/hw/misc/mps2-scc.c +++ b/hw/misc/mps2-scc.c @@ -293,7 +293,7 @@ static void mps2_scc_class_init(ObjectClass *klass, void *data) dc->realize = mps2_scc_realize; dc->vmsd = &mps2_scc_vmstate; dc->reset = mps2_scc_reset; - dc->props = mps2_scc_properties; + device_class_set_props(dc, mps2_scc_properties); } static const TypeInfo mps2_scc_info = { diff --git a/hw/misc/msf2-sysreg.c b/hw/misc/msf2-sysreg.c index ddc5a30..2dce55c 100644 --- a/hw/misc/msf2-sysreg.c +++ b/hw/misc/msf2-sysreg.c @@ -143,7 +143,7 @@ static void msf2_sysreg_class_init(ObjectClass *klass, void *data) dc->vmsd = &vmstate_msf2_sysreg; dc->reset = msf2_sysreg_reset; - dc->props = msf2_sysreg_properties; + device_class_set_props(dc, msf2_sysreg_properties); dc->realize = msf2_sysreg_realize; } diff --git a/hw/misc/nrf51_rng.c b/hw/misc/nrf51_rng.c index 5140981..fc86e1b 100644 --- a/hw/misc/nrf51_rng.c +++ b/hw/misc/nrf51_rng.c @@ -245,7 +245,7 @@ static void nrf51_rng_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = nrf51_rng_properties; + device_class_set_props(dc, nrf51_rng_properties); dc->vmsd = &vmstate_rng; dc->reset = nrf51_rng_reset; } diff --git a/hw/misc/pci-testdev.c b/hw/misc/pci-testdev.c index 74d8571..188de4d 100644 --- a/hw/misc/pci-testdev.c +++ b/hw/misc/pci-testdev.c @@ -339,7 +339,7 @@ static void pci_testdev_class_init(ObjectClass *klass, void *data) dc->desc = "PCI Test Device"; set_bit(DEVICE_CATEGORY_MISC, dc->categories); dc->reset = qdev_pci_testdev_reset; - dc->props = pci_testdev_properties; + device_class_set_props(dc, pci_testdev_properties); } static const TypeInfo pci_testdev_info = { diff --git a/hw/misc/pvpanic.c b/hw/misc/pvpanic.c index 4ebda78..abb10bb 100644 --- a/hw/misc/pvpanic.c +++ b/hw/misc/pvpanic.c @@ -118,7 +118,7 @@ static void pvpanic_isa_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = pvpanic_isa_realizefn; - dc->props = pvpanic_isa_properties; + device_class_set_props(dc, pvpanic_isa_properties); set_bit(DEVICE_CATEGORY_MISC, dc->categories); } diff --git a/hw/misc/tz-mpc.c b/hw/misc/tz-mpc.c index 49dd605..98f1512 100644 --- a/hw/misc/tz-mpc.c +++ b/hw/misc/tz-mpc.c @@ -596,7 +596,7 @@ static void tz_mpc_class_init(ObjectClass *klass, void *data) dc->realize = tz_mpc_realize; dc->vmsd = &tz_mpc_vmstate; dc->reset = tz_mpc_reset; - dc->props = tz_mpc_properties; + device_class_set_props(dc, tz_mpc_properties); } static const TypeInfo tz_mpc_info = { diff --git a/hw/misc/tz-msc.c b/hw/misc/tz-msc.c index 7d522ac..acbe944 100644 --- a/hw/misc/tz-msc.c +++ b/hw/misc/tz-msc.c @@ -293,7 +293,7 @@ static void tz_msc_class_init(ObjectClass *klass, void *data) dc->realize = tz_msc_realize; dc->vmsd = &tz_msc_vmstate; dc->reset = tz_msc_reset; - dc->props = tz_msc_properties; + device_class_set_props(dc, tz_msc_properties); } static const TypeInfo tz_msc_info = { diff --git a/hw/misc/tz-ppc.c b/hw/misc/tz-ppc.c index 181a5f1..6431257 100644 --- a/hw/misc/tz-ppc.c +++ b/hw/misc/tz-ppc.c @@ -319,7 +319,7 @@ static void tz_ppc_class_init(ObjectClass *klass, void *data) dc->realize = tz_ppc_realize; dc->vmsd = &tz_ppc_vmstate; dc->reset = tz_ppc_reset; - dc->props = tz_ppc_properties; + device_class_set_props(dc, tz_ppc_properties); } static const TypeInfo tz_ppc_info = { diff --git a/hw/misc/unimp.c b/hw/misc/unimp.c index 0e1cb24..bc4084d 100644 --- a/hw/misc/unimp.c +++ b/hw/misc/unimp.c @@ -79,7 +79,7 @@ static void unimp_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = unimp_realize; - dc->props = unimp_properties; + device_class_set_props(dc, unimp_properties); } static const TypeInfo unimp_info = { diff --git a/hw/net/allwinner_emac.c b/hw/net/allwinner_emac.c index e055a66..e9bbff8 100644 --- a/hw/net/allwinner_emac.c +++ b/hw/net/allwinner_emac.c @@ -519,7 +519,7 @@ static void aw_emac_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = aw_emac_realize; - dc->props = aw_emac_properties; + device_class_set_props(dc, aw_emac_properties); dc->reset = aw_emac_reset; dc->vmsd = &vmstate_aw_emac; } diff --git a/hw/net/cadence_gem.c b/hw/net/cadence_gem.c index b8be73d..871fcf2 100644 --- a/hw/net/cadence_gem.c +++ b/hw/net/cadence_gem.c @@ -1627,7 +1627,7 @@ static void gem_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = gem_realize; - dc->props = gem_properties; + device_class_set_props(dc, gem_properties); dc->vmsd = &vmstate_cadence_gem; dc->reset = gem_reset; } diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c index cdc2631..a134d43 100644 --- a/hw/net/dp8393x.c +++ b/hw/net/dp8393x.c @@ -963,7 +963,7 @@ static void dp8393x_class_init(ObjectClass *klass, void *data) dc->realize = dp8393x_realize; dc->reset = dp8393x_reset; dc->vmsd = &vmstate_dp8393x; - dc->props = dp8393x_properties; + device_class_set_props(dc, dp8393x_properties); } static const TypeInfo dp8393x_info = { diff --git a/hw/net/e1000.c b/hw/net/e1000.c index a73f8d4..0b833d5 100644 --- a/hw/net/e1000.c +++ b/hw/net/e1000.c @@ -1764,7 +1764,7 @@ static void e1000_class_init(ObjectClass *klass, void *data) dc->desc = "Intel Gigabit Ethernet"; dc->reset = qdev_e1000_reset; dc->vmsd = &vmstate_e1000; - dc->props = e1000_properties; + device_class_set_props(dc, e1000_properties); } static void e1000_instance_init(Object *obj) diff --git a/hw/net/e1000e.c b/hw/net/e1000e.c index b69fd7d..a91dbdc 100644 --- a/hw/net/e1000e.c +++ b/hw/net/e1000e.c @@ -684,7 +684,6 @@ static void e1000e_class_init(ObjectClass *class, void *data) dc->desc = "Intel 82574L GbE Controller"; dc->reset = e1000e_qdev_reset; dc->vmsd = &e1000e_vmstate; - dc->props = e1000e_properties; e1000e_prop_disable_vnet = qdev_prop_uint8; e1000e_prop_disable_vnet.description = "Do not use virtio headers, " @@ -697,6 +696,7 @@ static void e1000e_class_init(ObjectClass *class, void *data) e1000e_prop_subsys = qdev_prop_uint16; e1000e_prop_subsys.description = "PCI device Subsystem ID"; + device_class_set_props(dc, e1000e_properties); set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); } diff --git a/hw/net/eepro100.c b/hw/net/eepro100.c index 6cc9776..f6474f0 100644 --- a/hw/net/eepro100.c +++ b/hw/net/eepro100.c @@ -2060,7 +2060,7 @@ static void eepro100_class_init(ObjectClass *klass, void *data) info = eepro100_get_class_by_name(object_class_get_name(klass)); set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); - dc->props = e100_properties; + device_class_set_props(dc, e100_properties); dc->desc = info->desc; k->vendor_id = PCI_VENDOR_ID_INTEL; k->class_id = PCI_CLASS_NETWORK_ETHERNET; diff --git a/hw/net/etraxfs_eth.c b/hw/net/etraxfs_eth.c index f30d963..27fd069 100644 --- a/hw/net/etraxfs_eth.c +++ b/hw/net/etraxfs_eth.c @@ -639,7 +639,7 @@ static void etraxfs_eth_class_init(ObjectClass *klass, void *data) dc->realize = etraxfs_eth_realize; dc->reset = etraxfs_eth_reset; - dc->props = etraxfs_eth_properties; + device_class_set_props(dc, etraxfs_eth_properties); /* Reason: dma_out, dma_in are not user settable */ dc->user_creatable = false; } diff --git a/hw/net/fsl_etsec/etsec.c b/hw/net/fsl_etsec/etsec.c index 717de76..475f3c8 100644 --- a/hw/net/fsl_etsec/etsec.c +++ b/hw/net/fsl_etsec/etsec.c @@ -423,7 +423,7 @@ static void etsec_class_init(ObjectClass *klass, void *data) dc->realize = etsec_realize; dc->reset = etsec_reset; - dc->props = etsec_properties; + device_class_set_props(dc, etsec_properties); /* Supported by ppce500 machine */ dc->user_creatable = true; } diff --git a/hw/net/ftgmac100.c b/hw/net/ftgmac100.c index 86ac258..4ad2594 100644 --- a/hw/net/ftgmac100.c +++ b/hw/net/ftgmac100.c @@ -1075,7 +1075,7 @@ static void ftgmac100_class_init(ObjectClass *klass, void *data) dc->vmsd = &vmstate_ftgmac100; dc->reset = ftgmac100_reset; - dc->props = ftgmac100_properties; + device_class_set_props(dc, ftgmac100_properties); set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); dc->realize = ftgmac100_realize; dc->desc = "Faraday FTGMAC100 Gigabit Ethernet emulation"; @@ -1237,7 +1237,7 @@ static void aspeed_mii_class_init(ObjectClass *klass, void *data) dc->reset = aspeed_mii_reset; dc->realize = aspeed_mii_realize; dc->desc = "Aspeed MII controller"; - dc->props = aspeed_mii_properties; + device_class_set_props(dc, aspeed_mii_properties); } static const TypeInfo aspeed_mii_info = { diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c index 5a83678..6a124a1 100644 --- a/hw/net/imx_fec.c +++ b/hw/net/imx_fec.c @@ -1338,7 +1338,7 @@ static void imx_eth_class_init(ObjectClass *klass, void *data) dc->vmsd = &vmstate_imx_eth; dc->reset = imx_eth_reset; - dc->props = imx_eth_properties; + device_class_set_props(dc, imx_eth_properties); dc->realize = imx_eth_realize; dc->desc = "i.MX FEC/ENET Ethernet Controller"; } diff --git a/hw/net/lan9118.c b/hw/net/lan9118.c index ed551f2..da7e0bb 100644 --- a/hw/net/lan9118.c +++ b/hw/net/lan9118.c @@ -1369,7 +1369,7 @@ static void lan9118_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->reset = lan9118_reset; - dc->props = lan9118_properties; + device_class_set_props(dc, lan9118_properties); dc->vmsd = &vmstate_lan9118; dc->realize = lan9118_realize; } diff --git a/hw/net/lance.c b/hw/net/lance.c index 4d96299..688724d 100644 --- a/hw/net/lance.c +++ b/hw/net/lance.c @@ -153,7 +153,7 @@ static void lance_class_init(ObjectClass *klass, void *data) dc->fw_name = "ethernet"; dc->reset = lance_reset; dc->vmsd = &vmstate_lance; - dc->props = lance_properties; + device_class_set_props(dc, lance_properties); } static const TypeInfo lance_info = { diff --git a/hw/net/mcf_fec.c b/hw/net/mcf_fec.c index 8fcf354..9327ac8 100644 --- a/hw/net/mcf_fec.c +++ b/hw/net/mcf_fec.c @@ -670,7 +670,7 @@ static void mcf_fec_class_init(ObjectClass *oc, void *data) dc->realize = mcf_fec_realize; dc->desc = "MCF Fast Ethernet Controller network device"; dc->reset = mcf_fec_reset; - dc->props = mcf_fec_properties; + device_class_set_props(dc, mcf_fec_properties); } static const TypeInfo mcf_fec_info = { diff --git a/hw/net/milkymist-minimac2.c b/hw/net/milkymist-minimac2.c index 86b6d28..1ba0175 100644 --- a/hw/net/milkymist-minimac2.c +++ b/hw/net/milkymist-minimac2.c @@ -530,7 +530,7 @@ static void milkymist_minimac2_class_init(ObjectClass *klass, void *data) dc->realize = milkymist_minimac2_realize; dc->reset = milkymist_minimac2_reset; dc->vmsd = &vmstate_milkymist_minimac2; - dc->props = milkymist_minimac2_properties; + device_class_set_props(dc, milkymist_minimac2_properties); } static const TypeInfo milkymist_minimac2_info = { diff --git a/hw/net/mipsnet.c b/hw/net/mipsnet.c index 380ff5a..0c578c4 100644 --- a/hw/net/mipsnet.c +++ b/hw/net/mipsnet.c @@ -278,7 +278,7 @@ static void mipsnet_class_init(ObjectClass *klass, void *data) dc->desc = "MIPS Simulator network device"; dc->reset = mipsnet_sysbus_reset; dc->vmsd = &vmstate_mipsnet; - dc->props = mipsnet_properties; + device_class_set_props(dc, mipsnet_properties); } static const TypeInfo mipsnet_info = { diff --git a/hw/net/ne2000-isa.c b/hw/net/ne2000-isa.c index 6fcf3d5..e744eff 100644 --- a/hw/net/ne2000-isa.c +++ b/hw/net/ne2000-isa.c @@ -89,7 +89,7 @@ static void isa_ne2000_class_initfn(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = isa_ne2000_realizefn; - dc->props = ne2000_isa_properties; + device_class_set_props(dc, ne2000_isa_properties); dc->vmsd = &vmstate_isa_ne2000; set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); } diff --git a/hw/net/ne2000-pci.c b/hw/net/ne2000-pci.c index 9a20d42..e11d67b 100644 --- a/hw/net/ne2000-pci.c +++ b/hw/net/ne2000-pci.c @@ -112,7 +112,7 @@ static void ne2000_class_init(ObjectClass *klass, void *data) k->device_id = PCI_DEVICE_ID_REALTEK_8029; k->class_id = PCI_CLASS_NETWORK_ETHERNET; dc->vmsd = &vmstate_pci_ne2000; - dc->props = ne2000_properties; + device_class_set_props(dc, ne2000_properties); set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); } diff --git a/hw/net/opencores_eth.c b/hw/net/opencores_eth.c index 84a95da..6b338c2 100644 --- a/hw/net/opencores_eth.c +++ b/hw/net/opencores_eth.c @@ -755,7 +755,7 @@ static void open_eth_class_init(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); dc->desc = "Opencores 10/100 Mbit Ethernet"; dc->reset = qdev_open_eth_reset; - dc->props = open_eth_properties; + device_class_set_props(dc, open_eth_properties); } static const TypeInfo open_eth_info = { diff --git a/hw/net/pcnet-pci.c b/hw/net/pcnet-pci.c index d067d21..d1f31e0 100644 --- a/hw/net/pcnet-pci.c +++ b/hw/net/pcnet-pci.c @@ -272,7 +272,7 @@ static void pcnet_class_init(ObjectClass *klass, void *data) k->class_id = PCI_CLASS_NETWORK_ETHERNET; dc->reset = pci_reset; dc->vmsd = &vmstate_pci_pcnet; - dc->props = pcnet_properties; + device_class_set_props(dc, pcnet_properties); set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); } diff --git a/hw/net/rocker/rocker.c b/hw/net/rocker/rocker.c index 50f9e33..81dd3b5 100644 --- a/hw/net/rocker/rocker.c +++ b/hw/net/rocker/rocker.c @@ -1519,7 +1519,7 @@ static void rocker_class_init(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); dc->desc = "Rocker Switch"; dc->reset = rocker_reset; - dc->props = rocker_properties; + device_class_set_props(dc, rocker_properties); dc->vmsd = &rocker_vmsd; } diff --git a/hw/net/rtl8139.c b/hw/net/rtl8139.c index 88a97d7..ae4739b 100644 --- a/hw/net/rtl8139.c +++ b/hw/net/rtl8139.c @@ -3435,7 +3435,7 @@ static void rtl8139_class_init(ObjectClass *klass, void *data) k->class_id = PCI_CLASS_NETWORK_ETHERNET; dc->reset = rtl8139_reset; dc->vmsd = &vmstate_rtl8139; - dc->props = rtl8139_properties; + device_class_set_props(dc, rtl8139_properties); set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); } diff --git a/hw/net/smc91c111.c b/hw/net/smc91c111.c index e574635..e9eb6f6 100644 --- a/hw/net/smc91c111.c +++ b/hw/net/smc91c111.c @@ -798,7 +798,7 @@ static void smc91c111_class_init(ObjectClass *klass, void *data) dc->realize = smc91c111_realize; dc->reset = smc91c111_reset; dc->vmsd = &vmstate_smc91c111; - dc->props = smc91c111_properties; + device_class_set_props(dc, smc91c111_properties); } static const TypeInfo smc91c111_info = { diff --git a/hw/net/spapr_llan.c b/hw/net/spapr_llan.c index 3d96884..80f5a1d 100644 --- a/hw/net/spapr_llan.c +++ b/hw/net/spapr_llan.c @@ -856,7 +856,7 @@ static void spapr_vlan_class_init(ObjectClass *klass, void *data) k->dt_compatible = "IBM,l-lan"; k->signal_mask = 0x1; set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); - dc->props = spapr_vlan_properties; + device_class_set_props(dc, spapr_vlan_properties); k->rtce_window_size = 0x10000000; dc->vmsd = &vmstate_spapr_llan; } diff --git a/hw/net/stellaris_enet.c b/hw/net/stellaris_enet.c index 3aca2a0..cb6e250 100644 --- a/hw/net/stellaris_enet.c +++ b/hw/net/stellaris_enet.c @@ -507,7 +507,7 @@ static void stellaris_enet_class_init(ObjectClass *klass, void *data) dc->realize = stellaris_enet_realize; dc->reset = stellaris_enet_reset; - dc->props = stellaris_enet_properties; + device_class_set_props(dc, stellaris_enet_properties); dc->vmsd = &vmstate_stellaris_enet; } diff --git a/hw/net/sungem.c b/hw/net/sungem.c index f31d41a..89da51f 100644 --- a/hw/net/sungem.c +++ b/hw/net/sungem.c @@ -1429,7 +1429,7 @@ static void sungem_class_init(ObjectClass *klass, void *data) k->class_id = PCI_CLASS_NETWORK_ETHERNET; dc->vmsd = &vmstate_sungem; dc->reset = sungem_reset; - dc->props = sungem_properties; + device_class_set_props(dc, sungem_properties); set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); } diff --git a/hw/net/sunhme.c b/hw/net/sunhme.c index 2243b7c..8863601 100644 --- a/hw/net/sunhme.c +++ b/hw/net/sunhme.c @@ -958,7 +958,7 @@ static void sunhme_class_init(ObjectClass *klass, void *data) k->class_id = PCI_CLASS_NETWORK_ETHERNET; dc->vmsd = &vmstate_hme; dc->reset = sunhme_reset; - dc->props = sunhme_properties; + device_class_set_props(dc, sunhme_properties); set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); } diff --git a/hw/net/tulip.c b/hw/net/tulip.c index f85f543..cfac271 100644 --- a/hw/net/tulip.c +++ b/hw/net/tulip.c @@ -1004,7 +1004,7 @@ static void tulip_class_init(ObjectClass *klass, void *data) k->subsystem_id = 0x104f; k->class_id = PCI_CLASS_NETWORK_ETHERNET; dc->vmsd = &vmstate_pci_tulip; - dc->props = tulip_properties; + device_class_set_props(dc, tulip_properties); dc->reset = tulip_qdev_reset; set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); } diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index d7d3ad6..3627bb1 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -3236,7 +3236,7 @@ static void virtio_net_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass); - dc->props = virtio_net_properties; + device_class_set_props(dc, virtio_net_properties); dc->vmsd = &vmstate_virtio_net; set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); vdc->realize = virtio_net_device_realize; diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c index 39ff662..6d91cd8 100644 --- a/hw/net/vmxnet3.c +++ b/hw/net/vmxnet3.c @@ -2506,7 +2506,7 @@ static void vmxnet3_class_init(ObjectClass *class, void *data) dc->desc = "VMWare Paravirtualized Ethernet v3"; dc->reset = vmxnet3_qdev_reset; dc->vmsd = &vmstate_vmxnet3; - dc->props = vmxnet3_properties; + device_class_set_props(dc, vmxnet3_properties); set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); } diff --git a/hw/net/xgmac.c b/hw/net/xgmac.c index 2ea8d2e..574dd47 100644 --- a/hw/net/xgmac.c +++ b/hw/net/xgmac.c @@ -414,7 +414,7 @@ static void xgmac_enet_class_init(ObjectClass *klass, void *data) dc->realize = xgmac_enet_realize; dc->vmsd = &vmstate_xgmac; - dc->props = xgmac_properties; + device_class_set_props(dc, xgmac_properties); } static const TypeInfo xgmac_enet_info = { diff --git a/hw/net/xilinx_axienet.c b/hw/net/xilinx_axienet.c index 2c8c065..7047888 100644 --- a/hw/net/xilinx_axienet.c +++ b/hw/net/xilinx_axienet.c @@ -1025,7 +1025,7 @@ static void xilinx_enet_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = xilinx_enet_realize; - dc->props = xilinx_enet_properties; + device_class_set_props(dc, xilinx_enet_properties); dc->reset = xilinx_axienet_reset; } diff --git a/hw/net/xilinx_ethlite.c b/hw/net/xilinx_ethlite.c index 384e72b..cf07e69 100644 --- a/hw/net/xilinx_ethlite.c +++ b/hw/net/xilinx_ethlite.c @@ -262,7 +262,7 @@ static void xilinx_ethlite_class_init(ObjectClass *klass, void *data) dc->realize = xilinx_ethlite_realize; dc->reset = xilinx_ethlite_reset; - dc->props = xilinx_ethlite_properties; + device_class_set_props(dc, xilinx_ethlite_properties); } static const TypeInfo xilinx_ethlite_info = { diff --git a/hw/nvram/ds1225y.c b/hw/nvram/ds1225y.c index 934e09b..d5cb922 100644 --- a/hw/nvram/ds1225y.c +++ b/hw/nvram/ds1225y.c @@ -153,7 +153,7 @@ static void nvram_sysbus_class_init(ObjectClass *klass, void *data) dc->realize = nvram_sysbus_realize; dc->vmsd = &vmstate_nvram; - dc->props = nvram_sysbus_properties; + device_class_set_props(dc, nvram_sysbus_properties); } static const TypeInfo nvram_sysbus_info = { diff --git a/hw/nvram/eeprom_at24c.c b/hw/nvram/eeprom_at24c.c index 3416367..d46a2be 100644 --- a/hw/nvram/eeprom_at24c.c +++ b/hw/nvram/eeprom_at24c.c @@ -182,7 +182,7 @@ void at24c_eeprom_class_init(ObjectClass *klass, void *data) k->recv = &at24c_eeprom_recv; k->send = &at24c_eeprom_send; - dc->props = at24c_eeprom_props; + device_class_set_props(dc, at24c_eeprom_props); dc->reset = at24c_eeprom_reset; } diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c index 5d879c4..179b302 100644 --- a/hw/nvram/fw_cfg.c +++ b/hw/nvram/fw_cfg.c @@ -1171,7 +1171,7 @@ static void fw_cfg_io_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = fw_cfg_io_realize; - dc->props = fw_cfg_io_properties; + device_class_set_props(dc, fw_cfg_io_properties); } static const TypeInfo fw_cfg_io_info = { @@ -1234,7 +1234,7 @@ static void fw_cfg_mem_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = fw_cfg_mem_realize; - dc->props = fw_cfg_mem_properties; + device_class_set_props(dc, fw_cfg_mem_properties); } static const TypeInfo fw_cfg_mem_info = { diff --git a/hw/nvram/mac_nvram.c b/hw/nvram/mac_nvram.c index 9a47e35..2e8a1e3 100644 --- a/hw/nvram/mac_nvram.c +++ b/hw/nvram/mac_nvram.c @@ -128,7 +128,7 @@ static void macio_nvram_class_init(ObjectClass *oc, void *data) dc->unrealize = macio_nvram_unrealizefn; dc->reset = macio_nvram_reset; dc->vmsd = &vmstate_macio_nvram; - dc->props = macio_nvram_properties; + device_class_set_props(dc, macio_nvram_properties); set_bit(DEVICE_CATEGORY_MISC, dc->categories); } diff --git a/hw/nvram/nrf51_nvm.c b/hw/nvram/nrf51_nvm.c index 4d678f9..f2283c1 100644 --- a/hw/nvram/nrf51_nvm.c +++ b/hw/nvram/nrf51_nvm.c @@ -369,7 +369,7 @@ static void nrf51_nvm_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = nrf51_nvm_properties; + device_class_set_props(dc, nrf51_nvm_properties); dc->vmsd = &vmstate_nvm; dc->realize = nrf51_nvm_realize; dc->reset = nrf51_nvm_reset; diff --git a/hw/nvram/spapr_nvram.c b/hw/nvram/spapr_nvram.c index 838082b..877ddef 100644 --- a/hw/nvram/spapr_nvram.c +++ b/hw/nvram/spapr_nvram.c @@ -269,7 +269,7 @@ static void spapr_nvram_class_init(ObjectClass *klass, void *data) k->dt_type = "nvram"; k->dt_compatible = "qemu,spapr-nvram"; set_bit(DEVICE_CATEGORY_MISC, dc->categories); - dc->props = spapr_nvram_properties; + device_class_set_props(dc, spapr_nvram_properties); dc->vmsd = &vmstate_spapr_nvram; /* Reason: Internal device only, uses spapr_rtas_register() in realize() */ dc->user_creatable = false; diff --git a/hw/pci-bridge/gen_pcie_root_port.c b/hw/pci-bridge/gen_pcie_root_port.c index 9eaefeb..bb26e27 100644 --- a/hw/pci-bridge/gen_pcie_root_port.c +++ b/hw/pci-bridge/gen_pcie_root_port.c @@ -147,7 +147,7 @@ static void gen_rp_dev_class_init(ObjectClass *klass, void *data) k->device_id = PCI_DEVICE_ID_REDHAT_PCIE_RP; dc->desc = "PCI Express Root Port"; dc->vmsd = &vmstate_rp_dev; - dc->props = gen_rp_props; + device_class_set_props(dc, gen_rp_props); device_class_set_parent_realize(dc, gen_rp_realize, &rpc->parent_realize); diff --git a/hw/pci-bridge/pci_bridge_dev.c b/hw/pci-bridge/pci_bridge_dev.c index cc80cb4..4a080b7 100644 --- a/hw/pci-bridge/pci_bridge_dev.c +++ b/hw/pci-bridge/pci_bridge_dev.c @@ -258,7 +258,7 @@ static void pci_bridge_dev_class_init(ObjectClass *klass, void *data) k->is_bridge = true; dc->desc = "Standard PCI Bridge"; dc->reset = qdev_pci_bridge_dev_reset; - dc->props = pci_bridge_dev_properties; + device_class_set_props(dc, pci_bridge_dev_properties); dc->vmsd = &pci_bridge_dev_vmstate; set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); hc->plug = pci_bridge_dev_plug_cb; diff --git a/hw/pci-bridge/pci_expander_bridge.c b/hw/pci-bridge/pci_expander_bridge.c index 0592818..47aaaf8 100644 --- a/hw/pci-bridge/pci_expander_bridge.c +++ b/hw/pci-bridge/pci_expander_bridge.c @@ -309,7 +309,7 @@ static void pxb_dev_class_init(ObjectClass *klass, void *data) k->class_id = PCI_CLASS_BRIDGE_HOST; dc->desc = "PCI Expander Bridge"; - dc->props = pxb_dev_properties; + device_class_set_props(dc, pxb_dev_properties); dc->hotpluggable = false; set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); } @@ -347,7 +347,7 @@ static void pxb_pcie_dev_class_init(ObjectClass *klass, void *data) k->class_id = PCI_CLASS_BRIDGE_HOST; dc->desc = "PCI Express Expander Bridge"; - dc->props = pxb_dev_properties; + device_class_set_props(dc, pxb_dev_properties); dc->hotpluggable = false; set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); } diff --git a/hw/pci-bridge/pcie_pci_bridge.c b/hw/pci-bridge/pcie_pci_bridge.c index 7679bef..eade133 100644 --- a/hw/pci-bridge/pcie_pci_bridge.c +++ b/hw/pci-bridge/pcie_pci_bridge.c @@ -152,7 +152,7 @@ static void pcie_pci_bridge_class_init(ObjectClass *klass, void *data) k->exit = pcie_pci_bridge_exit; k->config_write = pcie_pci_bridge_write_config; dc->vmsd = &pcie_pci_bridge_dev_vmstate; - dc->props = pcie_pci_bridge_dev_properties; + device_class_set_props(dc, pcie_pci_bridge_dev_properties); dc->reset = &pcie_pci_bridge_reset; set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); hc->plug = pci_bridge_dev_plug_cb; diff --git a/hw/pci-bridge/pcie_root_port.c b/hw/pci-bridge/pcie_root_port.c index 012c2cb..0ba4e4d 100644 --- a/hw/pci-bridge/pcie_root_port.c +++ b/hw/pci-bridge/pcie_root_port.c @@ -174,7 +174,7 @@ static void rp_class_init(ObjectClass *klass, void *data) k->exit = rp_exit; set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); dc->reset = rp_reset; - dc->props = rp_props; + device_class_set_props(dc, rp_props); } static const TypeInfo rp_info = { diff --git a/hw/pci-bridge/xio3130_downstream.c b/hw/pci-bridge/xio3130_downstream.c index a9f084b..153a4ac 100644 --- a/hw/pci-bridge/xio3130_downstream.c +++ b/hw/pci-bridge/xio3130_downstream.c @@ -169,7 +169,7 @@ static void xio3130_downstream_class_init(ObjectClass *klass, void *data) dc->desc = "TI X3130 Downstream Port of PCI Express Switch"; dc->reset = xio3130_downstream_reset; dc->vmsd = &vmstate_xio3130_downstream; - dc->props = xio3130_downstream_props; + device_class_set_props(dc, xio3130_downstream_props); } static const TypeInfo xio3130_downstream_info = { diff --git a/hw/pci-host/grackle.c b/hw/pci-host/grackle.c index 537273e..24ccdf6 100644 --- a/hw/pci-host/grackle.c +++ b/hw/pci-host/grackle.c @@ -168,7 +168,7 @@ static void grackle_class_init(ObjectClass *klass, void *data) SysBusDeviceClass *sbc = SYS_BUS_DEVICE_CLASS(klass); dc->realize = grackle_realize; - dc->props = grackle_properties; + device_class_set_props(dc, grackle_properties); set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); dc->fw_name = "pci"; sbc->explicit_ofw_unit_address = grackle_ofw_unit_address; diff --git a/hw/pci-host/i440fx.c b/hw/pci-host/i440fx.c index bae7b42..11050a0 100644 --- a/hw/pci-host/i440fx.c +++ b/hw/pci-host/i440fx.c @@ -396,7 +396,7 @@ static void i440fx_pcihost_class_init(ObjectClass *klass, void *data) hc->root_bus_path = i440fx_pcihost_root_bus_path; dc->realize = i440fx_pcihost_realize; dc->fw_name = "pci"; - dc->props = i440fx_props; + device_class_set_props(dc, i440fx_props); /* Reason: needs to be wired up by pc_init1 */ dc->user_creatable = false; } diff --git a/hw/pci-host/ppce500.c b/hw/pci-host/ppce500.c index 8bed8e8..d710727 100644 --- a/hw/pci-host/ppce500.c +++ b/hw/pci-host/ppce500.c @@ -531,7 +531,7 @@ static void e500_pcihost_class_init(ObjectClass *klass, void *data) dc->realize = e500_pcihost_realize; set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); - dc->props = pcihost_properties; + device_class_set_props(dc, pcihost_properties); dc->vmsd = &vmstate_ppce500_pci; } diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c index afa136d..f2f8821 100644 --- a/hw/pci-host/prep.c +++ b/hw/pci-host/prep.c @@ -415,7 +415,7 @@ static void raven_pcihost_class_init(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); dc->realize = raven_pcihost_realizefn; - dc->props = raven_pcihost_properties; + device_class_set_props(dc, raven_pcihost_properties); dc->fw_name = "pci"; } diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c index 158d270..0d5dbba 100644 --- a/hw/pci-host/q35.c +++ b/hw/pci-host/q35.c @@ -202,7 +202,7 @@ static void q35_host_class_init(ObjectClass *klass, void *data) hc->root_bus_path = q35_host_root_bus_path; dc->realize = q35_host_realize; - dc->props = q35_host_props; + device_class_set_props(dc, q35_host_props); /* Reason: needs to be wired up by pc_q35_init */ dc->user_creatable = false; set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); @@ -612,7 +612,7 @@ static void mch_class_init(ObjectClass *klass, void *data) k->realize = mch_realize; k->config_write = mch_write_config; dc->reset = mch_reset; - dc->props = mch_props; + device_class_set_props(dc, mch_props); set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); dc->desc = "Host bridge"; dc->vmsd = &vmstate_mch; diff --git a/hw/pci-host/sabre.c b/hw/pci-host/sabre.c index fae20ee..2b8503b 100644 --- a/hw/pci-host/sabre.c +++ b/hw/pci-host/sabre.c @@ -521,7 +521,7 @@ static void sabre_class_init(ObjectClass *klass, void *data) dc->realize = sabre_realize; dc->reset = sabre_reset; - dc->props = sabre_properties; + device_class_set_props(dc, sabre_properties); set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); dc->fw_name = "pci"; sbc->explicit_ofw_unit_address = sabre_ofw_unit_address; diff --git a/hw/pci-host/uninorth.c b/hw/pci-host/uninorth.c index 75bc506..cf70b76 100644 --- a/hw/pci-host/uninorth.c +++ b/hw/pci-host/uninorth.c @@ -476,7 +476,7 @@ static void pci_unin_main_class_init(ObjectClass *klass, void *data) SysBusDeviceClass *sbc = SYS_BUS_DEVICE_CLASS(klass); dc->realize = pci_unin_main_realize; - dc->props = pci_unin_main_pci_host_props; + device_class_set_props(dc, pci_unin_main_pci_host_props); set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); dc->fw_name = "pci"; sbc->explicit_ofw_unit_address = pci_unin_main_ofw_unit_address; diff --git a/hw/pci-host/versatile.c b/hw/pci-host/versatile.c index b731d05..cfb9a78 100644 --- a/hw/pci-host/versatile.c +++ b/hw/pci-host/versatile.c @@ -509,7 +509,7 @@ static void pci_vpb_class_init(ObjectClass *klass, void *data) dc->realize = pci_vpb_realize; dc->reset = pci_vpb_reset; dc->vmsd = &pci_vpb_vmstate; - dc->props = pci_vpb_properties; + device_class_set_props(dc, pci_vpb_properties); } static const TypeInfo pci_vpb_info = { diff --git a/hw/pci-host/xilinx-pcie.c b/hw/pci-host/xilinx-pcie.c index 17d5024..e06f2b5 100644 --- a/hw/pci-host/xilinx-pcie.c +++ b/hw/pci-host/xilinx-pcie.c @@ -177,7 +177,7 @@ static void xilinx_pcie_host_class_init(ObjectClass *klass, void *data) dc->realize = xilinx_pcie_host_realize; set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); dc->fw_name = "pci"; - dc->props = xilinx_pcie_host_props; + device_class_set_props(dc, xilinx_pcie_host_props); } static const TypeInfo xilinx_pcie_host_info = { diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 3ac7961..e1ed667 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2624,7 +2624,7 @@ static void pci_device_class_init(ObjectClass *klass, void *data) k->realize = pci_qdev_realize; k->unrealize = pci_qdev_unrealize; k->bus_type = TYPE_PCI_BUS; - k->props = pci_props; + device_class_set_props(k, pci_props); } static void pci_device_class_base_init(ObjectClass *klass, void *data) diff --git a/hw/pci/pcie_port.c b/hw/pci/pcie_port.c index c19a9be..f8263cb 100644 --- a/hw/pci/pcie_port.c +++ b/hw/pci/pcie_port.c @@ -133,7 +133,7 @@ static void pcie_port_class_init(ObjectClass *oc, void *data) { DeviceClass *dc = DEVICE_CLASS(oc); - dc->props = pcie_port_props; + device_class_set_props(dc, pcie_port_props); } static const TypeInfo pcie_port_type_info = { @@ -155,7 +155,7 @@ static void pcie_slot_class_init(ObjectClass *oc, void *data) DeviceClass *dc = DEVICE_CLASS(oc); HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(oc); - dc->props = pcie_slot_props; + device_class_set_props(dc, pcie_slot_props); hc->pre_plug = pcie_cap_slot_pre_plug_cb; hc->plug = pcie_cap_slot_plug_cb; hc->unplug = pcie_cap_slot_unplug_cb; diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index e2735bb..e61994c 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -1614,7 +1614,7 @@ static void pnv_chip_class_init(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_CPU, dc->categories); dc->realize = pnv_chip_realize; - dc->props = pnv_chip_properties; + device_class_set_props(dc, pnv_chip_properties); dc->desc = "PowerNV Chip"; } diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c index 2651044..8ca5fbd 100644 --- a/hw/ppc/pnv_core.c +++ b/hw/ppc/pnv_core.c @@ -323,7 +323,7 @@ static void pnv_core_class_init(ObjectClass *oc, void *data) dc->realize = pnv_core_realize; dc->unrealize = pnv_core_unrealize; - dc->props = pnv_core_properties; + device_class_set_props(dc, pnv_core_properties); } #define DEFINE_PNV_CORE_TYPE(family, cpu_model) \ @@ -421,7 +421,7 @@ static void pnv_quad_class_init(ObjectClass *oc, void *data) DeviceClass *dc = DEVICE_CLASS(oc); dc->realize = pnv_quad_realize; - dc->props = pnv_quad_properties; + device_class_set_props(dc, pnv_quad_properties); } static const TypeInfo pnv_quad_info = { diff --git a/hw/ppc/pnv_homer.c b/hw/ppc/pnv_homer.c index a08b791..93ae42f 100644 --- a/hw/ppc/pnv_homer.c +++ b/hw/ppc/pnv_homer.c @@ -359,7 +359,7 @@ static void pnv_homer_class_init(ObjectClass *klass, void *data) dc->realize = pnv_homer_realize; dc->desc = "PowerNV HOMER Memory"; - dc->props = pnv_homer_properties; + device_class_set_props(dc, pnv_homer_properties); } static const TypeInfo pnv_homer_type_info = { diff --git a/hw/ppc/pnv_lpc.c b/hw/ppc/pnv_lpc.c index 18256d9..22b2055 100644 --- a/hw/ppc/pnv_lpc.c +++ b/hw/ppc/pnv_lpc.c @@ -761,7 +761,7 @@ static void pnv_lpc_class_init(ObjectClass *klass, void *data) dc->realize = pnv_lpc_realize; dc->desc = "PowerNV LPC Controller"; - dc->props = pnv_lpc_properties; + device_class_set_props(dc, pnv_lpc_properties); } static const TypeInfo pnv_lpc_info = { diff --git a/hw/ppc/pnv_occ.c b/hw/ppc/pnv_occ.c index 924fdab..2173fac 100644 --- a/hw/ppc/pnv_occ.c +++ b/hw/ppc/pnv_occ.c @@ -279,7 +279,7 @@ static void pnv_occ_class_init(ObjectClass *klass, void *data) dc->realize = pnv_occ_realize; dc->desc = "PowerNV OCC Controller"; - dc->props = pnv_occ_properties; + device_class_set_props(dc, pnv_occ_properties); } static const TypeInfo pnv_occ_type_info = { diff --git a/hw/ppc/pnv_pnor.c b/hw/ppc/pnv_pnor.c index b061106..f761d8d 100644 --- a/hw/ppc/pnv_pnor.c +++ b/hw/ppc/pnv_pnor.c @@ -121,7 +121,7 @@ static void pnv_pnor_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = pnv_pnor_realize; - dc->props = pnv_pnor_properties; + device_class_set_props(dc, pnv_pnor_properties); } static const TypeInfo pnv_pnor_info = { diff --git a/hw/ppc/pnv_psi.c b/hw/ppc/pnv_psi.c index 1d8da31..6baf950 100644 --- a/hw/ppc/pnv_psi.c +++ b/hw/ppc/pnv_psi.c @@ -937,7 +937,7 @@ static void pnv_psi_class_init(ObjectClass *klass, void *data) xdc->dt_xscom = pnv_psi_dt_xscom; dc->desc = "PowerNV PSI Controller"; - dc->props = pnv_psi_properties; + device_class_set_props(dc, pnv_psi_properties); dc->reset = pnv_psi_reset; } diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c index 95475c9..1a6a8fa 100644 --- a/hw/ppc/ppc440_uc.c +++ b/hw/ppc/ppc440_uc.c @@ -1296,7 +1296,7 @@ static void ppc460ex_pcie_class_init(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); dc->realize = ppc460ex_pcie_realize; - dc->props = ppc460ex_pcie_props; + device_class_set_props(dc, ppc460ex_pcie_props); dc->hotpluggable = false; } diff --git a/hw/ppc/prep_systemio.c b/hw/ppc/prep_systemio.c index 86e83e2..bbc51b6 100644 --- a/hw/ppc/prep_systemio.c +++ b/hw/ppc/prep_systemio.c @@ -289,7 +289,7 @@ static void prep_systemio_class_initfn(ObjectClass *klass, void *data) dc->realize = prep_systemio_realize; dc->vmsd = &vmstate_prep_systemio; - dc->props = prep_systemio_properties; + device_class_set_props(dc, prep_systemio_properties); } static TypeInfo prep_systemio800_info = { diff --git a/hw/ppc/rs6000_mc.c b/hw/ppc/rs6000_mc.c index 66b14db..f8a498b 100644 --- a/hw/ppc/rs6000_mc.c +++ b/hw/ppc/rs6000_mc.c @@ -222,7 +222,7 @@ static void rs6000mc_class_initfn(ObjectClass *klass, void *data) dc->realize = rs6000mc_realize; dc->vmsd = &vmstate_rs6000mc; - dc->props = rs6000mc_properties; + device_class_set_props(dc, rs6000mc_properties); } static const TypeInfo rs6000mc_info = { diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index 8339c4c..d09125d 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -383,7 +383,7 @@ static void spapr_cpu_core_class_init(ObjectClass *oc, void *data) dc->realize = spapr_cpu_core_realize; dc->unrealize = spapr_cpu_core_unrealize; dc->reset = spapr_cpu_core_reset; - dc->props = spapr_cpu_core_properties; + device_class_set_props(dc, spapr_cpu_core_properties); scc->cpu_type = data; } diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c index 723373d..e82bfc5 100644 --- a/hw/ppc/spapr_pci.c +++ b/hw/ppc/spapr_pci.c @@ -2217,7 +2217,7 @@ static void spapr_phb_class_init(ObjectClass *klass, void *data) hc->root_bus_path = spapr_phb_root_bus_path; dc->realize = spapr_phb_realize; dc->unrealize = spapr_phb_unrealize; - dc->props = spapr_phb_properties; + device_class_set_props(dc, spapr_phb_properties); dc->reset = spapr_phb_reset; dc->vmsd = &vmstate_spapr_pci; /* Supported by TYPE_SPAPR_MACHINE */ diff --git a/hw/ppc/spapr_rng.c b/hw/ppc/spapr_rng.c index 954e4ae..e8e8d65 100644 --- a/hw/ppc/spapr_rng.c +++ b/hw/ppc/spapr_rng.c @@ -146,7 +146,7 @@ static void spapr_rng_class_init(ObjectClass *oc, void *data) dc->realize = spapr_rng_realize; set_bit(DEVICE_CATEGORY_MISC, dc->categories); - dc->props = spapr_rng_properties; + device_class_set_props(dc, spapr_rng_properties); dc->hotpluggable = false; } diff --git a/hw/ppc/spapr_tpm_proxy.c b/hw/ppc/spapr_tpm_proxy.c index ca1caec..991615d 100644 --- a/hw/ppc/spapr_tpm_proxy.c +++ b/hw/ppc/spapr_tpm_proxy.c @@ -159,7 +159,7 @@ static void spapr_tpm_proxy_class_init(ObjectClass *k, void *data) dk->realize = spapr_tpm_proxy_realize; dk->unrealize = spapr_tpm_proxy_unrealize; dk->user_creatable = true; - dk->props = spapr_tpm_proxy_properties; + device_class_set_props(dk, spapr_tpm_proxy_properties); } static const TypeInfo spapr_tpm_proxy_info = { diff --git a/hw/rdma/vmw/pvrdma_main.c b/hw/rdma/vmw/pvrdma_main.c index 6f0fc40..3254aad 100644 --- a/hw/rdma/vmw/pvrdma_main.c +++ b/hw/rdma/vmw/pvrdma_main.c @@ -690,7 +690,7 @@ static void pvrdma_class_init(ObjectClass *klass, void *data) k->class_id = PCI_CLASS_NETWORK_OTHER; dc->desc = "RDMA Device"; - dc->props = pvrdma_dev_properties; + device_class_set_props(dc, pvrdma_dev_properties); set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); ir->print_statistics = pvrdma_print_statistics; diff --git a/hw/riscv/riscv_hart.c b/hw/riscv/riscv_hart.c index 5b98227..276a9ba 100644 --- a/hw/riscv/riscv_hart.c +++ b/hw/riscv/riscv_hart.c @@ -74,7 +74,7 @@ static void riscv_harts_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = riscv_harts_props; + device_class_set_props(dc, riscv_harts_props); dc->realize = riscv_harts_realize; } diff --git a/hw/riscv/sifive_clint.c b/hw/riscv/sifive_clint.c index e5a8f75..e2feee8 100644 --- a/hw/riscv/sifive_clint.c +++ b/hw/riscv/sifive_clint.c @@ -205,7 +205,7 @@ static void sifive_clint_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = sifive_clint_realize; - dc->props = sifive_clint_properties; + device_class_set_props(dc, sifive_clint_properties); } static const TypeInfo sifive_clint_info = { diff --git a/hw/riscv/sifive_plic.c b/hw/riscv/sifive_plic.c index 98e4304..c1e04cb 100644 --- a/hw/riscv/sifive_plic.c +++ b/hw/riscv/sifive_plic.c @@ -466,7 +466,7 @@ static void sifive_plic_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = sifive_plic_properties; + device_class_set_props(dc, sifive_plic_properties); dc->realize = sifive_plic_realize; } diff --git a/hw/riscv/sifive_u_otp.c b/hw/riscv/sifive_u_otp.c index ea0eee5..f6ecbaa 100644 --- a/hw/riscv/sifive_u_otp.c +++ b/hw/riscv/sifive_u_otp.c @@ -171,7 +171,7 @@ static void sifive_u_otp_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = sifive_u_otp_properties; + device_class_set_props(dc, sifive_u_otp_properties); dc->realize = sifive_u_otp_realize; dc->reset = sifive_u_otp_reset; } diff --git a/hw/rtc/m48t59-isa.c b/hw/rtc/m48t59-isa.c index 7fde854..131eb5b 100644 --- a/hw/rtc/m48t59-isa.c +++ b/hw/rtc/m48t59-isa.c @@ -137,7 +137,7 @@ static void m48txx_isa_class_init(ObjectClass *klass, void *data) dc->realize = m48t59_isa_realize; dc->reset = m48t59_reset_isa; - dc->props = m48t59_isa_properties; + device_class_set_props(dc, m48t59_isa_properties); nc->read = m48txx_isa_read; nc->write = m48txx_isa_write; nc->toggle_lock = m48txx_isa_toggle_lock; diff --git a/hw/rtc/m48t59.c b/hw/rtc/m48t59.c index fc592b9..1269134 100644 --- a/hw/rtc/m48t59.c +++ b/hw/rtc/m48t59.c @@ -667,7 +667,7 @@ static void m48txx_sysbus_class_init(ObjectClass *klass, void *data) dc->realize = m48t59_realize; dc->reset = m48t59_reset_sysbus; - dc->props = m48t59_sysbus_properties; + device_class_set_props(dc, m48t59_sysbus_properties); dc->vmsd = &vmstate_m48t59; nc->read = m48txx_sysbus_read; nc->write = m48txx_sysbus_write; diff --git a/hw/rtc/mc146818rtc.c b/hw/rtc/mc146818rtc.c index 74ae74b..dc4269c 100644 --- a/hw/rtc/mc146818rtc.c +++ b/hw/rtc/mc146818rtc.c @@ -1015,7 +1015,7 @@ static void rtc_class_initfn(ObjectClass *klass, void *data) dc->realize = rtc_realizefn; dc->reset = rtc_resetdev; dc->vmsd = &vmstate_rtc; - dc->props = mc146818rtc_properties; + device_class_set_props(dc, mc146818rtc_properties); } static const TypeInfo mc146818rtc_info = { diff --git a/hw/rtc/pl031.c b/hw/rtc/pl031.c index c57cf83..ae47f09 100644 --- a/hw/rtc/pl031.c +++ b/hw/rtc/pl031.c @@ -321,7 +321,7 @@ static void pl031_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->vmsd = &vmstate_pl031; - dc->props = pl031_properties; + device_class_set_props(dc, pl031_properties); } static const TypeInfo pl031_info = { diff --git a/hw/s390x/3270-ccw.c b/hw/s390x/3270-ccw.c index c19a75b..821319e 100644 --- a/hw/s390x/3270-ccw.c +++ b/hw/s390x/3270-ccw.c @@ -155,7 +155,7 @@ static void emulated_ccw_3270_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = emulated_ccw_3270_properties; + device_class_set_props(dc, emulated_ccw_3270_properties); dc->bus_type = TYPE_VIRTUAL_CSS_BUS; dc->realize = emulated_ccw_3270_realize; dc->hotpluggable = false; diff --git a/hw/s390x/ccw-device.c b/hw/s390x/ccw-device.c index 4d222ad..c970711 100644 --- a/hw/s390x/ccw-device.c +++ b/hw/s390x/ccw-device.c @@ -57,7 +57,7 @@ static void ccw_device_class_init(ObjectClass *klass, void *data) k->realize = ccw_device_realize; k->refill_ids = ccw_device_refill_ids; - dc->props = ccw_device_properties; + device_class_set_props(dc, ccw_device_properties); dc->reset = ccw_device_reset; } diff --git a/hw/s390x/css-bridge.c b/hw/s390x/css-bridge.c index 15a8ed9..a306a78 100644 --- a/hw/s390x/css-bridge.c +++ b/hw/s390x/css-bridge.c @@ -139,7 +139,7 @@ static void virtual_css_bridge_class_init(ObjectClass *klass, void *data) hc->unplug = ccw_device_unplug; set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); - dc->props = virtual_css_bridge_properties; + device_class_set_props(dc, virtual_css_bridge_properties); object_class_property_add_bool(klass, "cssid-unrestricted", prop_get_true, NULL, NULL); object_class_property_set_description(klass, "cssid-unrestricted", diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c index ca544d6..b3ae901 100644 --- a/hw/s390x/ipl.c +++ b/hw/s390x/ipl.c @@ -666,7 +666,7 @@ static void s390_ipl_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = s390_ipl_realize; - dc->props = s390_ipl_properties; + device_class_set_props(dc, s390_ipl_properties); dc->reset = s390_ipl_reset; dc->vmsd = &vmstate_ipl; set_bit(DEVICE_CATEGORY_MISC, dc->categories); diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c index 2d2f4a7..7c6a2b3 100644 --- a/hw/s390x/s390-pci-bus.c +++ b/hw/s390x/s390-pci-bus.c @@ -1314,7 +1314,7 @@ static void s390_pci_device_class_init(ObjectClass *klass, void *data) dc->reset = s390_pci_device_reset; dc->bus_type = TYPE_S390_PCI_BUS; dc->realize = s390_pci_device_realize; - dc->props = s390_pci_device_properties; + device_class_set_props(dc, s390_pci_device_properties); dc->vmsd = &s390_pci_device_vmstate; } diff --git a/hw/s390x/vhost-vsock-ccw.c b/hw/s390x/vhost-vsock-ccw.c index 1835812..12dee15 100644 --- a/hw/s390x/vhost-vsock-ccw.c +++ b/hw/s390x/vhost-vsock-ccw.c @@ -35,7 +35,7 @@ static void vhost_vsock_ccw_class_init(ObjectClass *klass, void *data) k->realize = vhost_vsock_ccw_realize; set_bit(DEVICE_CATEGORY_MISC, dc->categories); - dc->props = vhost_vsock_ccw_properties; + device_class_set_props(dc, vhost_vsock_ccw_properties); } static void vhost_vsock_ccw_instance_init(Object *obj) diff --git a/hw/s390x/virtio-ccw-9p.c b/hw/s390x/virtio-ccw-9p.c index 5453a96..08e1d5d 100644 --- a/hw/s390x/virtio-ccw-9p.c +++ b/hw/s390x/virtio-ccw-9p.c @@ -47,7 +47,7 @@ static void virtio_ccw_9p_class_init(ObjectClass *klass, void *data) VirtIOCCWDeviceClass *k = VIRTIO_CCW_DEVICE_CLASS(klass); k->realize = virtio_ccw_9p_realize; - dc->props = virtio_ccw_9p_properties; + device_class_set_props(dc, virtio_ccw_9p_properties); set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); } diff --git a/hw/s390x/virtio-ccw-balloon.c b/hw/s390x/virtio-ccw-balloon.c index 7088612..5d28e72 100644 --- a/hw/s390x/virtio-ccw-balloon.c +++ b/hw/s390x/virtio-ccw-balloon.c @@ -52,7 +52,7 @@ static void virtio_ccw_balloon_class_init(ObjectClass *klass, void *data) VirtIOCCWDeviceClass *k = VIRTIO_CCW_DEVICE_CLASS(klass); k->realize = virtio_ccw_balloon_realize; - dc->props = virtio_ccw_balloon_properties; + device_class_set_props(dc, virtio_ccw_balloon_properties); set_bit(DEVICE_CATEGORY_MISC, dc->categories); } diff --git a/hw/s390x/virtio-ccw-blk.c b/hw/s390x/virtio-ccw-blk.c index 1512af8..bf8520e 100644 --- a/hw/s390x/virtio-ccw-blk.c +++ b/hw/s390x/virtio-ccw-blk.c @@ -49,7 +49,7 @@ static void virtio_ccw_blk_class_init(ObjectClass *klass, void *data) VirtIOCCWDeviceClass *k = VIRTIO_CCW_DEVICE_CLASS(klass); k->realize = virtio_ccw_blk_realize; - dc->props = virtio_ccw_blk_properties; + device_class_set_props(dc, virtio_ccw_blk_properties); set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); } diff --git a/hw/s390x/virtio-ccw-crypto.c b/hw/s390x/virtio-ccw-crypto.c index 086b397..1a2690c 100644 --- a/hw/s390x/virtio-ccw-crypto.c +++ b/hw/s390x/virtio-ccw-crypto.c @@ -57,7 +57,7 @@ static void virtio_ccw_crypto_class_init(ObjectClass *klass, void *data) VirtIOCCWDeviceClass *k = VIRTIO_CCW_DEVICE_CLASS(klass); k->realize = virtio_ccw_crypto_realize; - dc->props = virtio_ccw_crypto_properties; + device_class_set_props(dc, virtio_ccw_crypto_properties); set_bit(DEVICE_CATEGORY_MISC, dc->categories); } diff --git a/hw/s390x/virtio-ccw-gpu.c b/hw/s390x/virtio-ccw-gpu.c index be46ca7..f69e3ff 100644 --- a/hw/s390x/virtio-ccw-gpu.c +++ b/hw/s390x/virtio-ccw-gpu.c @@ -48,7 +48,7 @@ static void virtio_ccw_gpu_class_init(ObjectClass *klass, void *data) VirtIOCCWDeviceClass *k = VIRTIO_CCW_DEVICE_CLASS(klass); k->realize = virtio_ccw_gpu_realize; - dc->props = virtio_ccw_gpu_properties; + device_class_set_props(dc, virtio_ccw_gpu_properties); dc->hotpluggable = false; set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories); } diff --git a/hw/s390x/virtio-ccw-input.c b/hw/s390x/virtio-ccw-input.c index 370b776..b257dfd 100644 --- a/hw/s390x/virtio-ccw-input.c +++ b/hw/s390x/virtio-ccw-input.c @@ -38,7 +38,7 @@ static void virtio_ccw_input_class_init(ObjectClass *klass, void *data) VirtIOCCWDeviceClass *k = VIRTIO_CCW_DEVICE_CLASS(klass); k->realize = virtio_ccw_input_realize; - dc->props = virtio_ccw_input_properties; + device_class_set_props(dc, virtio_ccw_input_properties); set_bit(DEVICE_CATEGORY_INPUT, dc->categories); } diff --git a/hw/s390x/virtio-ccw-net.c b/hw/s390x/virtio-ccw-net.c index 12c03d7..cd02699 100644 --- a/hw/s390x/virtio-ccw-net.c +++ b/hw/s390x/virtio-ccw-net.c @@ -52,7 +52,7 @@ static void virtio_ccw_net_class_init(ObjectClass *klass, void *data) VirtIOCCWDeviceClass *k = VIRTIO_CCW_DEVICE_CLASS(klass); k->realize = virtio_ccw_net_realize; - dc->props = virtio_ccw_net_properties; + device_class_set_props(dc, virtio_ccw_net_properties); set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); } diff --git a/hw/s390x/virtio-ccw-rng.c b/hw/s390x/virtio-ccw-rng.c index 854254d..d575e30 100644 --- a/hw/s390x/virtio-ccw-rng.c +++ b/hw/s390x/virtio-ccw-rng.c @@ -56,7 +56,7 @@ static void virtio_ccw_rng_class_init(ObjectClass *klass, void *data) VirtIOCCWDeviceClass *k = VIRTIO_CCW_DEVICE_CLASS(klass); k->realize = virtio_ccw_rng_realize; - dc->props = virtio_ccw_rng_properties; + device_class_set_props(dc, virtio_ccw_rng_properties); set_bit(DEVICE_CATEGORY_MISC, dc->categories); } diff --git a/hw/s390x/virtio-ccw-scsi.c b/hw/s390x/virtio-ccw-scsi.c index 4662288..3cb3ad6 100644 --- a/hw/s390x/virtio-ccw-scsi.c +++ b/hw/s390x/virtio-ccw-scsi.c @@ -59,7 +59,7 @@ static void virtio_ccw_scsi_class_init(ObjectClass *klass, void *data) VirtIOCCWDeviceClass *k = VIRTIO_CCW_DEVICE_CLASS(klass); k->realize = virtio_ccw_scsi_realize; - dc->props = virtio_ccw_scsi_properties; + device_class_set_props(dc, virtio_ccw_scsi_properties); set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); } @@ -102,7 +102,7 @@ static void vhost_ccw_scsi_class_init(ObjectClass *klass, void *data) VirtIOCCWDeviceClass *k = VIRTIO_CCW_DEVICE_CLASS(klass); k->realize = vhost_ccw_scsi_realize; - dc->props = vhost_ccw_scsi_properties; + device_class_set_props(dc, vhost_ccw_scsi_properties); set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); } diff --git a/hw/s390x/virtio-ccw-serial.c b/hw/s390x/virtio-ccw-serial.c index eafb7d5..1764db2 100644 --- a/hw/s390x/virtio-ccw-serial.c +++ b/hw/s390x/virtio-ccw-serial.c @@ -60,7 +60,7 @@ static void virtio_ccw_serial_class_init(ObjectClass *klass, void *data) VirtIOCCWDeviceClass *k = VIRTIO_CCW_DEVICE_CLASS(klass); k->realize = virtio_ccw_serial_realize; - dc->props = virtio_ccw_serial_properties; + device_class_set_props(dc, virtio_ccw_serial_properties); set_bit(DEVICE_CATEGORY_INPUT, dc->categories); } diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c index de9bd20..af18c88 100644 --- a/hw/scsi/megasas.c +++ b/hw/scsi/megasas.c @@ -2511,7 +2511,7 @@ static void megasas_class_init(ObjectClass *oc, void *data) e->osts = info->osts; e->product_name = info->product_name; e->product_version = info->product_version; - dc->props = info->props; + device_class_set_props(dc, info->props); dc->reset = megasas_scsi_reset; dc->vmsd = info->vmsd; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c index b8a4b37..14cbed8 100644 --- a/hw/scsi/mptsas.c +++ b/hw/scsi/mptsas.c @@ -1431,7 +1431,7 @@ static void mptsas1068_class_init(ObjectClass *oc, void *data) pc->subsystem_vendor_id = PCI_VENDOR_ID_LSI_LOGIC; pc->subsystem_id = 0x8000; pc->class_id = PCI_CLASS_STORAGE_SCSI; - dc->props = mptsas_properties; + device_class_set_props(dc, mptsas_properties); dc->reset = mptsas_reset; dc->vmsd = &vmstate_mptsas; dc->desc = "LSI SAS 1068"; diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index ad0e7f6..1c980ca 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -1728,7 +1728,7 @@ static void scsi_device_class_init(ObjectClass *klass, void *data) k->bus_type = TYPE_SCSI_BUS; k->realize = scsi_qdev_realize; k->unrealize = scsi_qdev_unrealize; - k->props = scsi_props; + device_class_set_props(k, scsi_props); } static void scsi_dev_instance_init(Object *obj) diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index e44c61e..10d0794 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -3036,7 +3036,7 @@ static void scsi_hd_class_initfn(ObjectClass *klass, void *data) sc->alloc_req = scsi_new_request; sc->unit_attention_reported = scsi_disk_unit_attention_reported; dc->desc = "virtual SCSI disk"; - dc->props = scsi_hd_properties; + device_class_set_props(dc, scsi_hd_properties); dc->vmsd = &vmstate_scsi_disk_state; } @@ -3067,7 +3067,7 @@ static void scsi_cd_class_initfn(ObjectClass *klass, void *data) sc->alloc_req = scsi_new_request; sc->unit_attention_reported = scsi_disk_unit_attention_reported; dc->desc = "virtual SCSI CD-ROM"; - dc->props = scsi_cd_properties; + device_class_set_props(dc, scsi_cd_properties); dc->vmsd = &vmstate_scsi_disk_state; } @@ -3106,7 +3106,7 @@ static void scsi_block_class_initfn(ObjectClass *klass, void *data) sdc->update_sense = scsi_block_update_sense; sdc->need_fua_emulation = scsi_block_no_fua; dc->desc = "SCSI block device passthrough"; - dc->props = scsi_block_properties; + device_class_set_props(dc, scsi_block_properties); dc->vmsd = &vmstate_scsi_disk_state; } @@ -3146,7 +3146,7 @@ static void scsi_disk_class_initfn(ObjectClass *klass, void *data) dc->fw_name = "disk"; dc->desc = "virtual SCSI disk or CD-ROM (legacy)"; dc->reset = scsi_disk_reset; - dc->props = scsi_disk_properties; + device_class_set_props(dc, scsi_disk_properties); dc->vmsd = &vmstate_scsi_disk_state; } diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c index e7798eb..86ed0a3 100644 --- a/hw/scsi/scsi-generic.c +++ b/hw/scsi/scsi-generic.c @@ -768,7 +768,7 @@ static void scsi_generic_class_initfn(ObjectClass *klass, void *data) dc->fw_name = "disk"; dc->desc = "pass through generic scsi device (/dev/sg*)"; dc->reset = scsi_generic_reset; - dc->props = scsi_generic_properties; + device_class_set_props(dc, scsi_generic_properties); dc->vmsd = &vmstate_scsi_device; } diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c index 2120ceb..7d584e7 100644 --- a/hw/scsi/spapr_vscsi.c +++ b/hw/scsi/spapr_vscsi.c @@ -1267,7 +1267,7 @@ static void spapr_vscsi_class_init(ObjectClass *klass, void *data) k->dt_compatible = "IBM,v-scsi"; k->signal_mask = 0x00000001; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); - dc->props = spapr_vscsi_properties; + device_class_set_props(dc, spapr_vscsi_properties); k->rtce_window_size = 0x10000000; dc->vmsd = &vmstate_spapr_vscsi; } diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c index 26f710d..f052377 100644 --- a/hw/scsi/vhost-scsi.c +++ b/hw/scsi/vhost-scsi.c @@ -293,7 +293,7 @@ static void vhost_scsi_class_init(ObjectClass *klass, void *data) VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass); FWPathProviderClass *fwc = FW_PATH_PROVIDER_CLASS(klass); - dc->props = vhost_scsi_properties; + device_class_set_props(dc, vhost_scsi_properties); dc->vmsd = &vmstate_virtio_vhost_scsi; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); vdc->realize = vhost_scsi_realize; diff --git a/hw/scsi/vhost-user-scsi.c b/hw/scsi/vhost-user-scsi.c index 23f972d..a01bf63 100644 --- a/hw/scsi/vhost-user-scsi.c +++ b/hw/scsi/vhost-user-scsi.c @@ -197,7 +197,7 @@ static void vhost_user_scsi_class_init(ObjectClass *klass, void *data) VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass); FWPathProviderClass *fwc = FW_PATH_PROVIDER_CLASS(klass); - dc->props = vhost_user_scsi_properties; + device_class_set_props(dc, vhost_user_scsi_properties); dc->vmsd = &vmstate_vhost_scsi; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); vdc->realize = vhost_user_scsi_realize; diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c index d3af42e..3b61563 100644 --- a/hw/scsi/virtio-scsi.c +++ b/hw/scsi/virtio-scsi.c @@ -1006,7 +1006,7 @@ static void virtio_scsi_class_init(ObjectClass *klass, void *data) VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass); HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(klass); - dc->props = virtio_scsi_properties; + device_class_set_props(dc, virtio_scsi_properties); dc->vmsd = &vmstate_virtio_scsi; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); vdc->realize = virtio_scsi_device_realize; diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c index 452a3b6..8f1aaf9 100644 --- a/hw/scsi/vmw_pvscsi.c +++ b/hw/scsi/vmw_pvscsi.c @@ -1292,7 +1292,7 @@ static void pvscsi_class_init(ObjectClass *klass, void *data) &pvs_k->parent_dc_realize); dc->reset = pvscsi_reset; dc->vmsd = &vmstate_pvscsi; - dc->props = pvscsi_properties; + device_class_set_props(dc, pvscsi_properties); set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); hc->unplug = pvscsi_hot_unplug; hc->plug = pvscsi_hotplug; diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 49b8357..71a9af0 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -2118,7 +2118,7 @@ static void sd_class_init(ObjectClass *klass, void *data) SDCardClass *sc = SD_CARD_CLASS(klass); dc->realize = sd_realize; - dc->props = sd_properties; + device_class_set_props(dc, sd_properties); dc->vmsd = &sd_vmstate; dc->reset = sd_reset; dc->bus_type = TYPE_SD_BUS; diff --git a/hw/sd/sdhci-pci.c b/hw/sd/sdhci-pci.c index 2c8d8f5..19fa8bd 100644 --- a/hw/sd/sdhci-pci.c +++ b/hw/sd/sdhci-pci.c @@ -64,7 +64,7 @@ static void sdhci_pci_class_init(ObjectClass *klass, void *data) k->vendor_id = PCI_VENDOR_ID_REDHAT; k->device_id = PCI_DEVICE_ID_REDHAT_SDHCI; k->class_id = PCI_CLASS_SYSTEM_SDHCI; - dc->props = sdhci_pci_properties; + device_class_set_props(dc, sdhci_pci_properties); sdhci_common_class_init(klass, data); } diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 18c0c05..69dc3e6 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1499,7 +1499,7 @@ static void sdhci_sysbus_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = sdhci_sysbus_properties; + device_class_set_props(dc, sdhci_sysbus_properties); dc->realize = sdhci_sysbus_realize; dc->unrealize = sdhci_sysbus_unrealize; diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c index 2aaa5bf..df33b32 100644 --- a/hw/sparc/sun4m.c +++ b/hw/sparc/sun4m.c @@ -761,7 +761,7 @@ static void prom_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = prom_properties; + device_class_set_props(dc, prom_properties); dc->realize = prom_realize; } @@ -827,7 +827,7 @@ static void ram_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = ram_realize; - dc->props = ram_properties; + device_class_set_props(dc, ram_properties); } static const TypeInfo ram_info = { diff --git a/hw/sparc/sun4m_iommu.c b/hw/sparc/sun4m_iommu.c index ccf46a5..71f5465 100644 --- a/hw/sparc/sun4m_iommu.c +++ b/hw/sparc/sun4m_iommu.c @@ -379,7 +379,7 @@ static void iommu_class_init(ObjectClass *klass, void *data) dc->reset = iommu_reset; dc->vmsd = &vmstate_iommu; - dc->props = iommu_properties; + device_class_set_props(dc, iommu_properties); } static const TypeInfo iommu_info = { diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c index 9550827..5d710d6 100644 --- a/hw/sparc64/sun4u.c +++ b/hw/sparc64/sun4u.c @@ -389,7 +389,7 @@ static void ebus_class_init(ObjectClass *klass, void *data) k->device_id = PCI_DEVICE_ID_SUN_EBUS; k->revision = 0x01; k->class_id = PCI_CLASS_BRIDGE_OTHER; - dc->props = ebus_properties; + device_class_set_props(dc, ebus_properties); } static const TypeInfo ebus_info = { @@ -479,7 +479,7 @@ static void prom_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = prom_properties; + device_class_set_props(dc, prom_properties); dc->realize = prom_realize; } @@ -540,7 +540,7 @@ static void ram_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = ram_realize; - dc->props = ram_properties; + device_class_set_props(dc, ram_properties); } static const TypeInfo ram_info = { diff --git a/hw/ssi/aspeed_smc.c b/hw/ssi/aspeed_smc.c index 7755eca..23c8d2f 100644 --- a/hw/ssi/aspeed_smc.c +++ b/hw/ssi/aspeed_smc.c @@ -1401,7 +1401,7 @@ static void aspeed_smc_class_init(ObjectClass *klass, void *data) dc->realize = aspeed_smc_realize; dc->reset = aspeed_smc_reset; - dc->props = aspeed_smc_properties; + device_class_set_props(dc, aspeed_smc_properties); dc->vmsd = &vmstate_aspeed_smc; mc->ctrl = data; } diff --git a/hw/ssi/xilinx_spi.c b/hw/ssi/xilinx_spi.c index a1be0de..eba7ccd 100644 --- a/hw/ssi/xilinx_spi.c +++ b/hw/ssi/xilinx_spi.c @@ -372,7 +372,7 @@ static void xilinx_spi_class_init(ObjectClass *klass, void *data) dc->realize = xilinx_spi_realize; dc->reset = xlx_spi_reset; - dc->props = xilinx_spi_properties; + device_class_set_props(dc, xilinx_spi_properties); dc->vmsd = &vmstate_xilinx_spi; } diff --git a/hw/ssi/xilinx_spips.c b/hw/ssi/xilinx_spips.c index 0d6c2e1..6c9ef59 100644 --- a/hw/ssi/xilinx_spips.c +++ b/hw/ssi/xilinx_spips.c @@ -1455,7 +1455,7 @@ static void xilinx_spips_class_init(ObjectClass *klass, void *data) dc->realize = xilinx_spips_realize; dc->reset = xilinx_spips_reset; - dc->props = xilinx_spips_properties; + device_class_set_props(dc, xilinx_spips_properties); dc->vmsd = &vmstate_xilinx_spips; xsc->reg_ops = &spips_ops; @@ -1471,7 +1471,7 @@ static void xlnx_zynqmp_qspips_class_init(ObjectClass *klass, void * data) dc->realize = xlnx_zynqmp_qspips_realize; dc->reset = xlnx_zynqmp_qspips_reset; dc->vmsd = &vmstate_xlnx_zynqmp_qspips; - dc->props = xilinx_zynqmp_qspips_properties; + device_class_set_props(dc, xilinx_zynqmp_qspips_properties); xsc->reg_ops = &xlnx_zynqmp_qspips_ops; xsc->rx_fifo_size = RXFF_A_Q; xsc->tx_fifo_size = TXFF_A_Q; diff --git a/hw/timer/a9gtimer.c b/hw/timer/a9gtimer.c index 4c634c8..7233068 100644 --- a/hw/timer/a9gtimer.c +++ b/hw/timer/a9gtimer.c @@ -359,7 +359,7 @@ static void a9_gtimer_class_init(ObjectClass *klass, void *data) dc->realize = a9_gtimer_realize; dc->vmsd = &vmstate_a9_gtimer; dc->reset = a9_gtimer_reset; - dc->props = a9_gtimer_properties; + device_class_set_props(dc, a9_gtimer_properties); } static const TypeInfo a9_gtimer_info = { diff --git a/hw/timer/allwinner-a10-pit.c b/hw/timer/allwinner-a10-pit.c index aae880f..f84fc0e 100644 --- a/hw/timer/allwinner-a10-pit.c +++ b/hw/timer/allwinner-a10-pit.c @@ -284,7 +284,7 @@ static void a10_pit_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->reset = a10_pit_reset; - dc->props = a10_pit_properties; + device_class_set_props(dc, a10_pit_properties); dc->desc = "allwinner a10 timer"; dc->vmsd = &vmstate_a10_pit; } diff --git a/hw/timer/altera_timer.c b/hw/timer/altera_timer.c index 79fc381..be81b7a 100644 --- a/hw/timer/altera_timer.c +++ b/hw/timer/altera_timer.c @@ -224,7 +224,7 @@ static void altera_timer_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = altera_timer_realize; - dc->props = altera_timer_properties; + device_class_set_props(dc, altera_timer_properties); dc->reset = altera_timer_reset; } diff --git a/hw/timer/arm_mptimer.c b/hw/timer/arm_mptimer.c index 2bf11f7..cdfca30 100644 --- a/hw/timer/arm_mptimer.c +++ b/hw/timer/arm_mptimer.c @@ -312,7 +312,7 @@ static void arm_mptimer_class_init(ObjectClass *klass, void *data) dc->realize = arm_mptimer_realize; dc->vmsd = &vmstate_arm_mptimer; dc->reset = arm_mptimer_reset; - dc->props = arm_mptimer_properties; + device_class_set_props(dc, arm_mptimer_properties); } static const TypeInfo arm_mptimer_info = { diff --git a/hw/timer/arm_timer.c b/hw/timer/arm_timer.c index beaa285..9607366 100644 --- a/hw/timer/arm_timer.c +++ b/hw/timer/arm_timer.c @@ -397,7 +397,7 @@ static void sp804_class_init(ObjectClass *klass, void *data) DeviceClass *k = DEVICE_CLASS(klass); k->realize = sp804_realize; - k->props = sp804_properties; + device_class_set_props(k, sp804_properties); k->vmsd = &vmstate_sp804; } diff --git a/hw/timer/aspeed_timer.c b/hw/timer/aspeed_timer.c index c91f184..42c47d2 100644 --- a/hw/timer/aspeed_timer.c +++ b/hw/timer/aspeed_timer.c @@ -685,7 +685,7 @@ static void timer_class_init(ObjectClass *klass, void *data) dc->reset = aspeed_timer_reset; dc->desc = "ASPEED Timer"; dc->vmsd = &vmstate_aspeed_timer_state; - dc->props = aspeed_timer_properties; + device_class_set_props(dc, aspeed_timer_properties); } static const TypeInfo aspeed_timer_info = { diff --git a/hw/timer/cmsdk-apb-dualtimer.c b/hw/timer/cmsdk-apb-dualtimer.c index e28ba9c..f653424 100644 --- a/hw/timer/cmsdk-apb-dualtimer.c +++ b/hw/timer/cmsdk-apb-dualtimer.c @@ -510,7 +510,7 @@ static void cmsdk_apb_dualtimer_class_init(ObjectClass *klass, void *data) dc->realize = cmsdk_apb_dualtimer_realize; dc->vmsd = &cmsdk_apb_dualtimer_vmstate; dc->reset = cmsdk_apb_dualtimer_reset; - dc->props = cmsdk_apb_dualtimer_properties; + device_class_set_props(dc, cmsdk_apb_dualtimer_properties); } static const TypeInfo cmsdk_apb_dualtimer_info = { diff --git a/hw/timer/cmsdk-apb-timer.c b/hw/timer/cmsdk-apb-timer.c index 40728e8..f85f130 100644 --- a/hw/timer/cmsdk-apb-timer.c +++ b/hw/timer/cmsdk-apb-timer.c @@ -260,7 +260,7 @@ static void cmsdk_apb_timer_class_init(ObjectClass *klass, void *data) dc->realize = cmsdk_apb_timer_realize; dc->vmsd = &cmsdk_apb_timer_vmstate; dc->reset = cmsdk_apb_timer_reset; - dc->props = cmsdk_apb_timer_properties; + device_class_set_props(dc, cmsdk_apb_timer_properties); } static const TypeInfo cmsdk_apb_timer_info = { diff --git a/hw/timer/grlib_gptimer.c b/hw/timer/grlib_gptimer.c index 7a9371c..eff0ee3 100644 --- a/hw/timer/grlib_gptimer.c +++ b/hw/timer/grlib_gptimer.c @@ -415,7 +415,7 @@ static void grlib_gptimer_class_init(ObjectClass *klass, void *data) dc->realize = grlib_gptimer_realize; dc->reset = grlib_gptimer_reset; - dc->props = grlib_gptimer_properties; + device_class_set_props(dc, grlib_gptimer_properties); } static const TypeInfo grlib_gptimer_info = { diff --git a/hw/timer/hpet.c b/hw/timer/hpet.c index 9f17aaa..8dbcbdc 100644 --- a/hw/timer/hpet.c +++ b/hw/timer/hpet.c @@ -800,7 +800,7 @@ static void hpet_device_class_init(ObjectClass *klass, void *data) dc->realize = hpet_realize; dc->reset = hpet_reset; dc->vmsd = &vmstate_hpet; - dc->props = hpet_device_properties; + device_class_set_props(dc, hpet_device_properties); } static const TypeInfo hpet_device_info = { diff --git a/hw/timer/i8254.c b/hw/timer/i8254.c index a4be733..29f62e5 100644 --- a/hw/timer/i8254.c +++ b/hw/timer/i8254.c @@ -364,7 +364,7 @@ static void pit_class_initfn(ObjectClass *klass, void *data) k->get_channel_info = pit_get_channel_info_common; k->post_load = pit_post_load; dc->reset = pit_reset; - dc->props = pit_properties; + device_class_set_props(dc, pit_properties); } static const TypeInfo pit_info = { diff --git a/hw/timer/lm32_timer.c b/hw/timer/lm32_timer.c index 3fdecd0..f703f40 100644 --- a/hw/timer/lm32_timer.c +++ b/hw/timer/lm32_timer.c @@ -230,7 +230,7 @@ static void lm32_timer_class_init(ObjectClass *klass, void *data) dc->realize = lm32_timer_realize; dc->reset = timer_reset; dc->vmsd = &vmstate_lm32_timer; - dc->props = lm32_timer_properties; + device_class_set_props(dc, lm32_timer_properties); } static const TypeInfo lm32_timer_info = { diff --git a/hw/timer/milkymist-sysctl.c b/hw/timer/milkymist-sysctl.c index 7a62e21..94389820 100644 --- a/hw/timer/milkymist-sysctl.c +++ b/hw/timer/milkymist-sysctl.c @@ -343,7 +343,7 @@ static void milkymist_sysctl_class_init(ObjectClass *klass, void *data) dc->realize = milkymist_sysctl_realize; dc->reset = milkymist_sysctl_reset; dc->vmsd = &vmstate_milkymist_sysctl; - dc->props = milkymist_sysctl_properties; + device_class_set_props(dc, milkymist_sysctl_properties); } static const TypeInfo milkymist_sysctl_info = { diff --git a/hw/timer/mss-timer.c b/hw/timer/mss-timer.c index b1c9a80..29943fd 100644 --- a/hw/timer/mss-timer.c +++ b/hw/timer/mss-timer.c @@ -278,7 +278,7 @@ static void mss_timer_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = mss_timer_properties; + device_class_set_props(dc, mss_timer_properties); dc->vmsd = &vmstate_mss_timer; } diff --git a/hw/timer/pxa2xx_timer.c b/hw/timer/pxa2xx_timer.c index 311cd38..cd172cc 100644 --- a/hw/timer/pxa2xx_timer.c +++ b/hw/timer/pxa2xx_timer.c @@ -562,7 +562,7 @@ static void pxa25x_timer_dev_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->desc = "PXA25x timer"; - dc->props = pxa25x_timer_dev_properties; + device_class_set_props(dc, pxa25x_timer_dev_properties); } static const TypeInfo pxa25x_timer_dev_info = { @@ -584,7 +584,7 @@ static void pxa27x_timer_dev_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->desc = "PXA27x timer"; - dc->props = pxa27x_timer_dev_properties; + device_class_set_props(dc, pxa27x_timer_dev_properties); } static const TypeInfo pxa27x_timer_dev_info = { diff --git a/hw/timer/slavio_timer.c b/hw/timer/slavio_timer.c index c55e8d0..4c5d65e 100644 --- a/hw/timer/slavio_timer.c +++ b/hw/timer/slavio_timer.c @@ -427,7 +427,7 @@ static void slavio_timer_class_init(ObjectClass *klass, void *data) dc->reset = slavio_timer_reset; dc->vmsd = &vmstate_slavio_timer; - dc->props = slavio_timer_properties; + device_class_set_props(dc, slavio_timer_properties); } static const TypeInfo slavio_timer_info = { diff --git a/hw/timer/stm32f2xx_timer.c b/hw/timer/stm32f2xx_timer.c index edc557a..fb370ce 100644 --- a/hw/timer/stm32f2xx_timer.c +++ b/hw/timer/stm32f2xx_timer.c @@ -323,7 +323,7 @@ static void stm32f2xx_timer_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->reset = stm32f2xx_timer_reset; - dc->props = stm32f2xx_timer_properties; + device_class_set_props(dc, stm32f2xx_timer_properties); dc->vmsd = &vmstate_stm32f2xx_timer; } diff --git a/hw/timer/xilinx_timer.c b/hw/timer/xilinx_timer.c index 7191ea5..0190aa4 100644 --- a/hw/timer/xilinx_timer.c +++ b/hw/timer/xilinx_timer.c @@ -253,7 +253,7 @@ static void xilinx_timer_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = xilinx_timer_realize; - dc->props = xilinx_timer_properties; + device_class_set_props(dc, xilinx_timer_properties); } static const TypeInfo xilinx_timer_info = { diff --git a/hw/tpm/tpm_crb.c b/hw/tpm/tpm_crb.c index faae733..cd004e7 100644 --- a/hw/tpm/tpm_crb.c +++ b/hw/tpm/tpm_crb.c @@ -313,7 +313,7 @@ static void tpm_crb_class_init(ObjectClass *klass, void *data) TPMIfClass *tc = TPM_IF_CLASS(klass); dc->realize = tpm_crb_realize; - dc->props = tpm_crb_properties; + device_class_set_props(dc, tpm_crb_properties); dc->vmsd = &vmstate_tpm_crb; dc->user_creatable = true; tc->model = TPM_MODEL_TPM_CRB; diff --git a/hw/tpm/tpm_tis.c b/hw/tpm/tpm_tis.c index 7aaf9b9..5362df2 100644 --- a/hw/tpm/tpm_tis.c +++ b/hw/tpm/tpm_tis.c @@ -1023,7 +1023,7 @@ static void tpm_tis_class_init(ObjectClass *klass, void *data) TPMIfClass *tc = TPM_IF_CLASS(klass); dc->realize = tpm_tis_realizefn; - dc->props = tpm_tis_properties; + device_class_set_props(dc, tpm_tis_properties); dc->reset = tpm_tis_reset; dc->vmsd = &vmstate_tpm_tis; tc->model = TPM_MODEL_TPM_TIS; diff --git a/hw/usb/bus.c b/hw/usb/bus.c index a6522f5..c9a3900 100644 --- a/hw/usb/bus.c +++ b/hw/usb/bus.c @@ -768,7 +768,7 @@ static void usb_device_class_init(ObjectClass *klass, void *data) k->bus_type = TYPE_USB_BUS; k->realize = usb_qdev_realize; k->unrealize = usb_qdev_unrealize; - k->props = usb_props; + device_class_set_props(k, usb_props); } static const TypeInfo usb_device_type_info = { diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c index 291e41d..3083124 100644 --- a/hw/usb/ccid-card-emulated.c +++ b/hw/usb/ccid-card-emulated.c @@ -603,7 +603,7 @@ static void emulated_class_initfn(ObjectClass *klass, void *data) cc->apdu_from_guest = emulated_apdu_from_guest; set_bit(DEVICE_CATEGORY_INPUT, dc->categories); dc->desc = "emulated smartcard"; - dc->props = emulated_card_properties; + device_class_set_props(dc, emulated_card_properties); } static const TypeInfo emulated_card_info = { diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c index 3d40b70..bb325db 100644 --- a/hw/usb/ccid-card-passthru.c +++ b/hw/usb/ccid-card-passthru.c @@ -403,7 +403,7 @@ static void passthru_class_initfn(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_INPUT, dc->categories); dc->desc = "passthrough smartcard"; dc->vmsd = &passthru_vmstate; - dc->props = passthru_card_properties; + device_class_set_props(dc, passthru_card_properties); } static const TypeInfo passthru_card_info = { diff --git a/hw/usb/dev-audio.c b/hw/usb/dev-audio.c index ea604bb..6fa213f 100644 --- a/hw/usb/dev-audio.c +++ b/hw/usb/dev-audio.c @@ -1002,7 +1002,7 @@ static void usb_audio_class_init(ObjectClass *klass, void *data) USBDeviceClass *k = USB_DEVICE_CLASS(klass); dc->vmsd = &vmstate_usb_audio; - dc->props = usb_audio_properties; + device_class_set_props(dc, usb_audio_properties); set_bit(DEVICE_CATEGORY_SOUND, dc->categories); k->product_desc = "QEMU USB Audio Interface"; k->realize = usb_audio_realize; diff --git a/hw/usb/dev-hid.c b/hw/usb/dev-hid.c index 88492f2..67ec8b6 100644 --- a/hw/usb/dev-hid.c +++ b/hw/usb/dev-hid.c @@ -819,7 +819,7 @@ static void usb_tablet_class_initfn(ObjectClass *klass, void *data) uc->realize = usb_tablet_realize; uc->product_desc = "QEMU USB Tablet"; dc->vmsd = &vmstate_usb_ptr; - dc->props = usb_tablet_properties; + device_class_set_props(dc, usb_tablet_properties); set_bit(DEVICE_CATEGORY_INPUT, dc->categories); } @@ -842,7 +842,7 @@ static void usb_mouse_class_initfn(ObjectClass *klass, void *data) uc->realize = usb_mouse_realize; uc->product_desc = "QEMU USB Mouse"; dc->vmsd = &vmstate_usb_ptr; - dc->props = usb_mouse_properties; + device_class_set_props(dc, usb_mouse_properties); set_bit(DEVICE_CATEGORY_INPUT, dc->categories); } @@ -866,7 +866,7 @@ static void usb_keyboard_class_initfn(ObjectClass *klass, void *data) uc->realize = usb_keyboard_realize; uc->product_desc = "QEMU USB Keyboard"; dc->vmsd = &vmstate_usb_kbd; - dc->props = usb_keyboard_properties; + device_class_set_props(dc, usb_keyboard_properties); set_bit(DEVICE_CATEGORY_INPUT, dc->categories); } diff --git a/hw/usb/dev-hub.c b/hw/usb/dev-hub.c index 07ecfef..49a573b 100644 --- a/hw/usb/dev-hub.c +++ b/hw/usb/dev-hub.c @@ -686,7 +686,7 @@ static void usb_hub_class_initfn(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); dc->fw_name = "hub"; dc->vmsd = &vmstate_usb_hub; - dc->props = usb_hub_properties; + device_class_set_props(dc, usb_hub_properties); } static const TypeInfo hub_info = { diff --git a/hw/usb/dev-mtp.c b/hw/usb/dev-mtp.c index 7c07295..20717f0 100644 --- a/hw/usb/dev-mtp.c +++ b/hw/usb/dev-mtp.c @@ -2105,7 +2105,7 @@ static void usb_mtp_class_initfn(ObjectClass *klass, void *data) dc->desc = "USB Media Transfer Protocol device"; dc->fw_name = "mtp"; dc->vmsd = &vmstate_usb_mtp; - dc->props = mtp_properties; + device_class_set_props(dc, mtp_properties); } static TypeInfo mtp_info = { diff --git a/hw/usb/dev-network.c b/hw/usb/dev-network.c index b81a8ab..9a78ad9 100644 --- a/hw/usb/dev-network.c +++ b/hw/usb/dev-network.c @@ -1409,7 +1409,7 @@ static void usb_net_class_initfn(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); dc->fw_name = "network"; dc->vmsd = &vmstate_usb_net; - dc->props = net_properties; + device_class_set_props(dc, net_properties); } static const TypeInfo net_info = { diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c index 9646fe7..9846599 100644 --- a/hw/usb/dev-serial.c +++ b/hw/usb/dev-serial.c @@ -567,7 +567,7 @@ static void usb_serial_class_initfn(ObjectClass *klass, void *data) uc->product_desc = "QEMU USB Serial"; uc->usb_desc = &desc_serial; - dc->props = serial_properties; + device_class_set_props(dc, serial_properties); } static const TypeInfo serial_info = { @@ -588,7 +588,7 @@ static void usb_braille_class_initfn(ObjectClass *klass, void *data) uc->product_desc = "QEMU USB Braille"; uc->usb_desc = &desc_braille; - dc->props = braille_properties; + device_class_set_props(dc, braille_properties); } static const TypeInfo braille_info = { diff --git a/hw/usb/dev-smartcard-reader.c b/hw/usb/dev-smartcard-reader.c index 4568db2..02693a2 100644 --- a/hw/usb/dev-smartcard-reader.c +++ b/hw/usb/dev-smartcard-reader.c @@ -1456,7 +1456,7 @@ static void ccid_class_initfn(ObjectClass *klass, void *data) uc->unrealize = ccid_unrealize; dc->desc = "CCID Rev 1.1 smartcard reader"; dc->vmsd = &ccid_vmstate; - dc->props = ccid_properties; + device_class_set_props(dc, ccid_properties); set_bit(DEVICE_CATEGORY_INPUT, dc->categories); hc->unplug = qdev_simple_device_unplug_cb; } @@ -1478,7 +1478,7 @@ static void ccid_card_class_init(ObjectClass *klass, void *data) k->bus_type = TYPE_CCID_BUS; k->realize = ccid_card_realize; k->unrealize = ccid_card_unrealize; - k->props = ccid_props; + device_class_set_props(k, ccid_props); } static const TypeInfo ccid_card_type_info = { diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c index 8545193..90da008 100644 --- a/hw/usb/dev-storage.c +++ b/hw/usb/dev-storage.c @@ -702,7 +702,7 @@ static void usb_msd_class_storage_initfn(ObjectClass *klass, void *data) USBDeviceClass *uc = USB_DEVICE_CLASS(klass); uc->realize = usb_msd_storage_realize; - dc->props = msd_properties; + device_class_set_props(dc, msd_properties); } static void usb_msd_get_bootindex(Object *obj, Visitor *v, const char *name, diff --git a/hw/usb/dev-uas.c b/hw/usb/dev-uas.c index 6d6d107..9825ec3 100644 --- a/hw/usb/dev-uas.c +++ b/hw/usb/dev-uas.c @@ -952,7 +952,7 @@ static void usb_uas_class_initfn(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); dc->fw_name = "storage"; dc->vmsd = &vmstate_usb_uas; - dc->props = uas_properties; + device_class_set_props(dc, uas_properties); } static const TypeInfo uas_info = { diff --git a/hw/usb/hcd-ehci-pci.c b/hw/usb/hcd-ehci-pci.c index 5b9a8d3..fc73a05 100644 --- a/hw/usb/hcd-ehci-pci.c +++ b/hw/usb/hcd-ehci-pci.c @@ -161,7 +161,7 @@ static void ehci_class_init(ObjectClass *klass, void *data) k->class_id = PCI_CLASS_SERIAL_USB; k->config_write = usb_ehci_pci_write_config; dc->vmsd = &vmstate_ehci_pci; - dc->props = ehci_pci_properties; + device_class_set_props(dc, ehci_pci_properties); dc->reset = usb_ehci_pci_reset; } diff --git a/hw/usb/hcd-ehci-sysbus.c b/hw/usb/hcd-ehci-sysbus.c index 020211f..8d47385 100644 --- a/hw/usb/hcd-ehci-sysbus.c +++ b/hw/usb/hcd-ehci-sysbus.c @@ -82,7 +82,7 @@ static void ehci_sysbus_class_init(ObjectClass *klass, void *data) dc->realize = usb_ehci_sysbus_realize; dc->vmsd = &vmstate_ehci_sysbus; - dc->props = ehci_sysbus_properties; + device_class_set_props(dc, ehci_sysbus_properties); dc->reset = usb_ehci_sysbus_reset; set_bit(DEVICE_CATEGORY_USB, dc->categories); } diff --git a/hw/usb/hcd-ohci-pci.c b/hw/usb/hcd-ohci-pci.c index c052f10..a7fb166 100644 --- a/hw/usb/hcd-ohci-pci.c +++ b/hw/usb/hcd-ohci-pci.c @@ -139,7 +139,7 @@ static void ohci_pci_class_init(ObjectClass *klass, void *data) k->class_id = PCI_CLASS_SERIAL_USB; set_bit(DEVICE_CATEGORY_USB, dc->categories); dc->desc = "Apple USB Controller"; - dc->props = ohci_pci_properties; + device_class_set_props(dc, ohci_pci_properties); dc->hotpluggable = false; dc->vmsd = &vmstate_ohci; dc->reset = usb_ohci_reset_pci; diff --git a/hw/usb/hcd-ohci.c b/hw/usb/hcd-ohci.c index 145ee21..8a94bd0 100644 --- a/hw/usb/hcd-ohci.c +++ b/hw/usb/hcd-ohci.c @@ -2000,7 +2000,7 @@ static void ohci_sysbus_class_init(ObjectClass *klass, void *data) dc->realize = ohci_realize_pxa; set_bit(DEVICE_CATEGORY_USB, dc->categories); dc->desc = "OHCI USB Controller"; - dc->props = ohci_sysbus_properties; + device_class_set_props(dc, ohci_sysbus_properties); dc->reset = usb_ohci_reset_sysbus; } diff --git a/hw/usb/hcd-uhci.c b/hw/usb/hcd-uhci.c index 23507ad..37f7beb 100644 --- a/hw/usb/hcd-uhci.c +++ b/hw/usb/hcd-uhci.c @@ -1349,9 +1349,9 @@ static void uhci_data_class_init(ObjectClass *klass, void *data) if (!info->unplug) { /* uhci controllers in companion setups can't be hotplugged */ dc->hotpluggable = false; - dc->props = uhci_properties_companion; + device_class_set_props(dc, uhci_properties_companion); } else { - dc->props = uhci_properties_standalone; + device_class_set_props(dc, uhci_properties_standalone); } u->info = *info; } diff --git a/hw/usb/hcd-xhci-nec.c b/hw/usb/hcd-xhci-nec.c index 05fb3f5..e6a5a22 100644 --- a/hw/usb/hcd-xhci-nec.c +++ b/hw/usb/hcd-xhci-nec.c @@ -44,7 +44,7 @@ static void nec_xhci_class_init(ObjectClass *klass, void *data) PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = nec_xhci_properties; + device_class_set_props(dc, nec_xhci_properties); k->vendor_id = PCI_VENDOR_ID_NEC; k->device_id = PCI_DEVICE_ID_NEC_UPD720200; k->revision = 0x03; diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c index fb05de4..b330e36 100644 --- a/hw/usb/hcd-xhci.c +++ b/hw/usb/hcd-xhci.c @@ -3707,7 +3707,7 @@ static void xhci_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->vmsd = &vmstate_xhci; - dc->props = xhci_properties; + device_class_set_props(dc, xhci_properties); dc->reset = xhci_reset; set_bit(DEVICE_CATEGORY_USB, dc->categories); k->realize = usb_xhci_realize; diff --git a/hw/usb/host-libusb.c b/hw/usb/host-libusb.c index 00e0e36..2594700 100644 --- a/hw/usb/host-libusb.c +++ b/hw/usb/host-libusb.c @@ -1635,7 +1635,7 @@ static void usb_host_class_initfn(ObjectClass *klass, void *data) uc->alloc_streams = usb_host_alloc_streams; uc->free_streams = usb_host_free_streams; dc->vmsd = &vmstate_usb_host; - dc->props = usb_host_dev_properties; + device_class_set_props(dc, usb_host_dev_properties); set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); } diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c index efdbcc0..45d8b76 100644 --- a/hw/usb/redirect.c +++ b/hw/usb/redirect.c @@ -2584,7 +2584,7 @@ static void usbredir_class_initfn(ObjectClass *klass, void *data) uc->alloc_streams = usbredir_alloc_streams; uc->free_streams = usbredir_free_streams; dc->vmsd = &usbredir_vmstate; - dc->props = usbredir_properties; + device_class_set_props(dc, usbredir_properties); set_bit(DEVICE_CATEGORY_MISC, dc->categories); } diff --git a/hw/vfio/ap.c b/hw/vfio/ap.c index 8fbaa72..8649ac1 100644 --- a/hw/vfio/ap.c +++ b/hw/vfio/ap.c @@ -161,7 +161,7 @@ static void vfio_ap_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = vfio_ap_properties; + device_class_set_props(dc, vfio_ap_properties); dc->vmsd = &vfio_ap_vmstate; dc->desc = "VFIO-based AP device assignment"; set_bit(DEVICE_CATEGORY_MISC, dc->categories); diff --git a/hw/vfio/ccw.c b/hw/vfio/ccw.c index 3b5520a..50cc2ec 100644 --- a/hw/vfio/ccw.c +++ b/hw/vfio/ccw.c @@ -561,7 +561,7 @@ static void vfio_ccw_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); S390CCWDeviceClass *cdc = S390_CCW_DEVICE_CLASS(klass); - dc->props = vfio_ccw_properties; + device_class_set_props(dc, vfio_ccw_properties); dc->vmsd = &vfio_ccw_vmstate; dc->desc = "VFIO-based subchannel assignment"; set_bit(DEVICE_CATEGORY_MISC, dc->categories); diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index 337a173..5e75a95 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -3199,7 +3199,7 @@ static void vfio_pci_dev_class_init(ObjectClass *klass, void *data) PCIDeviceClass *pdc = PCI_DEVICE_CLASS(klass); dc->reset = vfio_pci_reset; - dc->props = vfio_pci_dev_properties; + device_class_set_props(dc, vfio_pci_dev_properties); dc->desc = "VFIO-based PCI device assignment"; set_bit(DEVICE_CATEGORY_MISC, dc->categories); pdc->realize = vfio_realize; @@ -3231,7 +3231,7 @@ static void vfio_pci_nohotplug_dev_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = vfio_pci_dev_nohotplug_properties; + device_class_set_props(dc, vfio_pci_dev_nohotplug_properties); dc->hotpluggable = false; } diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c index d7598c6..6b2952c 100644 --- a/hw/vfio/platform.c +++ b/hw/vfio/platform.c @@ -699,7 +699,7 @@ static void vfio_platform_class_init(ObjectClass *klass, void *data) SysBusDeviceClass *sbc = SYS_BUS_DEVICE_CLASS(klass); dc->realize = vfio_platform_realize; - dc->props = vfio_platform_dev_properties; + device_class_set_props(dc, vfio_platform_dev_properties); dc->vmsd = &vfio_platform_vmstate; dc->desc = "VFIO-based platform device assignment"; sbc->connect_irq_notifier = vfio_start_irqfd_injection; diff --git a/hw/virtio/vhost-scsi-pci.c b/hw/virtio/vhost-scsi-pci.c index e8dfbfc..5dce640 100644 --- a/hw/virtio/vhost-scsi-pci.c +++ b/hw/virtio/vhost-scsi-pci.c @@ -64,7 +64,7 @@ static void vhost_scsi_pci_class_init(ObjectClass *klass, void *data) PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass); k->realize = vhost_scsi_pci_realize; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); - dc->props = vhost_scsi_pci_properties; + device_class_set_props(dc, vhost_scsi_pci_properties); pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET; pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI; pcidev_k->revision = 0x00; diff --git a/hw/virtio/vhost-user-blk-pci.c b/hw/virtio/vhost-user-blk-pci.c index 1dc834a..8d3d766 100644 --- a/hw/virtio/vhost-user-blk-pci.c +++ b/hw/virtio/vhost-user-blk-pci.c @@ -69,7 +69,7 @@ static void vhost_user_blk_pci_class_init(ObjectClass *klass, void *data) PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass); set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); - dc->props = vhost_user_blk_pci_properties; + device_class_set_props(dc, vhost_user_blk_pci_properties); k->realize = vhost_user_blk_pci_realize; pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET; pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_BLOCK; diff --git a/hw/virtio/vhost-user-fs-pci.c b/hw/virtio/vhost-user-fs-pci.c index e3a649d..ae36f11 100644 --- a/hw/virtio/vhost-user-fs-pci.c +++ b/hw/virtio/vhost-user-fs-pci.c @@ -55,7 +55,7 @@ static void vhost_user_fs_pci_class_init(ObjectClass *klass, void *data) PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass); k->realize = vhost_user_fs_pci_realize; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); - dc->props = vhost_user_fs_pci_properties; + device_class_set_props(dc, vhost_user_fs_pci_properties); pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET; pcidev_k->device_id = 0; /* Set by virtio-pci based on virtio id */ pcidev_k->revision = 0x00; diff --git a/hw/virtio/vhost-user-fs.c b/hw/virtio/vhost-user-fs.c index ca0b7fc..33b1784 100644 --- a/hw/virtio/vhost-user-fs.c +++ b/hw/virtio/vhost-user-fs.c @@ -271,7 +271,7 @@ static void vuf_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass); - dc->props = vuf_properties; + device_class_set_props(dc, vuf_properties); dc->vmsd = &vuf_vmstate; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); vdc->realize = vuf_device_realize; diff --git a/hw/virtio/vhost-user-scsi-pci.c b/hw/virtio/vhost-user-scsi-pci.c index ff13af7..32febb2 100644 --- a/hw/virtio/vhost-user-scsi-pci.c +++ b/hw/virtio/vhost-user-scsi-pci.c @@ -70,7 +70,7 @@ static void vhost_user_scsi_pci_class_init(ObjectClass *klass, void *data) PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass); k->realize = vhost_user_scsi_pci_realize; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); - dc->props = vhost_user_scsi_pci_properties; + device_class_set_props(dc, vhost_user_scsi_pci_properties); pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET; pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI; pcidev_k->revision = 0x00; diff --git a/hw/virtio/vhost-vsock-pci.c b/hw/virtio/vhost-vsock-pci.c index 4ca097f..01effe3 100644 --- a/hw/virtio/vhost-vsock-pci.c +++ b/hw/virtio/vhost-vsock-pci.c @@ -55,7 +55,7 @@ static void vhost_vsock_pci_class_init(ObjectClass *klass, void *data) PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass); k->realize = vhost_vsock_pci_realize; set_bit(DEVICE_CATEGORY_MISC, dc->categories); - dc->props = vhost_vsock_pci_properties; + device_class_set_props(dc, vhost_vsock_pci_properties); pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET; pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_VSOCK; pcidev_k->revision = 0x00; diff --git a/hw/virtio/vhost-vsock.c b/hw/virtio/vhost-vsock.c index f574436..87c45d8 100644 --- a/hw/virtio/vhost-vsock.c +++ b/hw/virtio/vhost-vsock.c @@ -393,7 +393,7 @@ static void vhost_vsock_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass); - dc->props = vhost_vsock_properties; + device_class_set_props(dc, vhost_vsock_properties); dc->vmsd = &vmstate_virtio_vhost_vsock; set_bit(DEVICE_CATEGORY_MISC, dc->categories); vdc->realize = vhost_vsock_device_realize; diff --git a/hw/virtio/virtio-9p-pci.c b/hw/virtio/virtio-9p-pci.c index 22a183c..6507ce3 100644 --- a/hw/virtio/virtio-9p-pci.c +++ b/hw/virtio/virtio-9p-pci.c @@ -61,7 +61,7 @@ static void virtio_9p_pci_class_init(ObjectClass *klass, void *data) pcidev_k->revision = VIRTIO_PCI_ABI_VERSION; pcidev_k->class_id = 0x2; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); - dc->props = virtio_9p_pci_properties; + device_class_set_props(dc, virtio_9p_pci_properties); } static void virtio_9p_pci_instance_init(Object *obj) diff --git a/hw/virtio/virtio-balloon-pci.c b/hw/virtio/virtio-balloon-pci.c index 69ca057..56962ae 100644 --- a/hw/virtio/virtio-balloon-pci.c +++ b/hw/virtio/virtio-balloon-pci.c @@ -59,7 +59,7 @@ static void virtio_balloon_pci_class_init(ObjectClass *klass, void *data) PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass); k->realize = virtio_balloon_pci_realize; set_bit(DEVICE_CATEGORY_MISC, dc->categories); - dc->props = virtio_balloon_pci_properties; + device_class_set_props(dc, virtio_balloon_pci_properties); pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET; pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_BALLOON; pcidev_k->revision = VIRTIO_PCI_ABI_VERSION; diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index 57f3b9f..a4729f7 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -932,7 +932,7 @@ static void virtio_balloon_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass); - dc->props = virtio_balloon_properties; + device_class_set_props(dc, virtio_balloon_properties); dc->vmsd = &vmstate_virtio_balloon; set_bit(DEVICE_CATEGORY_MISC, dc->categories); vdc->realize = virtio_balloon_device_realize; diff --git a/hw/virtio/virtio-blk-pci.c b/hw/virtio/virtio-blk-pci.c index d9b69a5..efb2c22 100644 --- a/hw/virtio/virtio-blk-pci.c +++ b/hw/virtio/virtio-blk-pci.c @@ -66,7 +66,7 @@ static void virtio_blk_pci_class_init(ObjectClass *klass, void *data) PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass); set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); - dc->props = virtio_blk_pci_properties; + device_class_set_props(dc, virtio_blk_pci_properties); k->realize = virtio_blk_pci_realize; pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET; pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_BLOCK; diff --git a/hw/virtio/virtio-crypto-pci.c b/hw/virtio/virtio-crypto-pci.c index d853dc4..0bebe01 100644 --- a/hw/virtio/virtio-crypto-pci.c +++ b/hw/virtio/virtio-crypto-pci.c @@ -69,7 +69,7 @@ static void virtio_crypto_pci_class_init(ObjectClass *klass, void *data) k->realize = virtio_crypto_pci_realize; set_bit(DEVICE_CATEGORY_MISC, dc->categories); - dc->props = virtio_crypto_pci_properties; + device_class_set_props(dc, virtio_crypto_pci_properties); pcidev_k->class_id = PCI_CLASS_OTHERS; } diff --git a/hw/virtio/virtio-crypto.c b/hw/virtio/virtio-crypto.c index 6d42f95..7351ab0 100644 --- a/hw/virtio/virtio-crypto.c +++ b/hw/virtio/virtio-crypto.c @@ -955,7 +955,7 @@ static void virtio_crypto_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass); - dc->props = virtio_crypto_properties; + device_class_set_props(dc, virtio_crypto_properties); dc->vmsd = &vmstate_virtio_crypto; set_bit(DEVICE_CATEGORY_MISC, dc->categories); vdc->realize = virtio_crypto_device_realize; diff --git a/hw/virtio/virtio-input-pci.c b/hw/virtio/virtio-input-pci.c index 80b1172..5a96540 100644 --- a/hw/virtio/virtio-input-pci.c +++ b/hw/virtio/virtio-input-pci.c @@ -60,7 +60,7 @@ static void virtio_input_pci_class_init(ObjectClass *klass, void *data) VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass); PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass); - dc->props = virtio_input_pci_properties; + device_class_set_props(dc, virtio_input_pci_properties); k->realize = virtio_input_pci_realize; set_bit(DEVICE_CATEGORY_INPUT, dc->categories); diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c index 872f2cd..f12d159 100644 --- a/hw/virtio/virtio-mmio.c +++ b/hw/virtio/virtio-mmio.c @@ -712,7 +712,7 @@ static void virtio_mmio_class_init(ObjectClass *klass, void *data) dc->realize = virtio_mmio_realizefn; dc->reset = virtio_mmio_reset; set_bit(DEVICE_CATEGORY_MISC, dc->categories); - dc->props = virtio_mmio_properties; + device_class_set_props(dc, virtio_mmio_properties); } static const TypeInfo virtio_mmio_info = { diff --git a/hw/virtio/virtio-net-pci.c b/hw/virtio/virtio-net-pci.c index f670aed..5ca71d4 100644 --- a/hw/virtio/virtio-net-pci.c +++ b/hw/virtio/virtio-net-pci.c @@ -68,7 +68,7 @@ static void virtio_net_pci_class_init(ObjectClass *klass, void *data) k->revision = VIRTIO_PCI_ABI_VERSION; k->class_id = PCI_CLASS_NETWORK_ETHERNET; set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); - dc->props = virtio_net_properties; + device_class_set_props(dc, virtio_net_properties); vpciklass->realize = virtio_net_pci_realize; } diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c index f723b9f..4cb7843 100644 --- a/hw/virtio/virtio-pci.c +++ b/hw/virtio/virtio-pci.c @@ -1886,7 +1886,7 @@ static void virtio_pci_class_init(ObjectClass *klass, void *data) PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); VirtioPCIClass *vpciklass = VIRTIO_PCI_CLASS(klass); - dc->props = virtio_pci_properties; + device_class_set_props(dc, virtio_pci_properties); k->realize = virtio_pci_realize; k->exit = virtio_pci_exit; k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET; @@ -1925,7 +1925,7 @@ static void virtio_pci_generic_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = virtio_pci_generic_properties; + device_class_set_props(dc, virtio_pci_generic_properties); } static void virtio_pci_transitional_instance_init(Object *obj) diff --git a/hw/virtio/virtio-pmem.c b/hw/virtio/virtio-pmem.c index c0c9395..97287e9 100644 --- a/hw/virtio/virtio-pmem.c +++ b/hw/virtio/virtio-pmem.c @@ -165,7 +165,7 @@ static void virtio_pmem_class_init(ObjectClass *klass, void *data) VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass); VirtIOPMEMClass *vpc = VIRTIO_PMEM_CLASS(klass); - dc->props = virtio_pmem_properties; + device_class_set_props(dc, virtio_pmem_properties); vdc->realize = virtio_pmem_realize; vdc->unrealize = virtio_pmem_unrealize; diff --git a/hw/virtio/virtio-rng.c b/hw/virtio/virtio-rng.c index b498a20..1e363ad 100644 --- a/hw/virtio/virtio-rng.c +++ b/hw/virtio/virtio-rng.c @@ -269,7 +269,7 @@ static void virtio_rng_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass); - dc->props = virtio_rng_properties; + device_class_set_props(dc, virtio_rng_properties); dc->vmsd = &vmstate_virtio_rng; set_bit(DEVICE_CATEGORY_MISC, dc->categories); vdc->realize = virtio_rng_device_realize; diff --git a/hw/virtio/virtio-scsi-pci.c b/hw/virtio/virtio-scsi-pci.c index 3c55dc1..e82e7e5 100644 --- a/hw/virtio/virtio-scsi-pci.c +++ b/hw/virtio/virtio-scsi-pci.c @@ -76,7 +76,7 @@ static void virtio_scsi_pci_class_init(ObjectClass *klass, void *data) k->realize = virtio_scsi_pci_realize; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); - dc->props = virtio_scsi_pci_properties; + device_class_set_props(dc, virtio_scsi_pci_properties); pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET; pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI; pcidev_k->revision = 0x00; diff --git a/hw/virtio/virtio-serial-pci.c b/hw/virtio/virtio-serial-pci.c index 953abbd..22ab4d8 100644 --- a/hw/virtio/virtio-serial-pci.c +++ b/hw/virtio/virtio-serial-pci.c @@ -84,7 +84,7 @@ static void virtio_serial_pci_class_init(ObjectClass *klass, void *data) PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass); k->realize = virtio_serial_pci_realize; set_bit(DEVICE_CATEGORY_INPUT, dc->categories); - dc->props = virtio_serial_pci_properties; + device_class_set_props(dc, virtio_serial_pci_properties); pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET; pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_CONSOLE; pcidev_k->revision = VIRTIO_PCI_ABI_VERSION; diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 7b861e0..2c5410e 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -3713,7 +3713,7 @@ static void virtio_device_class_init(ObjectClass *klass, void *data) dc->realize = virtio_device_realize; dc->unrealize = virtio_device_unrealize; dc->bus_type = TYPE_VIRTIO_BUS; - dc->props = virtio_properties; + device_class_set_props(dc, virtio_properties); vdc->start_ioeventfd = virtio_device_start_ioeventfd_impl; vdc->stop_ioeventfd = virtio_device_stop_ioeventfd_impl; diff --git a/hw/watchdog/cmsdk-apb-watchdog.c b/hw/watchdog/cmsdk-apb-watchdog.c index e6f3b93..1541365 100644 --- a/hw/watchdog/cmsdk-apb-watchdog.c +++ b/hw/watchdog/cmsdk-apb-watchdog.c @@ -371,7 +371,7 @@ static void cmsdk_apb_watchdog_class_init(ObjectClass *klass, void *data) dc->realize = cmsdk_apb_watchdog_realize; dc->vmsd = &cmsdk_apb_watchdog_vmstate; dc->reset = cmsdk_apb_watchdog_reset; - dc->props = cmsdk_apb_watchdog_properties; + device_class_set_props(dc, cmsdk_apb_watchdog_properties); } static const TypeInfo cmsdk_apb_watchdog_info = { diff --git a/hw/watchdog/wdt_aspeed.c b/hw/watchdog/wdt_aspeed.c index f50dab9..6352ba1 100644 --- a/hw/watchdog/wdt_aspeed.c +++ b/hw/watchdog/wdt_aspeed.c @@ -271,7 +271,7 @@ static void aspeed_wdt_class_init(ObjectClass *klass, void *data) dc->reset = aspeed_wdt_reset; set_bit(DEVICE_CATEGORY_MISC, dc->categories); dc->vmsd = &vmstate_aspeed_wdt; - dc->props = aspeed_wdt_properties; + device_class_set_props(dc, aspeed_wdt_properties); } static const TypeInfo aspeed_wdt_info = { diff --git a/hw/xen/xen-bus.c b/hw/xen/xen-bus.c index c2ad22a..919e661 100644 --- a/hw/xen/xen-bus.c +++ b/hw/xen/xen-bus.c @@ -1332,7 +1332,7 @@ static void xen_device_class_init(ObjectClass *class, void *data) dev_class->realize = xen_device_realize; dev_class->unrealize = xen_device_unrealize; - dev_class->props = xen_device_props; + device_class_set_props(dev_class, xen_device_props); dev_class->bus_type = TYPE_XEN_BUS; } diff --git a/hw/xen/xen-legacy-backend.c b/hw/xen/xen-legacy-backend.c index 4412d7aa..4a373b2 100644 --- a/hw/xen/xen-legacy-backend.c +++ b/hw/xen/xen-legacy-backend.c @@ -786,7 +786,7 @@ static void xendev_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = xendev_properties; + device_class_set_props(dc, xendev_properties); set_bit(DEVICE_CATEGORY_MISC, dc->categories); /* xen-backend devices can be plugged/unplugged dynamically */ dc->user_creatable = true; @@ -824,7 +824,7 @@ static void xen_sysdev_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - dc->props = xen_sysdev_properties; + device_class_set_props(dc, xen_sysdev_properties); dc->bus_type = TYPE_XENSYSBUS; } diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c index 9e767d4..b91082c 100644 --- a/hw/xen/xen_pt.c +++ b/hw/xen/xen_pt.c @@ -964,7 +964,7 @@ static void xen_pci_passthrough_class_init(ObjectClass *klass, void *data) k->config_write = xen_pt_pci_write_config; set_bit(DEVICE_CATEGORY_MISC, dc->categories); dc->desc = "Assign an host PCI device with Xen"; - dc->props = xen_pci_passthrough_properties; + device_class_set_props(dc, xen_pci_passthrough_properties); }; static void xen_pci_passthrough_finalize(Object *obj) diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 6b0e7b2..4065162 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -433,6 +433,8 @@ void qdev_machine_init(void); */ void device_reset(DeviceState *dev); +void device_class_set_props(DeviceClass *dc, Property *props); + void device_class_set_parent_reset(DeviceClass *dc, DeviceReset dev_reset, DeviceReset *parent_reset); diff --git a/migration/migration.c b/migration/migration.c index 990bff0..efd5350 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -3514,7 +3514,7 @@ static void migration_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->user_creatable = false; - dc->props = migration_properties; + device_class_set_props(dc, migration_properties); } static void migration_instance_finalize(Object *obj) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index d161da8..17cefaa 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -2693,8 +2693,8 @@ static void arm_cpu_class_init(ObjectClass *oc, void *data) device_class_set_parent_realize(dc, arm_cpu_realizefn, &acc->parent_realize); - dc->props = arm_cpu_properties; + device_class_set_props(dc, arm_cpu_properties); cpu_class_set_parent_reset(cc, arm_cpu_reset, &acc->parent_reset); cc->class_by_name = arm_cpu_class_by_name; diff --git a/target/i386/cpu.c b/target/i386/cpu.c index ffe5de0..5fa6acc 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -4144,7 +4144,7 @@ static void max_x86_cpu_class_init(ObjectClass *oc, void *data) xcc->model_description = "Enables all features supported by the accelerator in the current host"; - dc->props = max_x86_cpu_properties; + device_class_set_props(dc, max_x86_cpu_properties); } static void max_x86_cpu_initfn(Object *obj) @@ -7161,7 +7161,7 @@ static void x86_cpu_common_class_init(ObjectClass *oc, void *data) &xcc->parent_realize); device_class_set_parent_unrealize(dc, x86_cpu_unrealizefn, &xcc->parent_unrealize); - dc->props = x86_cpu_properties; + device_class_set_props(dc, x86_cpu_properties); cpu_class_set_parent_reset(cc, x86_cpu_reset, &xcc->parent_reset); cc->reset_dump_flags = CPU_DUMP_FPU | CPU_DUMP_CCOP; diff --git a/target/microblaze/cpu.c b/target/microblaze/cpu.c index 71d88f6..8c90110 100644 --- a/target/microblaze/cpu.c +++ b/target/microblaze/cpu.c @@ -308,7 +308,7 @@ static void mb_cpu_class_init(ObjectClass *oc, void *data) cc->get_phys_page_debug = mb_cpu_get_phys_page_debug; #endif dc->vmsd = &vmstate_mb_cpu; - dc->props = mb_properties; + device_class_set_props(dc, mb_properties); cc->gdb_num_core_regs = 32 + 5; cc->disas_set_info = mb_disas_set_info; diff --git a/target/nios2/cpu.c b/target/nios2/cpu.c index bbdbc0c..1c0c855 100644 --- a/target/nios2/cpu.c +++ b/target/nios2/cpu.c @@ -187,7 +187,7 @@ static void nios2_cpu_class_init(ObjectClass *oc, void *data) device_class_set_parent_realize(dc, nios2_cpu_realizefn, &ncc->parent_realize); - dc->props = nios2_properties; + device_class_set_props(dc, nios2_properties); cpu_class_set_parent_reset(cc, nios2_cpu_reset, &ncc->parent_reset); cc->class_by_name = nios2_cpu_class_by_name; diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c index 5ffd07c..2d3efad 100644 --- a/target/ppc/translate_init.inc.c +++ b/target/ppc/translate_init.inc.c @@ -8599,7 +8599,7 @@ POWERPC_FAMILY(POWER7)(ObjectClass *oc, void *data) dc->fw_name = "PowerPC,POWER7"; dc->desc = "POWER7"; - dc->props = powerpc_servercpu_properties; + device_class_set_props(dc, powerpc_servercpu_properties); pcc->pvr_match = ppc_pvr_match_power7; pcc->pcr_mask = PCR_VEC_DIS | PCR_VSX_DIS | PCR_COMPAT_2_05; pcc->pcr_supported = PCR_COMPAT_2_06 | PCR_COMPAT_2_05; @@ -8764,7 +8764,7 @@ POWERPC_FAMILY(POWER8)(ObjectClass *oc, void *data) dc->fw_name = "PowerPC,POWER8"; dc->desc = "POWER8"; - dc->props = powerpc_servercpu_properties; + device_class_set_props(dc, powerpc_servercpu_properties); pcc->pvr_match = ppc_pvr_match_power8; pcc->pcr_mask = PCR_TM_DIS | PCR_COMPAT_2_06 | PCR_COMPAT_2_05; pcc->pcr_supported = PCR_COMPAT_2_07 | PCR_COMPAT_2_06 | PCR_COMPAT_2_05; @@ -8976,7 +8976,7 @@ POWERPC_FAMILY(POWER9)(ObjectClass *oc, void *data) dc->fw_name = "PowerPC,POWER9"; dc->desc = "POWER9"; - dc->props = powerpc_servercpu_properties; + device_class_set_props(dc, powerpc_servercpu_properties); pcc->pvr_match = ppc_pvr_match_power9; pcc->pcr_mask = PCR_COMPAT_2_05 | PCR_COMPAT_2_06 | PCR_COMPAT_2_07; pcc->pcr_supported = PCR_COMPAT_3_00 | PCR_COMPAT_2_07 | PCR_COMPAT_2_06 | @@ -9186,7 +9186,7 @@ POWERPC_FAMILY(POWER10)(ObjectClass *oc, void *data) dc->fw_name = "PowerPC,POWER10"; dc->desc = "POWER10"; - dc->props = powerpc_servercpu_properties; + device_class_set_props(dc, powerpc_servercpu_properties); pcc->pvr_match = ppc_pvr_match_power10; pcc->pcr_mask = PCR_COMPAT_2_05 | PCR_COMPAT_2_06 | PCR_COMPAT_2_07 | PCR_COMPAT_3_00; @@ -10871,7 +10871,7 @@ static void ppc_cpu_class_init(ObjectClass *oc, void *data) &pcc->parent_unrealize); pcc->pvr_match = ppc_pvr_match_default; pcc->interrupts_big_endian = ppc_cpu_interrupts_big_endian_always; - dc->props = ppc_cpu_properties; + device_class_set_props(dc, ppc_cpu_properties); cpu_class_set_parent_reset(cc, ppc_cpu_reset, &pcc->parent_reset); diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index d6f1872..8c86ebc 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -492,7 +492,7 @@ static void riscv_cpu_class_init(ObjectClass *c, void *data) #endif /* For now, mark unmigratable: */ cc->vmsd = &vmstate_riscv_cpu; - dc->props = riscv_cpu_properties; + device_class_set_props(dc, riscv_cpu_properties); } char *riscv_isa_string(RISCVCPU *cpu) diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c index ca487f5..cf84d30 100644 --- a/target/s390x/cpu.c +++ b/target/s390x/cpu.c @@ -453,7 +453,7 @@ static void s390_cpu_class_init(ObjectClass *oc, void *data) device_class_set_parent_realize(dc, s390_cpu_realizefn, &scc->parent_realize); - dc->props = s390x_cpu_properties; + device_class_set_props(dc, s390x_cpu_properties); dc->user_creatable = true; cpu_class_set_parent_reset(cc, s390_cpu_reset_full, &scc->parent_reset); diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c index 9c306e5..eeaecbd 100644 --- a/target/sparc/cpu.c +++ b/target/sparc/cpu.c @@ -857,7 +857,7 @@ static void sparc_cpu_class_init(ObjectClass *oc, void *data) device_class_set_parent_realize(dc, sparc_cpu_realizefn, &scc->parent_realize); - dc->props = sparc_cpu_properties; + device_class_set_props(dc, sparc_cpu_properties); cpu_class_set_parent_reset(cc, sparc_cpu_reset, &scc->parent_reset); diff --git a/tests/test-qdev-global-props.c b/tests/test-qdev-global-props.c index 4ed3d06..270c690 100644 --- a/tests/test-qdev-global-props.c +++ b/tests/test-qdev-global-props.c @@ -55,7 +55,7 @@ static void static_prop_class_init(ObjectClass *oc, void *data) DeviceClass *dc = DEVICE_CLASS(oc); dc->realize = NULL; - dc->props = static_props; + device_class_set_props(dc, static_props); } static const TypeInfo static_prop_type = { From patchwork Thu Jan 23 13:50:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348599 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A954D17EA for ; Thu, 23 Jan 2020 16:11:13 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7FA3520718 for ; Thu, 23 Jan 2020 16:11:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Km2C4DTI" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7FA3520718 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60101 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuf4a-0005f6-7I for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:11:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53064) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuT-0001VC-AQ for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucuR-0001Ji-VN for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:37 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:29194 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 1iucuR-0001JW-SE for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:35 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787555; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GX+b1ImPAaBl326v1I8s12MpD2lknVA1E1FuR0YYiCs=; b=Km2C4DTI9YZbMaMlk6xRkrejj7ZfpFqHXLEcHnQMKXNYiOFYQLeXl8bzV7QJ1Dc3/asFEQ bpAiU+3toChBminhUrwYDCD4a9MnywzGyJtznrhX4D7PPXbyA4rOuUPWKhHprtGpsxZ0Z7 RfvR2IiUy4j7TS21rnocbEgmDROHeqc= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-299-WqbPiTGkNJumLjPI3BN1og-1; Thu, 23 Jan 2020 08:52:33 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 89FD1939AD for ; Thu, 23 Jan 2020 13:52:32 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id C34A01CB for ; Thu, 23 Jan 2020 13:52:31 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 49/59] qdev: rename DeviceClass.props Date: Thu, 23 Jan 2020 14:50:39 +0100 Message-Id: <1579787449-27599-50-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: WqbPiTGkNJumLjPI3BN1og-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Ensure that conflicts in the future will cause a syntax error. Signed-off-by: Paolo Bonzini --- hw/core/qdev-properties.c | 2 +- hw/core/qdev.c | 8 ++++---- include/hw/qdev-core.h | 7 ++++++- qdev-monitor.c | 2 +- qom/qom-qmp-cmds.c | 2 +- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 6ca7697..43a9153 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -1071,7 +1071,7 @@ static Property *qdev_prop_find(DeviceState *dev, const char *name) /* device properties */ class = object_get_class(OBJECT(dev)); do { - prop = qdev_prop_walk(DEVICE_CLASS(class)->props, name); + prop = qdev_prop_walk(DEVICE_CLASS(class)->props_, name); if (prop) { return prop; } diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 8047ac9..100e266 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -751,7 +751,7 @@ void qdev_alias_all_properties(DeviceState *target, Object *source) do { DeviceClass *dc = DEVICE_CLASS(class); - for (prop = dc->props; prop && prop->name; prop++) { + for (prop = dc->props_; prop && prop->name; prop++) { object_property_add_alias(source, prop->name, OBJECT(target), prop->name, &error_abort); @@ -954,7 +954,7 @@ static void device_initfn(Object *obj) class = object_get_class(OBJECT(dev)); do { - for (prop = DEVICE_CLASS(class)->props; prop && prop->name; prop++) { + for (prop = DEVICE_CLASS(class)->props_; prop && prop->name; prop++) { qdev_property_add_legacy(dev, prop, &error_abort); qdev_property_add_static(dev, prop); } @@ -1013,7 +1013,7 @@ static void device_class_base_init(ObjectClass *class, void *data) /* We explicitly look up properties in the superclasses, * so do not propagate them to the subclasses. */ - klass->props = NULL; + klass->props_ = NULL; } static void device_unparent(Object *obj) @@ -1063,7 +1063,7 @@ static void device_class_init(ObjectClass *class, void *data) void device_class_set_props(DeviceClass *dc, Property *props) { - dc->props = props; + dc->props_ = props; } void device_class_set_parent_reset(DeviceClass *dc, diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 4065162..506ad35 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -100,7 +100,12 @@ typedef struct DeviceClass { DECLARE_BITMAP(categories, DEVICE_CATEGORY_MAX); const char *fw_name; const char *desc; - Property *props; + + /* + * The underscore at the end ensures a compile-time error if someone + * assigns to dc->props instead of using device_class_set_props. + */ + Property *props_; /* * Can this device be instantiated with -device / device_add? diff --git a/qdev-monitor.c b/qdev-monitor.c index 3465a1e..c929262 100644 --- a/qdev-monitor.c +++ b/qdev-monitor.c @@ -748,7 +748,7 @@ static void qdev_print(Monitor *mon, DeviceState *dev, int indent) } class = object_get_class(OBJECT(dev)); do { - qdev_print_props(mon, dev, DEVICE_CLASS(class)->props, indent); + qdev_print_props(mon, dev, DEVICE_CLASS(class)->props_, indent); class = object_class_get_parent(class); } while (class != object_class_by_name(TYPE_DEVICE)); bus_print_dev(dev->parent_bus, mon, dev, indent); diff --git a/qom/qom-qmp-cmds.c b/qom/qom-qmp-cmds.c index f4494f9..ccd3aaa 100644 --- a/qom/qom-qmp-cmds.c +++ b/qom/qom-qmp-cmds.c @@ -137,7 +137,7 @@ static ObjectPropertyInfo *make_device_property_info(ObjectClass *klass, Property *prop; do { - for (prop = DEVICE_CLASS(klass)->props; prop && prop->name; prop++) { + for (prop = DEVICE_CLASS(klass)->props_; prop && prop->name; prop++) { if (strcmp(name, prop->name) != 0) { continue; } From patchwork Thu Jan 23 13:50:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348825 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2C4CD921 for ; Thu, 23 Jan 2020 17:29:07 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 01F6821734 for ; Thu, 23 Jan 2020 17:29:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="KHzOgtkg" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 01F6821734 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:33444 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iugHx-0003cq-MO for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 12:29:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53082) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuW-0001aH-JA for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucuV-0001LT-DS for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:40 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:26909 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 1iucuV-0001LL-9c for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787559; 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=+ogljl5KfhNVv2vyCzFUPBamFIxFTcJlA1HisO0RvD8=; b=KHzOgtkgDX6LgAKuWDBq1VgWf8/qPvkto+yGFV4WmmgBTqBKbyaCjyPh4PWMgAaRHxYgtl vmqlEbgQDA+69tFP6+T7/H7T5wTPiWMB4R5OlWGZkJ7WoGT3cHdjRmMYMHdC1X5LoTJkBx ae3rHojMgzuZgb3kdNfZ1sCxCjWjKcM= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-73-jZvSAUMPNv-QjOBaqRRwHQ-1; Thu, 23 Jan 2020 08:52:37 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 51F5A100EC87 for ; Thu, 23 Jan 2020 13:52:36 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 07BD71CB; Thu, 23 Jan 2020 13:52:32 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 50/59] qdev: move instance properties to class properties Date: Thu, 23 Jan 2020 14:50:40 +0100 Message-Id: <1579787449-27599-51-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: jZvSAUMPNv-QjOBaqRRwHQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-21-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- hw/core/qdev.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 100e266..6e4dca1 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -944,14 +944,6 @@ static void device_initfn(Object *obj) dev->realized = false; dev->allow_unplug_during_migration = false; - object_property_add_bool(obj, "realized", - device_get_realized, device_set_realized, NULL); - object_property_add_bool(obj, "hotpluggable", - device_get_hotpluggable, NULL, NULL); - object_property_add_bool(obj, "hotplugged", - device_get_hotplugged, NULL, - &error_abort); - class = object_get_class(OBJECT(dev)); do { for (prop = DEVICE_CLASS(class)->props_; prop && prop->name; prop++) { @@ -961,9 +953,6 @@ static void device_initfn(Object *obj) class = object_class_get_parent(class); } while (class != object_class_by_name(TYPE_DEVICE)); - object_property_add_link(OBJECT(dev), "parent_bus", TYPE_BUS, - (Object **)&dev->parent_bus, NULL, 0, - &error_abort); QLIST_INIT(&dev->gpios); } @@ -1059,6 +1048,19 @@ static void device_class_init(ObjectClass *class, void *data) dc->hotpluggable = true; dc->user_creatable = true; vc->get_id = device_vmstate_if_get_id; + + object_class_property_add_bool(class, "realized", + device_get_realized, device_set_realized, + &error_abort); + object_class_property_add_bool(class, "hotpluggable", + device_get_hotpluggable, NULL, + &error_abort); + object_class_property_add_bool(class, "hotplugged", + device_get_hotplugged, NULL, + &error_abort); + object_class_property_add_link(class, "parent_bus", TYPE_BUS, + offsetof(DeviceState, parent_bus), NULL, 0, + &error_abort); } void device_class_set_props(DeviceClass *dc, Property *props) From patchwork Thu Jan 23 13:50:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348679 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BFD7C92A for ; Thu, 23 Jan 2020 16:31:26 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8382C22522 for ; Thu, 23 Jan 2020 16:31:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="LIQ7v/of" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8382C22522 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60466 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufO8-0001OB-C9 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:31:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53101) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuZ-0001eQ-5K for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucuX-0001Me-5C for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:42 -0500 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:52297 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 1iucuX-0001MQ-0M for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787560; 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=btLQyL+yd283t5WvK+tdG0NDcYL50a5N6l4RQUA+SwE=; b=LIQ7v/of/Fz861hSWtnig+qdIboHUtPJdZXPuMXqbMrCMFrDmAWEXeM/Oj4Lt9WZpeihK6 UpEGJ6eKCx4Ea8noHqE3CqAsePJg5D45ulB4xJh4JIF3Ar6BENInCTec7kH2cE0o7ofHt5 T6Izj9i3NR8H2zuCb5qBMCwr/JCs1Es= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-84-poqPct0bNWGBIqrkoYTt-g-1; Thu, 23 Jan 2020 08:52:38 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C6634100EC8E for ; Thu, 23 Jan 2020 13:52:37 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id C44C78575C; Thu, 23 Jan 2020 13:52:36 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 51/59] qdev: register properties as class properties Date: Thu, 23 Jan 2020 14:50:41 +0100 Message-Id: <1579787449-27599-52-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: poqPct0bNWGBIqrkoYTt-g-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Use class properties facilities to add properties to the class during device_class_set_props(). qdev_property_add_static() must be adapted as PropertyInfo now operates with classes (and not instances), so we must set_default_value() on the ObjectProperty, before calling its init() method on the object instance. Also, PropertyInfo.create() is now exclusively used for class properties. Fortunately, qdev_property_add_static() is only used in target/arm/cpu.c so far, which doesn't use "link" properties (that require create()). Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-22-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- hw/core/qdev-properties.c | 38 ++++++++++------------ hw/core/qdev.c | 83 ++++++++++++++++++++++++++--------------------- include/hw/qdev-core.h | 4 +-- 3 files changed, 65 insertions(+), 60 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 43a9153..7f93bfe 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -73,12 +73,10 @@ 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); } -static void set_default_value_enum(Object *obj, const Property *prop) +static void set_default_value_enum(ObjectProperty *op, const Property *prop) { - object_property_set_str(obj, - qapi_enum_lookup(prop->info->enum_table, - prop->defval.i), - prop->name, &error_abort); + object_property_set_default_str(op, + qapi_enum_lookup(prop->info->enum_table, prop->defval.i)); } /* Bit */ @@ -132,9 +130,9 @@ static void prop_set_bit(Object *obj, Visitor *v, const char *name, bit_prop_set(dev, prop, value); } -static void set_default_value_bool(Object *obj, const Property *prop) +static void set_default_value_bool(ObjectProperty *op, const Property *prop) { - object_property_set_bool(obj, prop->defval.u, prop->name, &error_abort); + object_property_set_default_bool(op, prop->defval.u); } const PropertyInfo qdev_prop_bit = { @@ -265,14 +263,14 @@ static void set_uint8(Object *obj, Visitor *v, const char *name, void *opaque, visit_type_uint8(v, name, ptr, errp); } -static void set_default_value_int(Object *obj, const Property *prop) +static void set_default_value_int(ObjectProperty *op, const Property *prop) { - object_property_set_int(obj, prop->defval.i, prop->name, &error_abort); + object_property_set_default_int(op, prop->defval.i); } -static void set_default_value_uint(Object *obj, const Property *prop) +static void set_default_value_uint(ObjectProperty *op, const Property *prop) { - object_property_set_uint(obj, prop->defval.u, prop->name, &error_abort); + object_property_set_default_uint(op, prop->defval.u); } const PropertyInfo qdev_prop_uint8 = { @@ -925,9 +923,9 @@ static void set_uuid(Object *obj, Visitor *v, const char *name, void *opaque, g_free(str); } -static void set_default_uuid_auto(Object *obj, const Property *prop) +static void set_default_uuid_auto(ObjectProperty *op, const Property *prop) { - object_property_set_str(obj, UUID_VALUE_AUTO, prop->name, &error_abort); + object_property_set_default_str(op, UUID_VALUE_AUTO); } const PropertyInfo qdev_prop_uuid = { @@ -1243,15 +1241,13 @@ const PropertyInfo qdev_prop_size = { /* --- object link property --- */ -static void create_link_property(Object *obj, Property *prop, Error **errp) +static void create_link_property(ObjectClass *oc, Property *prop, Error **errp) { - Object **child = qdev_get_prop_ptr(DEVICE(obj), prop); - - object_property_add_link(obj, prop->name, prop->link_type, - child, - qdev_prop_allow_set_link_before_realize, - OBJ_PROP_LINK_STRONG, - errp); + object_class_property_add_link(oc, prop->name, prop->link_type, + prop->offset, + qdev_prop_allow_set_link_before_realize, + OBJ_PROP_LINK_STRONG, + errp); } const PropertyInfo qdev_prop_link = { diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 6e4dca1..05c31df 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -678,13 +678,11 @@ static void qdev_get_legacy_property(Object *obj, Visitor *v, } /** - * qdev_property_add_legacy: + * qdev_class_add_legacy_property: * @dev: Device to add the property to. * @prop: The qdev property definition. - * @errp: location to store error information. * * Add a legacy QOM property to @dev for qdev property @prop. - * On error, store error in @errp. * * Legacy properties are string versions of QOM properties. The format of * the string depends on the property type. Legacy properties are only @@ -693,52 +691,68 @@ static void qdev_get_legacy_property(Object *obj, Visitor *v, * Do not use this in new code! QOM Properties added through this interface * will be given names in the "legacy" namespace. */ -static void qdev_property_add_legacy(DeviceState *dev, Property *prop, - Error **errp) +static void qdev_class_add_legacy_property(DeviceClass *dc, Property *prop) { - gchar *name; + g_autofree char *name = NULL; /* Register pointer properties as legacy properties */ if (!prop->info->print && prop->info->get) { return; } - if (prop->info->create) { - return; - } - name = g_strdup_printf("legacy-%s", prop->name); - object_property_add(OBJECT(dev), name, "str", - prop->info->print ? qdev_get_legacy_property : prop->info->get, - NULL, - NULL, - prop, errp); - - g_free(name); + object_class_property_add(OBJECT_CLASS(dc), name, "str", + prop->info->print ? qdev_get_legacy_property : prop->info->get, + NULL, NULL, prop, &error_abort); } void qdev_property_add_static(DeviceState *dev, Property *prop) { Object *obj = OBJECT(dev); + ObjectProperty *op; - if (prop->info->create) { - prop->info->create(obj, prop, &error_abort); - } else { - object_property_add(obj, prop->name, prop->info->name, - prop->info->get, prop->info->set, - prop->info->release, - prop, &error_abort); - } + assert(!prop->info->create); + + op = object_property_add(obj, prop->name, prop->info->name, + prop->info->get, prop->info->set, + prop->info->release, + prop, &error_abort); object_property_set_description(obj, prop->name, prop->info->description, &error_abort); if (prop->set_default) { - prop->info->set_default_value(obj, prop); + prop->info->set_default_value(op, prop); + if (op->init) { + op->init(obj, op); + } } } +static void qdev_class_add_property(DeviceClass *klass, Property *prop) +{ + ObjectClass *oc = OBJECT_CLASS(klass); + + if (prop->info->create) { + prop->info->create(oc, prop, &error_abort); + } else { + ObjectProperty *op; + + op = object_class_property_add(oc, + prop->name, prop->info->name, + prop->info->get, prop->info->set, + prop->info->release, + prop, &error_abort); + if (prop->set_default) { + prop->info->set_default_value(op, prop); + } + } + object_class_property_set_description(oc, prop->name, + prop->info->description, + &error_abort); +} + /* @qdev_alias_all_properties - Add alias properties to the source object for * all qdev properties on the target DeviceState. */ @@ -932,8 +946,6 @@ static bool device_get_hotplugged(Object *obj, Error **errp) static void device_initfn(Object *obj) { DeviceState *dev = DEVICE(obj); - ObjectClass *class; - Property *prop; if (qdev_hotplug) { dev->hotplugged = 1; @@ -944,15 +956,6 @@ static void device_initfn(Object *obj) dev->realized = false; dev->allow_unplug_during_migration = false; - class = object_get_class(OBJECT(dev)); - do { - for (prop = DEVICE_CLASS(class)->props_; prop && prop->name; prop++) { - qdev_property_add_legacy(dev, prop, &error_abort); - qdev_property_add_static(dev, prop); - } - class = object_class_get_parent(class); - } while (class != object_class_by_name(TYPE_DEVICE)); - QLIST_INIT(&dev->gpios); } @@ -1065,7 +1068,13 @@ static void device_class_init(ObjectClass *class, void *data) void device_class_set_props(DeviceClass *dc, Property *props) { + Property *prop; + dc->props_ = props; + for (prop = props; prop && prop->name; prop++) { + qdev_class_add_legacy_property(dc, prop); + qdev_class_add_property(dc, prop); + } } void device_class_set_parent_reset(DeviceClass *dc, diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 506ad35..5da94f8 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -263,8 +263,8 @@ struct PropertyInfo { const char *description; const QEnumLookup *enum_table; int (*print)(DeviceState *dev, Property *prop, char *dest, size_t len); - void (*set_default_value)(Object *obj, const Property *prop); - void (*create)(Object *obj, Property *prop, Error **errp); + void (*set_default_value)(ObjectProperty *op, const Property *prop); + void (*create)(ObjectClass *oc, Property *prop, Error **errp); ObjectPropertyAccessor *get; ObjectPropertyAccessor *set; ObjectPropertyRelease *release; From patchwork Thu Jan 23 13:50:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348793 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 43A2B92A for ; Thu, 23 Jan 2020 17:09:18 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 19B22206D4 for ; Thu, 23 Jan 2020 17:09:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="YnM7Wy7t" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 19B22206D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:33068 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufym-0003hi-Dk for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 12:09:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53104) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuZ-0001f1-Da for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucuY-0001NK-BT for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:43 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:36468 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 1iucuY-0001NA-8D for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:42 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787562; 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=NKbz01lsGRxXpu6cWnR890EpjJmf3tFFbUXHubunYW0=; b=YnM7Wy7teydgQbC4F/Wxvh19hw4Nsl4K+/n2XsUfNvZagAm/LONVB4okOtrW9N2z80G7Nt HsSH50t+4fVhBuHhGs6/Qr91c3YheUjYsd6gu/B+ehVBrpg9/MZEJc5nzMBEJsx629mJAT mBK5L25gTDrtsFyx5Myx/EsIYrD0sYw= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-413-kXkEFJ6FO-mCEC9FzBN_3A-1; Thu, 23 Jan 2020 08:52:40 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 45C15100EC93 for ; Thu, 23 Jan 2020 13:52:39 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 44ABE85782; Thu, 23 Jan 2020 13:52:38 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 52/59] vl: print default value in object help Date: Thu, 23 Jan 2020 14:50:42 +0100 Message-Id: <1579787449-27599-53-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: kXkEFJ6FO-mCEC9FzBN_3A-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-23-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- qom/object_interfaces.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c index 46cd6ea..edb4cc4 100644 --- a/qom/object_interfaces.c +++ b/qom/object_interfaces.c @@ -185,6 +185,7 @@ bool user_creatable_print_help(const char *type, QemuOpts *opts) object_class_property_iter_init(&iter, klass); while ((prop = object_property_iter_next(&iter))) { GString *str; + char *defval; if (!prop->set) { continue; @@ -192,6 +193,11 @@ bool user_creatable_print_help(const char *type, QemuOpts *opts) str = g_string_new(NULL); g_string_append_printf(str, " %s=<%s>", prop->name, prop->type); + defval = object_property_get_default(prop); + if (defval) { + g_string_append_printf(str, " (default: %s)", defval); + g_free(defval); + } if (prop->description) { if (str->len < 24) { g_string_append_printf(str, "%*s", 24 - (int)str->len, ""); From patchwork Thu Jan 23 13:50:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348799 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6F4CF1398 for ; Thu, 23 Jan 2020 17:12:14 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 451DA20704 for ; Thu, 23 Jan 2020 17:12:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="I468Uft0" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 451DA20704 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:33122 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iug1c-0007hk-UC for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 12:12:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53130) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucua-0001hk-Vm for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucuZ-0001OA-Nf for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:44 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:43764 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 1iucuZ-0001O5-KZ for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:43 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787563; 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=weOrfJYvElx9PXPFZdBPW+NgpHelACkPKsnOgUcLfqs=; b=I468Uft0AmHUngK356HWNkn85zSgLUgAawMLkbnl5WFA2M0GwxchwbzSRUntztmtpLpr19 sjXBCNAPpQfF3LRIVMpdIeEHrAYaOJb+jKm+3Gqkwo+fy+zmXZ5+kVXbzvjR4692AB1d95 unzfSQRe2PqCwFhzxK9V6Nb/nfjydFU= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-181-RwfwdZTYOlGAXljdCCwX4w-1; Thu, 23 Jan 2020 08:52:41 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id BA5A0939D7 for ; Thu, 23 Jan 2020 13:52:40 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id B814F1CB; Thu, 23 Jan 2020 13:52:39 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 53/59] qom: simplify qmp_device_list_properties() Date: Thu, 23 Jan 2020 14:50:43 +0100 Message-Id: <1579787449-27599-54-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: RwfwdZTYOlGAXljdCCwX4w-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" All qdev properties are object properties, no need for make_device_property_info() helper. Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-24-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- qom/qom-qmp-cmds.c | 52 +++++----------------------------------------------- 1 file changed, 5 insertions(+), 47 deletions(-) diff --git a/qom/qom-qmp-cmds.c b/qom/qom-qmp-cmds.c index ccd3aaa..8785816 100644 --- a/qom/qom-qmp-cmds.c +++ b/qom/qom-qmp-cmds.c @@ -121,48 +121,6 @@ ObjectTypeInfoList *qmp_qom_list_types(bool has_implements, return ret; } -/* Return a DevicePropertyInfo for a qdev property. - * - * If a qdev property with the given name does not exist, use the given default - * type. If the qdev property info should not be shown, return NULL. - * - * The caller must free the return value. - */ -static ObjectPropertyInfo *make_device_property_info(ObjectClass *klass, - const char *name, - const char *default_type, - const char *description) -{ - ObjectPropertyInfo *info; - Property *prop; - - do { - for (prop = DEVICE_CLASS(klass)->props_; prop && prop->name; prop++) { - if (strcmp(name, prop->name) != 0) { - continue; - } - - info = g_malloc0(sizeof(*info)); - info->name = g_strdup(prop->name); - info->type = default_type ? g_strdup(default_type) - : g_strdup(prop->info->name); - info->has_description = !!prop->info->description; - info->description = g_strdup(prop->info->description); - return info; - } - klass = object_class_get_parent(klass); - } while (klass != object_class_by_name(TYPE_DEVICE)); - - /* Not a qdev property, use the default type */ - info = g_malloc0(sizeof(*info)); - info->name = g_strdup(name); - info->type = g_strdup(default_type); - info->has_description = !!description; - info->description = g_strdup(description); - - return info; -} - ObjectPropertyInfoList *qmp_device_list_properties(const char *typename, Error **errp) { @@ -214,11 +172,11 @@ ObjectPropertyInfoList *qmp_device_list_properties(const char *typename, continue; } - info = make_device_property_info(klass, prop->name, prop->type, - prop->description); - if (!info) { - continue; - } + info = g_new0(ObjectPropertyInfo, 1); + info->name = g_strdup(prop->name); + info->type = g_strdup(prop->type); + info->has_description = !!prop->description; + info->description = g_strdup(prop->description); entry = g_malloc0(sizeof(*entry)); entry->value = info; From patchwork Thu Jan 23 13:50:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348685 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C8A3E921 for ; Thu, 23 Jan 2020 16:34:47 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9F71A21D7D for ; Thu, 23 Jan 2020 16:34:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="NRMJWxsQ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9F71A21D7D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60514 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufRN-0004zn-O2 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:34:45 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53146) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuc-0001jw-Iy for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucub-0001PJ-8Q for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:46 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:52131 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 1iucub-0001P3-4C for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787564; 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=PwsciPAkxt1dB3oq4840PKHbmiUXpOueDbvkc5uqNnQ=; b=NRMJWxsQKs8gaNBE8NaBwmA5/WsRC/rpcbjIzSqvp61MOyscT0zZY4IiwWHGjIkfFz26vd tcM9V1+awf0PX22SAQjM7DEVS3TvkgMs/hqonmGiVcCAp4VCB4vWp5aSdwnkn3xAmRkrCW tbOZKu8bUwEQ8tgI5sbhQoSfKWgzOA8= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-302-V_IXYwEQM5y5zqO-_ySovw-1; Thu, 23 Jan 2020 08:52:43 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3CC1D802593 for ; Thu, 23 Jan 2020 13:52:42 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 38A2D1CB; Thu, 23 Jan 2020 13:52:40 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 54/59] qom: introduce object_property_help() Date: Thu, 23 Jan 2020 14:50:44 +0100 Message-Id: <1579787449-27599-55-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: V_IXYwEQM5y5zqO-_ySovw-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Let's factor out the code to format a help string for a property. We are going to reuse it in qdev next, which will bring some consistency. Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-25-marcandre.lureau@redhat.com> [Adjust for removal of object_property_get_default, move default after description. - Paolo] Signed-off-by: Paolo Bonzini --- include/qom/object.h | 13 +++++++++++++ qom/object_interfaces.c | 45 ++++++++++++++++++++++++++++----------------- 2 files changed, 41 insertions(+), 17 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index 18660fd..2954649 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1837,6 +1837,19 @@ Object *container_get(Object *root, const char *path); */ size_t object_type_get_instance_size(const char *typename); +/** + * object_property_help: + * @name: the name of the property + * @type: the type of the property + * @defval: the default value + * @description: description of the property + * + * Returns: a user-friendly formatted string describing the property + * for help purposes. + */ +char *object_property_help(const char *name, const char *type, + QObject *defval, const char *description); + G_DEFINE_AUTOPTR_CLEANUP_FUNC(Object, object_unref) #endif diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c index edb4cc4..72cb9e3 100644 --- a/qom/object_interfaces.c +++ b/qom/object_interfaces.c @@ -4,6 +4,8 @@ #include "qapi/error.h" #include "qapi/qmp/qdict.h" #include "qapi/qmp/qerror.h" +#include "qapi/qmp/qjson.h" +#include "qapi/qmp/qstring.h" #include "qom/object_interfaces.h" #include "qemu/help_option.h" #include "qemu/module.h" @@ -158,6 +160,29 @@ int user_creatable_add_opts_foreach(void *opaque, QemuOpts *opts, Error **errp) return 0; } +char *object_property_help(const char *name, const char *type, + QObject *defval, const char *description) +{ + GString *str = g_string_new(NULL); + + g_string_append_printf(str, " %s=<%s>", name, type); + if (description || defval) { + if (str->len < 24) { + g_string_append_printf(str, "%*s", 24 - (int)str->len, ""); + } + g_string_append(str, " - "); + } + if (description) { + g_string_append(str, description); + } + if (defval) { + g_autofree char *def_json = qstring_free(qobject_to_json(defval), TRUE); + g_string_append_printf(str, " (default: %s)", def_json); + } + + return g_string_free(str, false); +} + bool user_creatable_print_help(const char *type, QemuOpts *opts) { ObjectClass *klass; @@ -184,27 +209,13 @@ bool user_creatable_print_help(const char *type, QemuOpts *opts) object_class_property_iter_init(&iter, klass); while ((prop = object_property_iter_next(&iter))) { - GString *str; - char *defval; - if (!prop->set) { continue; } - str = g_string_new(NULL); - g_string_append_printf(str, " %s=<%s>", prop->name, prop->type); - defval = object_property_get_default(prop); - if (defval) { - g_string_append_printf(str, " (default: %s)", defval); - g_free(defval); - } - if (prop->description) { - if (str->len < 24) { - g_string_append_printf(str, "%*s", 24 - (int)str->len, ""); - } - g_string_append_printf(str, " - %s", prop->description); - } - g_ptr_array_add(array, g_string_free(str, false)); + g_ptr_array_add(array, + object_property_help(prop->name, prop->type, + prop->defval, prop->description)); } g_ptr_array_sort(array, (GCompareFunc)qemu_pstrcmp0); if (array->len > 0) { From patchwork Thu Jan 23 13:50:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348605 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BF319921 for ; Thu, 23 Jan 2020 16:13:30 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 94D6C2071E for ; Thu, 23 Jan 2020 16:13:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Qo4BcW6e" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 94D6C2071E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60130 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuf6n-0000lR-17 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:13:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53158) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucud-0001mE-Rw for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucuc-0001Q8-Rc for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:47 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:21382 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 1iucuc-0001Pw-OK for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:46 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787566; 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=ktKFvT34rqSSyh//AYVA6ETolJ9M5QOZ8mJHSCkxDDo=; b=Qo4BcW6exQsBXw7W+y/Iw6MPSIKVbr9zYHmaYJGJ+VMZ+7luGrBR6ckb1bqRhiFwmL1bT9 9Gb7JYGOIylWRZqdGj/4pqz4Siuabz/Elx2iRrexzqSxKSxAmiL5iA1pDC8EyWYPb7WLtd HULi66qHiSJ3oPTbwCSUmRUux82aXck= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-217-PUSIkUi5NSeMyFmCLsoYzg-1; Thu, 23 Jan 2020 08:52:44 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AED068024EC for ; Thu, 23 Jan 2020 13:52:43 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id ADEBD1CB; Thu, 23 Jan 2020 13:52:42 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 55/59] qapi/qmp: add ObjectPropertyInfo.default-value Date: Thu, 23 Jan 2020 14:50:45 +0100 Message-Id: <1579787449-27599-56-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: PUSIkUi5NSeMyFmCLsoYzg-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Report the default value associated with a property. Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-26-marcandre.lureau@redhat.com> [Report it as type "any", not string. - Paolo] Signed-off-by: Paolo Bonzini --- qapi/qom.json | 7 ++++++- qom/qom-qmp-cmds.c | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/qapi/qom.json b/qapi/qom.json index 32db96f..1e3c2ad 100644 --- a/qapi/qom.json +++ b/qapi/qom.json @@ -26,10 +26,15 @@ # # @description: if specified, the description of the property. # +# @default-value: the default value, if any (since 5.0) +# # Since: 1.2 ## { 'struct': 'ObjectPropertyInfo', - 'data': { 'name': 'str', 'type': 'str', '*description': 'str' } } + 'data': { 'name': 'str', + 'type': 'str', + '*description': 'str', + '*default-value': 'any' } } ## # @qom-list: diff --git a/qom/qom-qmp-cmds.c b/qom/qom-qmp-cmds.c index 8785816..6136efe 100644 --- a/qom/qom-qmp-cmds.c +++ b/qom/qom-qmp-cmds.c @@ -177,6 +177,8 @@ ObjectPropertyInfoList *qmp_device_list_properties(const char *typename, info->type = g_strdup(prop->type); info->has_description = !!prop->description; info->description = g_strdup(prop->description); + info->default_value = qobject_ref(prop->defval); + info->has_default_value = !!info->default_value; entry = g_malloc0(sizeof(*entry)); entry->value = info; From patchwork Thu Jan 23 13:50:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348805 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 222DD13A4 for ; Thu, 23 Jan 2020 17:15:08 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EB713214AF for ; Thu, 23 Jan 2020 17:15:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="c+Y7okPd" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EB713214AF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:33160 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iug4P-0002rs-Ux for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 12:15:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53172) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuf-0001oe-BT for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucue-0001R0-8r for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:49 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:35060 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 1iucud-0001Qd-W4 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787567; 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=bIJKW7r6m3lfEsrrQFwr4hlFi3X2sjt8/eoVtOOO/2M=; b=c+Y7okPdE25gXeYvJdk/Em0B0Sfn3SbzLQc5LDeH/BxWlX0OeFlj+9kEwJIVob0Se2DWkO Mzl/yEwPzJIaPNL8H7JCA5NR9ki6/xRnE4+L6vVLO65p4s5GNArYpGQkSvjSZwkyTeqaxu jvFLTRTmzXTpcL1+/Z3IMjjg4qp0+io= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-156-JvTf-q1pOWO2_vnm09GUrQ-1; Thu, 23 Jan 2020 08:52:46 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3159199116 for ; Thu, 23 Jan 2020 13:52:45 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2FE871CB; Thu, 23 Jan 2020 13:52:43 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 56/59] qdev: use object_property_help() Date: Thu, 23 Jan 2020 14:50:46 +0100 Message-Id: <1579787449-27599-57-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: JvTf-q1pOWO2_vnm09GUrQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Use the common function introduced earlier, and report default value. Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-27-marcandre.lureau@redhat.com> [Sort the properties, following what is done for -object ...,help. - Paolo] Signed-off-by: Paolo Bonzini --- qdev-monitor.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/qdev-monitor.c b/qdev-monitor.c index c929262..8ce71a2 100644 --- a/qdev-monitor.c +++ b/qdev-monitor.c @@ -37,6 +37,7 @@ #include "sysemu/sysemu.h" #include "migration/misc.h" #include "migration/migration.h" +#include "qemu/cutils.h" /* * Aliases were a bad idea from the start. Let's keep them @@ -256,6 +257,8 @@ int qdev_device_help(QemuOpts *opts) const char *driver; ObjectPropertyInfoList *prop_list; ObjectPropertyInfoList *prop; + GPtrArray *array; + int i; driver = qemu_opt_get(opts, "driver"); if (driver && is_help_option(driver)) { @@ -285,19 +288,20 @@ int qdev_device_help(QemuOpts *opts) } else { qemu_printf("There are no options for %s.\n", driver); } + array = g_ptr_array_new(); for (prop = prop_list; prop; prop = prop->next) { - int len; - qemu_printf(" %s=<%s>%n", prop->value->name, prop->value->type, &len); - if (prop->value->has_description) { - if (len < 24) { - qemu_printf("%*s", 24 - len, ""); - } - qemu_printf(" - %s\n", prop->value->description); - } else { - qemu_printf("\n"); - } - } - + g_ptr_array_add(array, + object_property_help(prop->value->name, + prop->value->type, + prop->value->default_value, + prop->value->description)); + } + g_ptr_array_sort(array, (GCompareFunc)qemu_pstrcmp0); + for (i = 0; i < array->len; i++) { + printf("%s\n", (char *)array->pdata[i]); + } + g_ptr_array_set_free_func(array, g_free); + g_ptr_array_free(array, true); qapi_free_ObjectPropertyInfoList(prop_list); return 1; From patchwork Thu Jan 23 13:50:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348691 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 13F21921 for ; Thu, 23 Jan 2020 16:38:00 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DE52B24125 for ; Thu, 23 Jan 2020 16:37:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="H6AcyHt3" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DE52B24125 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60572 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufUU-00006q-J2 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:37:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53184) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuh-0001rq-9A for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucug-0001SI-55 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:51 -0500 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:56097 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 1iucug-0001Ry-1j for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787569; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1DjEVvZ73yL/gkpoadGqlLEaUysWh+reLYcqqaGytt0=; b=H6AcyHt3AJqBv9qDaYKV+7jyH/jHFDZNYvksrx/kJXpegtXyMQ+iFAAdqqEa8aVKSJrTUA ALTXbYJ4TSuOuJnSusenH6Eq/EtXRqpbcT7rP5tgzGUoNsiHjSSNPnlm+rN5SabHQMC9ko 1CAdxY55NZlDTP9AUCU3mtS4XVn0ccE= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-402-d_HK_42uPIq7-KsM17BdgA-1; Thu, 23 Jan 2020 08:52:47 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A6AB8801E78 for ; Thu, 23 Jan 2020 13:52:46 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id A45318575C; Thu, 23 Jan 2020 13:52:45 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 57/59] target/i386: Add the 'model-id' for Skylake -v3 CPU models Date: Thu, 23 Jan 2020 14:50:47 +0100 Message-Id: <1579787449-27599-58-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: d_HK_42uPIq7-KsM17BdgA-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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: Kashyap Chamarthy Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Kashyap Chamarthy This fixes a confusion in the help output. (Although, if you squint long enough at the '-cpu help' output, you _do_ notice that "Skylake-Client-noTSX-IBRS" is an alias of "Skylake-Client-v3"; similarly for Skylake-Server-v3.) Without this patch: $ qemu-system-x86 -cpu help ... x86 Skylake-Client-v1 Intel Core Processor (Skylake) x86 Skylake-Client-v2 Intel Core Processor (Skylake, IBRS) x86 Skylake-Client-v3 Intel Core Processor (Skylake, IBRS) ... x86 Skylake-Server-v1 Intel Xeon Processor (Skylake) x86 Skylake-Server-v2 Intel Xeon Processor (Skylake, IBRS) x86 Skylake-Server-v3 Intel Xeon Processor (Skylake, IBRS) ... With this patch: $ ./qemu-system-x86 -cpu help ... x86 Skylake-Client-v1 Intel Core Processor (Skylake) x86 Skylake-Client-v2 Intel Core Processor (Skylake, IBRS) x86 Skylake-Client-v3 Intel Core Processor (Skylake, IBRS, no TSX) ... x86 Skylake-Server-v1 Intel Xeon Processor (Skylake) x86 Skylake-Server-v2 Intel Xeon Processor (Skylake, IBRS) x86 Skylake-Server-v3 Intel Xeon Processor (Skylake, IBRS, no TSX) ... Signed-off-by: Kashyap Chamarthy Message-Id: <20200123090116.14409-1-kchamart@redhat.com> Signed-off-by: Paolo Bonzini --- target/i386/cpu.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 5fa6acc..32efa46 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -2905,6 +2905,8 @@ static X86CPUDefinition builtin_x86_defs[] = { .props = (PropValue[]) { { "hle", "off" }, { "rtm", "off" }, + { "model-id", + "Intel Core Processor (Skylake, IBRS, no TSX)" }, { /* end of list */ } } }, @@ -3028,6 +3030,8 @@ static X86CPUDefinition builtin_x86_defs[] = { .props = (PropValue[]) { { "hle", "off" }, { "rtm", "off" }, + { "model-id", + "Intel Xeon Processor (Skylake, IBRS, no TSX)" }, { /* end of list */ } } }, From patchwork Thu Jan 23 13:50:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348625 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E31286C1 for ; Thu, 23 Jan 2020 16:16:02 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A800E2071E for ; Thu, 23 Jan 2020 16:16:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="RSJ0AGbY" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A800E2071E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60178 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuf9F-0004dX-5d for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:16:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53201) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuj-0001vF-CM for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucuh-0001T4-CI for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:53 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:46146 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 1iucuh-0001Sl-70 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:51 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787570; 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=3R7VMZI2FdMTPYoKDcrZxqTkzH07EEWxInSe9BWbR6U=; b=RSJ0AGbYi3jAO2JNTRR5obQHCrTepibGpIb1bmx3kRHPzfnCYrxkuPf6UVvk9TQWUCGStp Iil3StFBk9oE1Jb9dmn1aFezC/k6hVDdj/XE7En0eogFdbhwOFtPvogM/m6fkIbqZfjyhA doxJ1Sg0TBDRSWX7UTPIc7vvM3UZI6w= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-118-NGyHtsiRPNOXVKjNDEa4PQ-1; Thu, 23 Jan 2020 08:52:49 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 28B8110110C5 for ; Thu, 23 Jan 2020 13:52:48 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2544C1CB; Thu, 23 Jan 2020 13:52:46 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 58/59] build-sys: clean up flags included in the linker command line Date: Thu, 23 Jan 2020 14:50:48 +0100 Message-Id: <1579787449-27599-59-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: NGyHtsiRPNOXVKjNDEa4PQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Some of the CFLAGS that are discovered during configure, for example compiler warnings, are being included on the linker command line because QEMU_CFLAGS is added to it. Other flags, such as the -m32, appear twice because they are included in both QEMU_CFLAGS and LDFLAGS. All this leads to confusion with respect to what goes in which Makefile variables (and we have plenty). So, introduce QEMU_LDFLAGS for flags discovered by configure, following the lead of QEMU_CFLAGS, and stop adding to it: 1) options that are already in CFLAGS, for example "-g" 2) duplicate options At the same time, options that _are_ needed by both compiler and linker must now be added to both QEMU_CFLAGS and QEMU_LDFLAGS, which is clearer. This is mostly -fsanitize options. Meson will not include CFLAGS on the linker command line, do the same in our build system as well. Signed-off-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- .travis.yml | 4 +-- Makefile | 4 +-- configure | 60 ++++++++++++++++++++++----------------------- qga/vss-win32/Makefile.objs | 4 +-- rules.mak | 4 +-- 5 files changed, 38 insertions(+), 38 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6c1038a..142d28f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -179,7 +179,7 @@ matrix: compiler: clang before_script: - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR} - - ${SRC_DIR}/configure ${CONFIG} --extra-cflags="-fsanitize=undefined -Werror" || { cat config.log && exit 1; } + - ${SRC_DIR}/configure ${CONFIG} --extra-cflags="-fsanitize=undefined -Werror" --extra-ldflags="-fsanitize=undefined" || { cat config.log && exit 1; } - env: @@ -327,7 +327,7 @@ matrix: - TEST_CMD="" before_script: - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR} - - ${SRC_DIR}/configure ${CONFIG} --extra-cflags="-g3 -O0 -Wno-error=stringop-truncation -fsanitize=thread -fuse-ld=gold" || { cat config.log && exit 1; } + - ${SRC_DIR}/configure ${CONFIG} --extra-cflags="-g3 -O0 -Wno-error=stringop-truncation -fsanitize=thread" --extra-ldflags="-fsanitize=thread -fuse-ld=gold" || { cat config.log && exit 1; } # Run check-tcg against linux-user diff --git a/Makefile b/Makefile index 6562b0d..c20c6fe 100644 --- a/Makefile +++ b/Makefile @@ -490,7 +490,7 @@ DTC_CPPFLAGS=-I$(BUILD_DIR)/dtc -I$(SRC_PATH)/dtc -I$(SRC_PATH)/dtc/libfdt .PHONY: dtc/all dtc/all: .git-submodule-status dtc/libfdt dtc/tests - $(call quiet-command,$(MAKE) $(DTC_MAKE_ARGS) CPPFLAGS="$(DTC_CPPFLAGS)" CFLAGS="$(DTC_CFLAGS)" LDFLAGS="$(LDFLAGS)" ARFLAGS="$(ARFLAGS)" CC="$(CC)" AR="$(AR)" LD="$(LD)" $(SUBDIR_MAKEFLAGS) libfdt/libfdt.a,) + $(call quiet-command,$(MAKE) $(DTC_MAKE_ARGS) CPPFLAGS="$(DTC_CPPFLAGS)" CFLAGS="$(DTC_CFLAGS)" LDFLAGS="$(QEMU_LDFLAGS)" ARFLAGS="$(ARFLAGS)" CC="$(CC)" AR="$(AR)" LD="$(LD)" $(SUBDIR_MAKEFLAGS) libfdt/libfdt.a,) dtc/%: .git-submodule-status @mkdir -p $@ @@ -517,7 +517,7 @@ slirp/all: .git-submodule-status BUILD_DIR="$(BUILD_DIR)/slirp" \ PKG_CONFIG="$(PKG_CONFIG)" \ CC="$(CC)" AR="$(AR)" LD="$(LD)" RANLIB="$(RANLIB)" \ - CFLAGS="$(QEMU_CFLAGS) $(CFLAGS)" LDFLAGS="$(LDFLAGS)") + CFLAGS="$(QEMU_CFLAGS) $(CFLAGS)" LDFLAGS="$(QEMU_LDFLAGS)") # Compatibility gunk to keep make working across the rename of targets # for recursion, to be removed some time after 4.1. diff --git a/configure b/configure index c67a7e7..b308150 100755 --- a/configure +++ b/configure @@ -126,7 +126,7 @@ compile_object() { compile_prog() { local_cflags="$1" local_ldflags="$2" - do_cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags + do_cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $QEMU_LDFLAGS $local_ldflags } # symbolically link $1 to $2. Portable version of "ln -sf". @@ -526,7 +526,7 @@ for opt do ;; --extra-cxxflags=*) QEMU_CXXFLAGS="$QEMU_CXXFLAGS $optarg" ;; - --extra-ldflags=*) LDFLAGS="$LDFLAGS $optarg" + --extra-ldflags=*) QEMU_LDFLAGS="$QEMU_LDFLAGS $optarg" EXTRA_LDFLAGS="$optarg" ;; --enable-debug-info) debug_info="yes" @@ -599,7 +599,6 @@ QEMU_INCLUDES="-iquote . -iquote \$(SRC_PATH) -iquote \$(SRC_PATH)/accel/tcg -iq QEMU_INCLUDES="$QEMU_INCLUDES -iquote \$(SRC_PATH)/disas/libvixl" if test "$debug_info" = "yes"; then CFLAGS="-g $CFLAGS" - LDFLAGS="-g $LDFLAGS" fi # running configure in the source tree? @@ -845,12 +844,12 @@ Darwin) LDFLAGS_SHARED="-bundle -undefined dynamic_lookup" if [ "$cpu" = "x86_64" ] ; then QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS" - LDFLAGS="-arch x86_64 $LDFLAGS" + QEMU_LDFLAGS="-arch x86_64 $QEMU_LDFLAGS" fi cocoa="yes" audio_drv_list="coreaudio try-sdl" audio_possible_drivers="coreaudio sdl" - LDFLAGS="-framework CoreFoundation -framework IOKit $LDFLAGS" + QEMU_LDFLAGS="-framework CoreFoundation -framework IOKit $QEMU_LDFLAGS" libs_softmmu="-F/System/Library/Frameworks -framework Cocoa -framework IOKit $libs_softmmu" # Disable attempts to use ObjectiveC features in os/object.h since they # won't work when we're compiling with gcc as a C compiler. @@ -1025,7 +1024,7 @@ for opt do ;; --static) static="yes" - LDFLAGS="-static $LDFLAGS" + QEMU_LDFLAGS="-static $QEMU_LDFLAGS" QEMU_PKG_CONFIG_FLAGS="--static $QEMU_PKG_CONFIG_FLAGS" ;; --mandir=*) mandir="$optarg" @@ -1551,42 +1550,42 @@ done case "$cpu" in ppc) CPU_CFLAGS="-m32" - LDFLAGS="-m32 $LDFLAGS" + QEMU_LDFLAGS="-m32 $QEMU_LDFLAGS" ;; ppc64) CPU_CFLAGS="-m64" - LDFLAGS="-m64 $LDFLAGS" + QEMU_LDFLAGS="-m64 $QEMU_LDFLAGS" ;; sparc) CPU_CFLAGS="-m32 -mv8plus -mcpu=ultrasparc" - LDFLAGS="-m32 -mv8plus $LDFLAGS" + QEMU_LDFLAGS="-m32 -mv8plus $QEMU_LDFLAGS" ;; sparc64) CPU_CFLAGS="-m64 -mcpu=ultrasparc" - LDFLAGS="-m64 $LDFLAGS" + QEMU_LDFLAGS="-m64 $QEMU_LDFLAGS" ;; s390) CPU_CFLAGS="-m31" - LDFLAGS="-m31 $LDFLAGS" + QEMU_LDFLAGS="-m31 $QEMU_LDFLAGS" ;; s390x) CPU_CFLAGS="-m64" - LDFLAGS="-m64 $LDFLAGS" + QEMU_LDFLAGS="-m64 $QEMU_LDFLAGS" ;; i386) CPU_CFLAGS="-m32" - LDFLAGS="-m32 $LDFLAGS" + QEMU_LDFLAGS="-m32 $QEMU_LDFLAGS" ;; x86_64) # ??? Only extremely old AMD cpus do not have cmpxchg16b. # If we truly care, we should simply detect this case at # runtime and generate the fallback to serial emulation. CPU_CFLAGS="-m64 -mcx16" - LDFLAGS="-m64 $LDFLAGS" + QEMU_LDFLAGS="-m64 $QEMU_LDFLAGS" ;; x32) CPU_CFLAGS="-mx32" - LDFLAGS="-mx32 $LDFLAGS" + QEMU_LDFLAGS="-mx32 $QEMU_LDFLAGS" ;; # No special flags required for other host CPUs esac @@ -1967,6 +1966,7 @@ EOF if do_cc $QEMU_CFLAGS -Werror $flag -c -o $TMPO $TMPC && compile_prog "-Werror $flag" ""; then QEMU_CFLAGS="$QEMU_CFLAGS $flag" + QEMU_LDFLAGS="$QEMU_LDFLAGS $flag" sp_on=1 break fi @@ -2051,10 +2051,10 @@ EOF if compile_prog "-fPIE -DPIE" "-pie"; then QEMU_CFLAGS="-fPIE -DPIE $QEMU_CFLAGS" - LDFLAGS="-pie $LDFLAGS" + QEMU_LDFLAGS="-pie $QEMU_LDFLAGS" pie="yes" if compile_prog "" "-Wl,-z,relro -Wl,-z,now" ; then - LDFLAGS="-Wl,-z,relro -Wl,-z,now $LDFLAGS" + QEMU_LDFLAGS="-Wl,-z,relro -Wl,-z,now $QEMU_LDFLAGS" fi else if test "$pie" = "yes"; then @@ -5837,7 +5837,7 @@ EOF hvf='no' else hvf='yes' - LDFLAGS="-framework Hypervisor $LDFLAGS" + QEMU_LDFLAGS="-framework Hypervisor $QEMU_LDFLAGS" fi fi @@ -6071,8 +6071,8 @@ esac write_c_skeleton if test "$gcov" = "yes" ; then - CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS" - LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS" + QEMU_CFLAGS="-fprofile-arcs -ftest-coverage -g $QEMU_CFLAGS" + QEMU_LDFLAGS="-fprofile-arcs -ftest-coverage $QEMU_LDFLAGS" elif test "$fortify_source" = "yes" ; then CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS" elif test "$debug" = "no"; then @@ -6080,7 +6080,8 @@ elif test "$debug" = "no"; then fi if test "$have_asan" = "yes"; then - CFLAGS="-fsanitize=address $CFLAGS" + QEMU_CFLAGS="-fsanitize=address $QEMU_CFLAGS" + QEMU_LDFLAGS="-fsanitize=address $QEMU_LDFLAGS" if test "$have_asan_iface_h" = "no" ; then echo "ASAN build enabled, but ASAN header missing." \ "Without code annotation, the report may be inferior." @@ -6090,7 +6091,8 @@ if test "$have_asan" = "yes"; then fi fi if test "$have_ubsan" = "yes"; then - CFLAGS="-fsanitize=undefined $CFLAGS" + QEMU_CFLAGS="-fsanitize=undefined $QEMU_CFLAGS" + QEMU_LDFLAGS="-fsanitize=undefined $QEMU_LDFLAGS" fi ########################################## @@ -6125,7 +6127,7 @@ fi if test "$solaris" = "no" ; then if $ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then - LDFLAGS="-Wl,--warn-common $LDFLAGS" + QEMU_LDFLAGS="-Wl,--warn-common $QEMU_LDFLAGS" fi fi @@ -6140,7 +6142,7 @@ fi if test "$mingw32" = "yes" ; then for flag in --dynamicbase --no-seh --nxcompat; do if ld_has $flag ; then - LDFLAGS="-Wl,$flag $LDFLAGS" + QEMU_LDFLAGS="-Wl,$flag $QEMU_LDFLAGS" fi done fi @@ -6375,7 +6377,7 @@ EOF update_cxxflags - if do_cxx $QEMU_CXXFLAGS -o $TMPE $TMPCXX $TMPO $LDFLAGS; then + if do_cxx $QEMU_CXXFLAGS -o $TMPE $TMPCXX $TMPO $QEMU_LDFLAGS; then # C++ compiler $cxx works ok with C compiler $cc : else @@ -6427,7 +6429,6 @@ echo "Objective-C compiler $objcc" echo "ARFLAGS $ARFLAGS" echo "CFLAGS $CFLAGS" echo "QEMU_CFLAGS $QEMU_CFLAGS" -echo "LDFLAGS $LDFLAGS" echo "QEMU_LDFLAGS $QEMU_LDFLAGS" echo "make $make" echo "install $install" @@ -7479,9 +7480,8 @@ if test "$sparse" = "yes" ; then echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc" >> $config_host_mak echo "QEMU_CFLAGS += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak fi -echo "LDFLAGS=$LDFLAGS" >> $config_host_mak -echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak echo "QEMU_LDFLAGS=$QEMU_LDFLAGS" >> $config_host_mak +echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak echo "LD_REL_FLAGS=$LD_REL_FLAGS" >> $config_host_mak echo "LD_I386_EMULATION=$ld_i386_emulation" >> $config_host_mak echo "LIBS+=$LIBS" >> $config_host_mak @@ -7807,7 +7807,7 @@ if test "$target_bsd_user" = "yes" ; then fi -# generate QEMU_CFLAGS/LDFLAGS for targets +# generate QEMU_CFLAGS/QEMU_LDFLAGS for targets cflags="" ldflags="" @@ -7928,7 +7928,7 @@ if test "$TARGET_ARCH" = "s390x" && test "$target_softmmu" = "yes" && \ fi fi -echo "LDFLAGS+=$ldflags" >> $config_target_mak +echo "QEMU_LDFLAGS+=$ldflags" >> $config_target_mak echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak done # for target in $targets diff --git a/qga/vss-win32/Makefile.objs b/qga/vss-win32/Makefile.objs index fd3ba18..c82676a 100644 --- a/qga/vss-win32/Makefile.objs +++ b/qga/vss-win32/Makefile.objs @@ -5,9 +5,9 @@ qga-vss-dll-obj-y += requester.o provider.o install.o obj-qga-vss-dll-obj-y = $(addprefix $(obj)/, $(qga-vss-dll-obj-y)) $(obj-qga-vss-dll-obj-y): QEMU_CXXFLAGS := $(filter-out -fstack-protector-all -fstack-protector-strong, $(QEMU_CXXFLAGS)) -Wno-unknown-pragmas -Wno-delete-non-virtual-dtor -$(obj)/qga-vss.dll: LDFLAGS = -shared -Wl,--add-stdcall-alias,--enable-stdcall-fixup -lglib-2.0 -lole32 -loleaut32 -lshlwapi -luuid -lintl -lws2_32 -static +QGA_VSS_LDFLAGS = -shared -Wl,--add-stdcall-alias,--enable-stdcall-fixup -lglib-2.0 -lole32 -loleaut32 -lshlwapi -luuid -lintl -lws2_32 -static $(obj)/qga-vss.dll: $(obj-qga-vss-dll-obj-y) $(SRC_PATH)/$(obj)/qga-vss.def - $(call quiet-command,$(CXX) -o $@ $(qga-vss-dll-obj-y) $(SRC_PATH)/qga/vss-win32/qga-vss.def $(CXXFLAGS) $(LDFLAGS),"LINK","$(TARGET_DIR)$@") + $(call quiet-command,$(CXX) -o $@ $(qga-vss-dll-obj-y) $(SRC_PATH)/qga/vss-win32/qga-vss.def $(CXXFLAGS) $(QGA_VSS_LDFLAGS),"LINK","$(TARGET_DIR)$@") # rules to build qga-provider.tlb diff --git a/rules.mak b/rules.mak index 967295d..c855887 100644 --- a/rules.mak +++ b/rules.mak @@ -76,7 +76,7 @@ expand-objs = $(strip $(sort $(filter %.o,$1)) \ # must link with the C++ compiler, not the plain C compiler. LINKPROG = $(or $(CXX),$(CC)) -LINK = $(call quiet-command, $(LINKPROG) $(QEMU_LDFLAGS) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \ +LINK = $(call quiet-command, $(LINKPROG) $(CFLAGS) $(QEMU_LDFLAGS) -o $@ \ $(call process-archive-undefs, $1) \ $(version-obj-y) $(call extract-libs,$1) $(LIBS),"LINK","$(TARGET_DIR)$@") @@ -105,7 +105,7 @@ LINK = $(call quiet-command, $(LINKPROG) $(QEMU_LDFLAGS) $(QEMU_CFLAGS) $(CFLAGS DSO_OBJ_CFLAGS := -fPIC -DBUILD_DSO module-common.o: CFLAGS += $(DSO_OBJ_CFLAGS) -%$(DSOSUF): LDFLAGS += $(LDFLAGS_SHARED) +%$(DSOSUF): QEMU_LDFLAGS += $(LDFLAGS_SHARED) %$(DSOSUF): %.mo $(call LINK,$^) @# Copy to build root so modules can be loaded when program started without install From patchwork Thu Jan 23 13:50:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11348695 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2EB1B92A for ; Thu, 23 Jan 2020 16:40:50 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F037621569 for ; Thu, 23 Jan 2020 16:40:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="DrgNFDfi" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F037621569 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:60628 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufXE-00059y-EH for patchwork-qemu-devel@patchwork.kernel.org; Thu, 23 Jan 2020 11:40:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53209) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iucuj-0001vz-Pw for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iucui-0001Th-FE for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:53 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:55505 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 1iucui-0001TT-C2 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 08:52:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579787572; 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=Ejszrz+sWDo4lg8YVhY65tpbtbNsuy8cfAUAhhzXAok=; b=DrgNFDfien4jeLLsgWT4I94JjuOlmoIYyyp7v7NY9B88p4+aYjoGTbWejy/08V/QOKqGwJ gfhjQZlfazkEwdnPtlZSyn1lHxMQ09IP2l1xIInjjDk9p5rsLbmTj4xwgIz7Kdpo2r/mI9 pHJaMNHDv+4iMxMexMhzrIB4gwWZv3c= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-161-q5E-_50hODqEjioyrtp8LA-1; Thu, 23 Jan 2020 08:52:50 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9B8C710110CD for ; Thu, 23 Jan 2020 13:52:49 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 998B61CB; Thu, 23 Jan 2020 13:52:48 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 59/59] tests: fix test-qga on macosx Date: Thu, 23 Jan 2020 14:50:49 +0100 Message-Id: <1579787449-27599-60-git-send-email-pbonzini@redhat.com> In-Reply-To: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> References: <1579787449-27599-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: q5E-_50hODqEjioyrtp8LA-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Fix Unix socket connection & skip commands that are not implemented. Signed-off-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- tests/Makefile.include | 2 +- tests/test-qga.c | 25 ++++++++++++++++++------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/tests/Makefile.include b/tests/Makefile.include index c6827ce..87a256c 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -119,7 +119,7 @@ check-unit-$(CONFIG_BLOCK) += tests/test-crypto-secret$(EXESUF) check-unit-$(call land,$(CONFIG_BLOCK),$(CONFIG_GNUTLS)) += tests/test-crypto-tlscredsx509$(EXESUF) check-unit-$(call land,$(CONFIG_BLOCK),$(CONFIG_GNUTLS)) += tests/test-crypto-tlssession$(EXESUF) ifneq (,$(findstring qemu-ga,$(TOOLS))) -check-unit-$(call land,$(CONFIG_LINUX),$(CONFIG_VIRTIO_SERIAL)) += tests/test-qga$(EXESUF) +check-unit-$(call land,$(CONFIG_POSIX),$(CONFIG_VIRTIO_SERIAL)) += tests/test-qga$(EXESUF) endif check-unit-y += tests/test-timed-average$(EXESUF) check-unit-$(CONFIG_INOTIFY1) += tests/test-util-filemonitor$(EXESUF) diff --git a/tests/test-qga.c b/tests/test-qga.c index d2b2435..191bfca 100644 --- a/tests/test-qga.c +++ b/tests/test-qga.c @@ -17,17 +17,17 @@ typedef struct { static int connect_qga(char *path) { - int s, ret, len, i = 0; + int s, ret, i = 0; struct sockaddr_un remote; s = socket(AF_UNIX, SOCK_STREAM, 0); g_assert(s != -1); + memset(&remote, 0, sizeof(struct sockaddr_un)); remote.sun_family = AF_UNIX; do { - strcpy(remote.sun_path, path); - len = strlen(remote.sun_path) + sizeof(remote.sun_family); - ret = connect(s, (struct sockaddr *)&remote, len); + strncpy(remote.sun_path, path, sizeof(remote.sun_path) - 1); + ret = connect(s, (struct sockaddr *)&remote, sizeof(struct sockaddr_un)); if (ret == -1) { g_usleep(G_USEC_PER_SEC); } @@ -305,6 +305,7 @@ static void test_qga_info(gconstpointer fix) qobject_unref(ret); } +#if defined(CONFIG_LINUX) static void test_qga_get_vcpus(gconstpointer fix) { const TestFixture *fixture = fix; @@ -324,7 +325,9 @@ static void test_qga_get_vcpus(gconstpointer fix) qobject_unref(ret); } +#endif +#if defined(CONFIG_LINUX) static void test_qga_get_fsinfo(gconstpointer fix) { const TestFixture *fixture = fix; @@ -348,6 +351,7 @@ static void test_qga_get_fsinfo(gconstpointer fix) qobject_unref(ret); } +#endif static void test_qga_get_memory_block_info(gconstpointer fix) { @@ -394,6 +398,7 @@ static void test_qga_get_memory_blocks(gconstpointer fix) qobject_unref(ret); } +#if defined(CONFIG_LINUX) static void test_qga_network_get_interfaces(gconstpointer fix) { const TestFixture *fixture = fix; @@ -412,6 +417,7 @@ static void test_qga_network_get_interfaces(gconstpointer fix) qobject_unref(ret); } +#endif static void test_qga_file_ops(gconstpointer fix) { @@ -682,7 +688,7 @@ static void test_qga_blacklist(gconstpointer data) qobject_unref(ret); /* check something work */ - ret = qmp_fd(fix.fd, "{'execute': 'guest-get-fsinfo'}"); + ret = qmp_fd(fix.fd, "{'execute': 'guest-info'}"); qmp_assert_no_error(ret); qobject_unref(ret); @@ -766,6 +772,7 @@ static void test_qga_config(gconstpointer data) g_key_file_free(kf); } +#if defined(CONFIG_LINUX) static void test_qga_fsfreeze_status(gconstpointer fix) { const TestFixture *fixture = fix; @@ -781,6 +788,7 @@ static void test_qga_fsfreeze_status(gconstpointer fix) qobject_unref(ret); } +#endif static void test_qga_guest_exec(gconstpointer fix) { @@ -976,12 +984,17 @@ int main(int argc, char **argv) g_test_add_data_func("/qga/sync", &fix, test_qga_sync); g_test_add_data_func("/qga/ping", &fix, test_qga_ping); g_test_add_data_func("/qga/info", &fix, test_qga_info); +#if defined(CONFIG_LINUX) g_test_add_data_func("/qga/network-get-interfaces", &fix, test_qga_network_get_interfaces); if (!access("/sys/devices/system/cpu/cpu0", F_OK)) { g_test_add_data_func("/qga/get-vcpus", &fix, test_qga_get_vcpus); } g_test_add_data_func("/qga/get-fsinfo", &fix, test_qga_get_fsinfo); + g_test_add_data_func("/qga/fsfreeze-status", &fix, + test_qga_fsfreeze_status); +#endif + g_test_add_data_func("/qga/get-memory-block-info", &fix, test_qga_get_memory_block_info); g_test_add_data_func("/qga/get-memory-blocks", &fix, @@ -993,8 +1006,6 @@ int main(int argc, char **argv) g_test_add_data_func("/qga/invalid-oob", &fix, test_qga_invalid_oob); g_test_add_data_func("/qga/invalid-cmd", &fix, test_qga_invalid_cmd); g_test_add_data_func("/qga/invalid-args", &fix, test_qga_invalid_args); - g_test_add_data_func("/qga/fsfreeze-status", &fix, - test_qga_fsfreeze_status); g_test_add_data_func("/qga/blacklist", NULL, test_qga_blacklist); g_test_add_data_func("/qga/config", NULL, test_qga_config);