From nobody Mon May 25 17:30:05 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1778779441; cv=none; d=zohomail.com; s=zohoarc; b=E+3NVYwL+2hTVCFz+Zl/4TElLFi3p/7Y10XGLyUF+Ig7BZRbLoLClb6w9s4OEllDh54Xe3gWX82f6FltHpXQP/OI9l+CpLQQgcjeGbOM6gCH1ePl6Irs0Zs+bCbgZsIh0EooBZ4Mo9DlK6GhjrlHowkLJERtykogQznbrKja/mI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778779441; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=1dUHUq2pSY7R6GNpMijZrY/mundsQGHsq4YZCZ/UTds=; b=iMEvkjQWeEJ5oKeM7okySb6BZHBhzDFupWMUeSqxLP1bn4Hb1JEvvgMrHYUux9Yn2kh+v4vkliLY1aZNOBPGLtv14QnPjoouRgLbw8kTNYyI4hpbPOZi6xDlufIkBjpP+prlrx/5UHzC2Hc7I19rH83R3jkUNGi5cguCq0JXejY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1778779441718728.7774024229204; Thu, 14 May 2026 10:24:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNZmS-0003dM-PP; Thu, 14 May 2026 13:23:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNZmJ-0003bH-Ob for qemu-devel@nongnu.org; Thu, 14 May 2026 13:23:20 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNZmG-0005iN-Rm for qemu-devel@nongnu.org; Thu, 14 May 2026 13:23:18 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64EBeQJr3951586 for ; Thu, 14 May 2026 17:23:13 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e57kstpdw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 17:23:12 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2bdd327d970so39872eec.1 for ; Thu, 14 May 2026 10:23:12 -0700 (PDT) Received: from hu-pbouvier-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-302944ffdf0sm3828677eec.8.2026.05.14.10.23.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 10:23:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 1dUHUq2pSY7R6GNpMijZrY/mundsQGHsq4YZCZ/UTds=; b=XtaPd/zj8kEWsg7N oFwPjk45QoGBwJkACQcJ5g+SZ06cKuBWK0/LKgMytx48wkxSR06CxL9t9Omk6rJV TUTJvXpfv6+nDQLPlNXUthtk5sXvSwauLHS1WoZhIPUWpCSEbEqYiM4RQiJBx7G4 H9lHLLHahaMYjexIPUtE/L/eMtqKevgUd1jPkAXFpsmlyT70e7SBWYM4vLJCo/sN 01/0a9HRgQ8AwVr/u61s0mejI2j4b3jDzDzVSOIxVWl/DIYUJLtoNFsIe8k30WFq CL+nql7wtMlsNzTrYeWHU0hf4yzwxb2ubga4feJrl0m1hhSul/pdXq8g4qWmPIZ5 FsEMvA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778779392; x=1779384192; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1dUHUq2pSY7R6GNpMijZrY/mundsQGHsq4YZCZ/UTds=; b=gOru9nGowj5s61jwobySAYkSQgSoq4X+6/BbusslXPtCy04hx9721vjOvL+pr2WvXC oB2asSWWlm1R0B6E68iTJm24coPGjvv+E/A3LWcdJOMLBEnDoJ0rYylXoIWPiwek7mx9 Fq0aKeHMvipLev9ek+urZriOdMVYnffr7mcYILcrtoU4SYbsFGkY1aAE9BfH+5biwoUl /IIFulRC9VtdCM/1DeUMPjdws1yKR28MZEgcX7CmRYbOrFmAOU8BVywKe+VS2cutn17T /sRo2KLZ8aQo1emNqnV6dpuD5GHl0eghfPr3O0AMhRMgvpxAVLwBB3HiY+xPYZq8awee hykQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778779392; x=1779384192; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=1dUHUq2pSY7R6GNpMijZrY/mundsQGHsq4YZCZ/UTds=; b=HLQe/GfBehUhxQSXfnPB0EEGSTzX1DYokVeP8QxJf/08Bl5/GvGKK4k1+pCH+HTMbb NHrLPzfi9iYH7Gusv+Kh+fBMPcTgNUMPfcS3oDR+9jEl0nuaTEJ4FVy9zFFs8Dc4jlKS yozRsxGu9TY1eC1ShE13kmpohGJ1a922+SlLbJoL+O/v/2OXyIoQRTSyoUDW/coApyPC iNyAACslX//DjgJmDBi3eBrQiEoHqCIWqv/4aFnOJs0oPnScE2ZClUVNWhJYf7J6EkX+ UcNBai3yBLG6vQKejI+GMJuYnRa7FHCnzgaxUE1a/3FGWPbsNG7ocGPsH6YECkEsI6+n b76g== X-Gm-Message-State: AOJu0YyRGv2CXoapL1Ah+2BVLNiVJg4TXjIsFDLMGxuyKlh8kI2NWsGk q2tbR08gXyMT7ogjRGWD1ulvLF1s2LSrPxGpq9UJ7bmGKTcE0QeVMAQ3ykSd1ou3JYuBRmMB5/j YgDLlRgUDNxXvw1p17ZmVhP/4P42qBNaoBHQVk1Q57v13VqFlGhyPa79RSgQJQBEqazYe X-Gm-Gg: Acq92OFW/jZcx5tjq/rK0BdBGx6l/W+jWE6YIgvx6yU4xdH9DXovC3nvL0Rq/o3NHxX /9rWjjyAWNWPQ7azZ3PqCkrYn3kbE5Sy4UdXW/epzrjOXgIM6urLQzzhQwPq/vFvsPCFPmqBdt4 SnFxVVIpXbDurDZN8S31fZf+vOE1oxuCMqKe3Fbh9iYUsNOqvlgSUO2FMNk85J6uZhqY85ggea5 /EaRKWwWjpuM7IuCnAcUmAYaGAXq2bsPh6t7/Hx6R/kjK07WusVdRG3H/5Z2mNUZ06R6cOtImFS uSBwqgsvHzV7svZECn63a6NtHRnjQSKvBsio7tagt8NxNnJ7XJT29w1dlPUkHJTnKEIlf/Rg5jM B9b/WqBuQ6Zeg8GvkIsNKuronDyVWV51gSxuLxFwW/+f12bG0a7kSnbVmDITE0dgvOTowgEEFe1 Re6z3bIA== X-Received: by 2002:a05:693c:2c8c:b0:2c0:df3b:ec1e with SMTP id 5a478bee46e88-3026188af43mr2689685eec.11.1778779391903; Thu, 14 May 2026 10:23:11 -0700 (PDT) X-Received: by 2002:a05:693c:2c8c:b0:2c0:df3b:ec1e with SMTP id 5a478bee46e88-3026188af43mr2689657eec.11.1778779391348; Thu, 14 May 2026 10:23:11 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Markus Armbruster , Paolo Bonzini , Max Filippov , Anton Johansson , Stefan Hajnoczi , Pierrick Bouvier , Laurent Vivier , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Richard Henderson , Fabiano Rosas , Darren Kenny , Alexander Bulekov Subject: [PATCH v7 1/5] qom/object: register OBJECT and INTERFACE QOM types before main Date: Thu, 14 May 2026 10:22:59 -0700 Message-ID: <20260514172303.1484273-2-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260514172303.1484273-1-pierrick.bouvier@oss.qualcomm.com> References: <20260514172303.1484273-1-pierrick.bouvier@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: VPVEwL1fUO_Q3FnG-AWCh0oZgW9wUiai X-Authority-Analysis: v=2.4 cv=KZbidwYD c=1 sm=1 tr=0 ts=6a060500 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=W37sF3GUcAVBL6lWIEgA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE3NCBTYWx0ZWRfX7BRahggT0RJs S/6jiA7ASSbggRIfuLqMTqgerXIaUbB5MIP5KOD3k56H3LOCIIeNvusCk4NVjUrK1lF/p3kiwIz 1iLqfVQ2vapQaxewLSUD48ZenKCSHuh9u4uND2vFu+4v3qEv10ST3GGqiX6atUw0eBXR9EUFNug yZrcuxG09w7VsHf2g4dAv3/5fEnj52abNDdEeq4hw/QbuJnW15Ko/emNSaq3N+61n08CG+jiO7l ehgiNLkpZhOfbyHJDS6hjXyY3qvPdYg3Gcp6Cks+3sN5b3t6aCtP2wJerKyu/rYMfrePMpsIOmy ZYEgsKJVmmLiwWcO5ucyTj0irrSjjvivDYt/0Dj3vt4kmsYf67ZRMzhGJe4JwirH3k1AZxoj4yh pGCzZTKHVyfxsitZa0H/4mQsRFShGF2kgxw9Oz5VNqc9zfZW6hsmUjW+RaYgFU0NnfyGvx3QuIp Sprl9JLi4IPpPZ7qYjg== X-Proofpoint-ORIG-GUID: VPVEwL1fUO_Q3FnG-AWCh0oZgW9wUiai X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-14_04,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 bulkscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 malwarescore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140174 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=pierrick.bouvier@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1778779444347158500 Those types are special, as they are the base of all other QOM types. In next commit, we'll introduce an extra step in module initialization for target-info-* types. However, those types depend on TYPE_OBJECT, which is only registered at MODULE_INIT_QOM step. To avoid having to introduce another step, and modify all code calling module_call_init(MODULE_INIT_QOM), we simply register those base types directly in the static constructor, before anything else. Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Pierrick Bouvier --- qom/object.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/qom/object.c b/qom/object.c index 59fd79738d2..b82b65a3a18 100644 --- a/qom/object.c +++ b/qom/object.c @@ -2844,7 +2844,7 @@ static void object_class_init(ObjectClass *klass, con= st void *data) NULL); } =20 -static void register_types(void) +static void __attribute__((constructor)) register_types(void) { static const TypeInfo interface_info =3D { .name =3D TYPE_INTERFACE, @@ -2862,5 +2862,3 @@ static void register_types(void) type_interface =3D type_register_internal(&interface_info); type_register_internal(&object_info); } - -type_init(register_types) --=20 2.43.0 From nobody Mon May 25 17:30:05 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1778779441; cv=none; d=zohomail.com; s=zohoarc; b=g56+wVphUoCFu577rr4EeY6NbE9PI96yBrZ+JUfGnLkBVrVqgSXmGd/EfTwqZBaF1nmdVbWSvKUPJJvPABJtUPn/H/CdUq4G39nz+JezOHE85YpvOoDCsWgYLFKaxk6HeUlp1wYerEMzLJFpcVU8nyYBzXUZApenuudcMvpiWoI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778779441; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ulGAOE8HbLb/p8WT3p/HywicgLKOLlWLTHZNeMydSXg=; b=Lw1I0315WPSYbHbhns0UrsG+sVlPDPPuyWIG1/DAMQgwapdRPXklwXd0034BhG/YcQsm/cU66g5zkN7PMPbi+jdyB86H3W6hA6LGhHbCNreqngi8Of19OKO/+XxxEY4WnnScSnGXmg0Iqd25/ucNUWTJdRzzP2OfeaFq6rAjCkc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1778779441623655.7013892474898; Thu, 14 May 2026 10:24:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNZmN-0003c1-GJ; Thu, 14 May 2026 13:23:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNZmK-0003bJ-0i for qemu-devel@nongnu.org; Thu, 14 May 2026 13:23:20 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNZmH-0005iT-Fw for qemu-devel@nongnu.org; Thu, 14 May 2026 13:23:19 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64EBePCT1717706 for ; Thu, 14 May 2026 17:23:14 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e57y7jn3u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 17:23:13 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2f485961555so25511007eec.1 for ; Thu, 14 May 2026 10:23:13 -0700 (PDT) Received: from hu-pbouvier-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-302944ffdf0sm3828677eec.8.2026.05.14.10.23.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 10:23:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= ulGAOE8HbLb/p8WT3p/HywicgLKOLlWLTHZNeMydSXg=; b=AoQaPHvhieiEeN7/ yEWBcJEM9Umiko/6qXpq5wETh0l+neq8sjNqN9Ezoj4RON8lGXdz1OxTrgKUyL62 E2rP4hQYjk+WrQsv0cZB3h3LMOn1AqBa1AtaWnhe2k/GKVDFJ9Cd9Wk72cCkvEFN 3tyT9JcCRMQlIAJkrPC/Nghfr3F4Ue7dfWUtr4wAHZOjVlnIooXi6u99joCJ72be qfxDUydNdyncmRb/FIEQmjSp/AJggE49W/j98XlJFUSW9/R3jJ6Y0aXpvv4dOG7X +4tr/wKHM1g9BWzdMWNlpLCD3nfh5RL0gqB9Q1F30cQNoWdQPURMw8m23H2NVexS 2JM1zQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778779393; x=1779384193; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ulGAOE8HbLb/p8WT3p/HywicgLKOLlWLTHZNeMydSXg=; b=bIYl/YyJVxMcJU2Adcm0CxmCwmwjajsXBiwrx6Jei4HzsR7ik5Q8PLUlzQKLcm/EWm qwy8kGdABebCc4lWweFNijs72hkgvrzjDi4TuX6jp7Wz2rbjvL3ggsX+bSZmK8L4w9Xn WHer8j99Wl+vVdFmnWE96wn5YnGqCgoTEBtKMLbLyymSWbbI7n+CG9pkhgfYsxCxo1KV bH0GwZlOKuHp9g1pHBsNoOfmcpm08yu1NZmAkWF7c7H2cBt4Vyp4WzYOwsReRNETkxPR de3pd02KuWW0pT6VrNLzseLlxXhMwlEjp3njN1Q/C3eex6k8sgL/vjxGXbHiRkojloaP QWfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778779393; x=1779384193; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ulGAOE8HbLb/p8WT3p/HywicgLKOLlWLTHZNeMydSXg=; b=LsQe0nPDTHWRIlFR2mSCPttm40NlHlo1O5rpoAM3eYdEo/0zdZCrDl/ETEyAxPMfE4 eOwtKRwPbC+r6aw+XilHQs43QwaXeDdM2ID4lVn80kY+M5n+/VtKMPHa5YcNcXZ3X9Ga 9llcYvNblnAWtSdJb7EQyXnK9niRb2F0RVYnwVvp62+VzbIWD+hYl0fy8TgwZbT3fmzv lPSP/F35ElSlryjh9rn4Uef9YKp2gBAdQUsl00PNfAXLfyp7YXG3Txt9iiETi+507v6m 3e/f8d81wNEjGNADmAKt2ZEB2mQLgVF2aBpfGy4i6zpm+mfTK1DApw/WgSuGqEOC4ZU6 XCxg== X-Gm-Message-State: AOJu0YymwA+bdJ71jn1FlZaDCbtBC3fW1hNvMchA6WAO8Q+WmOQH4OvG CTBNw9yBP22NjOP4yIRDFLnEWuYQB5VGN++EfFLR+413rtUvQ3pzWAWYnuMlzREsx4fjne8XtYq mBMZYOj1Qif6SQ2wlElyjXZ6ZxWXCxRlBrPNJpRbPep3CadCgZ0L2BI4yRj2PKztaPxOM X-Gm-Gg: Acq92OHqDhn2NaMUUChbQhINswtizRl64sfd3Kmrn+m4YW6zxqNlKIhc6/xCuefqedp Bbq890uk+XjfPuKDXIAC9TamMjn4S7l5hdlADgJ9V2IpKQLMQY+st8bMDbdg5ssQcRNNjQXw2kh ML595HvDLM3jw1HgHCTimHBAbeaCNJ14FHpwM1+NBKgq5EpZ9qYj0pRNgy2OXMhsJ21WhWGkf/K XnDdZogT+rbY3ZgzYEGirQys3e+toEgQL+MRTBOnS2Zb43OYTsy7S1ipRpNcrLvgRKpgabO4Kbw 1U/z6FU3UkoN7Jz1d4HqB0nXsHWZCEXYdGDufJt8ILvzwFYFS6P9QZMiaphxcEZ6BEt1CS7jK0w nXV+TA8T7fOeDFx17+DjUM2H9UETCzI0Q2PvWllb9kJwL8rRIZqUHQjty/raSrZfUHvxmlajHeL Bvt6XPeA== X-Received: by 2002:a05:7300:aacb:b0:2dd:5641:ef2 with SMTP id 5a478bee46e88-30398642912mr203000eec.25.1778779392916; Thu, 14 May 2026 10:23:12 -0700 (PDT) X-Received: by 2002:a05:7300:aacb:b0:2dd:5641:ef2 with SMTP id 5a478bee46e88-30398642912mr202973eec.25.1778779392347; Thu, 14 May 2026 10:23:12 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Markus Armbruster , Paolo Bonzini , Max Filippov , Anton Johansson , Stefan Hajnoczi , Pierrick Bouvier , Laurent Vivier , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Richard Henderson , Fabiano Rosas , Darren Kenny , Alexander Bulekov Subject: [PATCH v7 2/5] qom/object: initialize type_table in static ctor with fundamental QOM types Date: Thu, 14 May 2026 10:23:00 -0700 Message-ID: <20260514172303.1484273-3-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260514172303.1484273-1-pierrick.bouvier@oss.qualcomm.com> References: <20260514172303.1484273-1-pierrick.bouvier@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: _57w-I-ddkIg4R2nc5SvUHxzyU479xp2 X-Authority-Analysis: v=2.4 cv=UY9hjqSN c=1 sm=1 tr=0 ts=6a060501 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=pDBHowQsxXgegazyqkAA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: _57w-I-ddkIg4R2nc5SvUHxzyU479xp2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE3NCBTYWx0ZWRfX3vDMyfNqiFBz iYFfY6mj36bvAbSaSX75sz/INf6El35rcIsoL0l4LlWguUIt8OtbqkrgrrPY2vFiwGqa1NJo55M iqx41NKw2nImw6J+ufMdDi+5Gk8fxVeNw4bkdVd9UJyH5KWFeMtdJ0sZtMJm67y4fcxUZv8Nutd CjODf/THzqVpEXveV8pKtm/XvMnn6VOf+pHRsUmS9Yr06FgUu+aoIgJ2N+vEf1setKzrIedwhhk a8WHs5Mzy0vZUKMHPEry2eiVL4wt6iOpdMpT5b6LHckq1PkJF65El85UDiuQRqHrtXdAwbvadQ0 oWpLgLqg50FA2BhVMVcLnk9e5sMnK27d7afNwPOu6+7LNE0DGd8l2T9CGIb2FnBidRPc856fxYs uEugm/Lo9x082aT0lYQoSDO1M5G8UVXktUIQd6ReUADZ6/qMc58cvGIwccw6EWBFjRaWHUC8SK2 WYUT+GoexVnxJ5rbN/A== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-14_04,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 clxscore=1015 lowpriorityscore=0 priorityscore=1501 bulkscore=0 impostorscore=0 phishscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140174 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=pierrick.bouvier@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1778779444670158500 This saves us having to check if it's initialized everytime we have to access it. No other QOM type should be initialized or accessed during static ctor calls, so we don't depend on their ordering. Suggested-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier --- qom/object.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/qom/object.c b/qom/object.c index b82b65a3a18..dfdc5c8e424 100644 --- a/qom/object.c +++ b/qom/object.c @@ -76,28 +76,19 @@ struct TypeImpl =20 static Type type_interface; =20 -static GHashTable *type_table_get(void) -{ - static GHashTable *type_table; - - if (type_table =3D=3D NULL) { - type_table =3D g_hash_table_new(g_str_hash, g_str_equal); - } - - return type_table; -} +static GHashTable *type_table; =20 static bool enumerating_types; =20 static void type_table_add(TypeImpl *ti) { assert(!enumerating_types); - g_hash_table_insert(type_table_get(), (void *)ti->name, ti); + g_hash_table_insert(type_table, (void *)ti->name, ti); } =20 static TypeImpl *type_table_lookup(const char *name) { - return g_hash_table_lookup(type_table_get(), name); + return g_hash_table_lookup(type_table, name); } =20 static TypeImpl *type_new(const TypeInfo *info) @@ -1069,7 +1060,7 @@ void object_class_foreach(void (*fn)(ObjectClass *kla= ss, void *opaque), OCFData data =3D { fn, implements_type, include_abstract, opaque }; =20 enumerating_types =3D true; - g_hash_table_foreach(type_table_get(), object_class_foreach_tramp, &da= ta); + g_hash_table_foreach(type_table, object_class_foreach_tramp, &data); enumerating_types =3D false; } =20 @@ -2859,6 +2850,7 @@ static void __attribute__((constructor)) register_typ= es(void) .abstract =3D true, }; =20 + type_table =3D g_hash_table_new(g_str_hash, g_str_equal); type_interface =3D type_register_internal(&interface_info); type_register_internal(&object_info); } --=20 2.43.0 From nobody Mon May 25 17:30:05 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1778779451; cv=none; d=zohomail.com; s=zohoarc; b=Fks+ymZ5RDFS7SVAXTfZLScyS7hRZ8iKYcOQeEgICcPOiHQroi8hIluavgMB0f7dYXRUmXdcYUsD9XCUk8LSq5ZUxQHuAJ09dzSz05poY+EiS0c/TlNv7l+mTELlJcM0ANVVA5PW9jfjn6lygU6ANGpS/hvVwf4qwlXamtNL5hE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778779451; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=56zJbIUISuyRpp3I63HPlBU6dDH2i8snj2xv/ehIZ0o=; b=PjAz9eb9K1BCrGxiRbrR1P4SIVYJoSkYrtCC9G9oioVsjTPWaNP6nUi6TNZb+3Y60YHyLhYgjlLEx50pDHqKJ/ugU36JqZDK3QnY+VjxlbZzSX94X/LKL7jeVbxAQFqF0nQ+7PO5HrS7coPcaFofvMEDtynIPR1L8+E9xp+RPPs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1778779451194353.1499839918115; Thu, 14 May 2026 10:24:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNZmR-0003cz-Uh; Thu, 14 May 2026 13:23:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNZmL-0003bk-KV for qemu-devel@nongnu.org; Thu, 14 May 2026 13:23:22 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNZmJ-0005j2-G1 for qemu-devel@nongnu.org; Thu, 14 May 2026 13:23:21 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64EBeTU61717872 for ; Thu, 14 May 2026 17:23:17 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e57y7jn45-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 17:23:17 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2f3ec2e8d07so5951006eec.1 for ; Thu, 14 May 2026 10:23:17 -0700 (PDT) Received: from hu-pbouvier-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-302944ffdf0sm3828677eec.8.2026.05.14.10.23.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 10:23:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 56zJbIUISuyRpp3I63HPlBU6dDH2i8snj2xv/ehIZ0o=; b=kK+ir73FCENJPWov UNW9HLCLN+YVoCmGic49XEMliUWeRQLOWxf2eloEsr2AE2Y+0KjafL4NLyUQD4l+ 8e9IJhED0gzSF1fASvfOooU+TlLqRawFGQzSuAPNUOfH/N2TlZ90nwcl84mP+LHK 2kwbkGwGGhc9G0CqMaOmSmW1cNW3FjTVLAIKbiv4gZ9ovaKm7MY9W53v9Uj7O04R l7wIaLjxmGTve/JETcwk3lcv9E99BS3aNZkot20H18PeIRoxSB4qZHSZhhW3dMA2 NGXphEMzCMojrjPQiT8kyltomtT/IRJ0RNlVkakimbSuO6wtTE4xLMrN1QGb6Qen zCqnGw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778779394; x=1779384194; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=56zJbIUISuyRpp3I63HPlBU6dDH2i8snj2xv/ehIZ0o=; b=gj55NyGbaF/Of9zNUw1WT30fnOuMinBl/3kqRVpuVKxq7lZLlw8JUPK47cWXYJMrWQ TBQAVVOLgZ/omy/j7K9n8Gp3N7xZssPOGiX7U3JYzc8i+ZcpiGx2lLL7LT5uYJlS57P2 uvKgfmQUDeMEQqzkRx+aV3oKHl1n/3uiZp3l+J+LYO66k695b653P70eewZXW1a+3OyA X10dfW7tppdO6ecrJpGhLL+Ir4cQIlMbYXn/oYgpLWPqTocVn75uHxUJLwadYdEBe80R Ml9Bl4THWLCU0C19Zemu6pA/9o2lCasdO3CR+n38ZyUD+liJFtBVjFE9wtiKqAeaVgqt D/jQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778779394; x=1779384194; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=56zJbIUISuyRpp3I63HPlBU6dDH2i8snj2xv/ehIZ0o=; b=oCwKg65FKC6c+KTSXSIe4KreZIOEVTWu3/lIT/4Sb5dBvlpiWzDBMBc3KA7jzFcLN+ zLVOWAGeMzFLDZ+WnZXkWqpnUrMbNJJMZv5yaimN3OWEOhU3dvfHz+hX9jdp8GodeXGZ Brb7YLtxkMsCu5G4MEoZW2KcMnVQmx5vp9XpzKs+FdsY9khPkG3w7hXfes4vtqVkLsrh BBSfn+w4HpqcqK0cuQvPZZu07JWeCeyaTgO7F8De2Pbz+tf3zGQ2syB/xizrCWLHKtSQ 2OTKm2bVeAuGQ341KMHgfZzPrQ17xZxqMUnF2Vf9nXGt+bP2ZIOU/5D+kJcQldzsaee6 q+nA== X-Gm-Message-State: AOJu0Yyk2x52vx6wgvN0L59wT0zHupV675TyjNK7OHSVAkqkBEopKmQS 4oysp8LhvblZTHBEWNAM6rmRFrhWD0kOpSXq4E5tv28GNXOULjVytBw+BvNBYAW3Hki4MsG56tT L1fNjA8TiRr9W7OEDO+//0nvoPZXURQaagbwiizFfSIvUUhZB1LzfYcIE4BbdNJSC2mgd X-Gm-Gg: Acq92OEsl/NoS8+MKVzg810STXrybk3Dx1fiS6Oefzo5faUa1K7Nst/sw7fJ02CYdTW kD+vXhQ+GGivnXhVekpxev9a/OV9iOE+Wi/yL/ms0HuOnbqeCHFpmGs89NwItTtP4LaoXP2+YfN oiS5mZ63cu3GG/b20TGYnlBdVAKoN5/PJX9UpE3i/FK3XbAb/O2IIi0s0mEp8YmVEPJc2DNBCH0 qO2ZAaGndewE+obuTeklH6Bgp1/gdtPXU6V3cklRQS0h3ho/dYVFP3H6L2C1kBPRwb3S7g+/Ed+ aeAelnyNLHSJcPtM9lcorlKM82zy9iX33ZJNJ1JMayjdbZQVs/Hv5NjKr9kGY52Yw9uFxkjlUoQ c2/rp3BqN5lvSh+yplvVoPc8u3V6izfRDwYCzoCnyL82eL/p4+pMfR7GJ9CVjX86IRtYPCMOFB6 OZFLTbhw== X-Received: by 2002:a05:7300:6429:b0:2f5:3641:f10f with SMTP id 5a478bee46e88-30398695003mr236244eec.31.1778779394146; Thu, 14 May 2026 10:23:14 -0700 (PDT) X-Received: by 2002:a05:7300:6429:b0:2f5:3641:f10f with SMTP id 5a478bee46e88-30398695003mr236200eec.31.1778779393409; Thu, 14 May 2026 10:23:13 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Markus Armbruster , Paolo Bonzini , Max Filippov , Anton Johansson , Stefan Hajnoczi , Pierrick Bouvier , Laurent Vivier , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Richard Henderson , Fabiano Rosas , Darren Kenny , Alexander Bulekov Subject: [PATCH v7 3/5] target-info: introduce TargetInfo in QOM Date: Thu, 14 May 2026 10:23:01 -0700 Message-ID: <20260514172303.1484273-4-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260514172303.1484273-1-pierrick.bouvier@oss.qualcomm.com> References: <20260514172303.1484273-1-pierrick.bouvier@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: r1oT845bYPiHuG222XQBP_Dw2aLG2JcA X-Authority-Analysis: v=2.4 cv=UY9hjqSN c=1 sm=1 tr=0 ts=6a060505 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=1sXc0-TY3SvF7pvsHhYA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: r1oT845bYPiHuG222XQBP_Dw2aLG2JcA X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE3NCBTYWx0ZWRfX3ragOK26RD10 BJYm0ky9u1bePg/0jA8muGYHRm0tBTShhpnoYUDleRv2mlapyc5dVAechHIjnDX9RXEvdSiE6t/ gFks+NLh3YbqfhLOD1muY4M/y6O//P6J0mhlq456P0dqBTaItmzAUIndK2KmfEpE0LgvfPPoRjL 0yz7zBydM1b7AuKrCYEf9olh1u3yF+Gsx8hUy9Ba105RhBAAkhipnOnI1R5q7riPXs4aynwE1I8 2uIUNaLUgQrL+UPAwVygzREDvOg7YWBGMnQ4OHa8WlCCQH32CCh+ZEADYwybdgVMUWjrFMCdBYP HHn6Qjc1DLqPP5sUIK0VlnqMJQw34HnfzzhJiufGxIjVJQpvHKwbHodD0i1wnLum0LlO9ygal03 zdMDc3xg8faRKSTrqXuyha2kOKp+8R5fdL7mYIPQgznhyPBTPt38gQLQdg8r4O0Y0xkvKmQee9p yj8MRkRYVcZtt7O4H6g== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-14_04,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 clxscore=1015 lowpriorityscore=0 priorityscore=1501 bulkscore=0 impostorscore=0 phishscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140174 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=pierrick.bouvier@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1778779452195158500 For the single-binary, we want to be able to retrieve at runtime the current target among the different ones available. A consequence is that we can't rely on existing target_info() definition since it will create a conflict once more than one target is available. To solve this, we add TargetInfo in QOM, with this hierarchy. We define one class "target-info-X" per target, that inherits from abstract class "target-info". Using concrete vs abstract class ensure we can easily filter "target-info-X" from all QOM types. Associated TargetInfo is directly set through class initialization, without relying on any instance. For user mode, we simply define target_info() like it was done previously. In this patch, we keep the same definition for system-mode also, and it will be replaced in next commits. We will introduce detection of target from QOM, so we need to make sure those types are registered early. Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Pierrick Bouvier --- configs/targets/aarch64-softmmu.c | 6 ++-- configs/targets/arm-softmmu.c | 6 ++-- include/qemu/module.h | 1 + include/qemu/target-info-init.h | 58 +++++++++++++++++++++++++++++++ include/qemu/target-info-qom.h | 28 +++++++++++++++ system/vl.c | 2 ++ target-info-qom.c | 24 +++++++++++++ target-info-stub.c | 6 ++-- tests/qtest/fuzz/fuzz.c | 1 + 9 files changed, 120 insertions(+), 12 deletions(-) create mode 100644 include/qemu/target-info-init.h create mode 100644 include/qemu/target-info-qom.h diff --git a/configs/targets/aarch64-softmmu.c b/configs/targets/aarch64-so= ftmmu.c index 82ccb575759..75d95b0e743 100644 --- a/configs/targets/aarch64-softmmu.c +++ b/configs/targets/aarch64-softmmu.c @@ -8,6 +8,7 @@ =20 #include "qemu/osdep.h" #include "qemu/target-info-impl.h" +#include "qemu/target-info-init.h" #include "hw/arm/machines-qom.h" #include "target/arm/cpu-qom.h" #include "target/arm/cpu-param.h" @@ -23,7 +24,4 @@ static const TargetInfo target_info_aarch64_system =3D { .page_bits_init =3D TARGET_PAGE_BITS_LEGACY, }; =20 -const TargetInfo *target_info(void) -{ - return &target_info_aarch64_system; -} +target_info_init(target_info_aarch64_system) diff --git a/configs/targets/arm-softmmu.c b/configs/targets/arm-softmmu.c index 18940e51e55..73546fa5737 100644 --- a/configs/targets/arm-softmmu.c +++ b/configs/targets/arm-softmmu.c @@ -8,6 +8,7 @@ =20 #include "qemu/osdep.h" #include "qemu/target-info-impl.h" +#include "qemu/target-info-init.h" #include "hw/arm/machines-qom.h" #include "target/arm/cpu-qom.h" #include "target/arm/cpu-param.h" @@ -23,7 +24,4 @@ static const TargetInfo target_info_arm_system =3D { .page_bits_init =3D TARGET_PAGE_BITS_LEGACY, }; =20 -const TargetInfo *target_info(void) -{ - return &target_info_arm_system; -} +target_info_init(target_info_arm_system) diff --git a/include/qemu/module.h b/include/qemu/module.h index 9885ac9afb3..fccf017bf9e 100644 --- a/include/qemu/module.h +++ b/include/qemu/module.h @@ -43,6 +43,7 @@ typedef enum { MODULE_INIT_MIGRATION, MODULE_INIT_BLOCK, MODULE_INIT_OPTS, + MODULE_INIT_TARGET_INFO, MODULE_INIT_QOM, MODULE_INIT_TRACE, MODULE_INIT_XEN_BACKEND, diff --git a/include/qemu/target-info-init.h b/include/qemu/target-info-ini= t.h new file mode 100644 index 00000000000..32c323a7ef9 --- /dev/null +++ b/include/qemu/target-info-init.h @@ -0,0 +1,58 @@ +/* + * QEMU target info initialization + * + * Copyright (c) Qualcomm + * + * SPDX-License-Identifier: GPL-2.0-or-later + * + * This file is included by each file defining a TargetInfo structure and = is + * responsible for registering it. + */ + +#ifndef QEMU_TARGET_INFO_INIT_H +#define QEMU_TARGET_INFO_INIT_H + +#define DEFINE_TARGET_INFO_TYPE(info) = \ +static void do_qemu_init_target_info(void) = \ +{ = \ + type_register_static(&info); = \ +} = \ +module_init(do_qemu_init_target_info, MODULE_INIT_TARGET_INFO) + +#ifdef COMPILING_PER_TARGET +#ifdef CONFIG_USER_ONLY + +/* + * User mode does not support multiple targets in the same binary, so just + * define target_info(). + */ +#define target_info_init(ti_var) \ +const TargetInfo *target_info(void) \ +{ \ + return &ti_var; \ +} + +#else /* CONFIG_USER_ONLY */ + +#include "qemu/target-info-qom.h" +#include "qom/object.h" + +#define target_info_init(ti_var) = \ +const TargetInfo *target_info(void) = \ +{ = \ + return &ti_var; = \ +} = \ + = \ +static const TypeInfo target_info_qom_target_type_info =3D { = \ + .name =3D TYPE_TARGET_INFO"-"TARGET_NAME, = \ + .parent =3D TYPE_TARGET_INFO, = \ + .instance_size =3D sizeof(TargetInfoQom), = \ + .class_size =3D sizeof(TargetInfoQomClass), = \ + .class_data =3D &ti_var, = \ +}; = \ +DEFINE_TARGET_INFO_TYPE(target_info_qom_target_type_info) + +#endif /* CONFIG_USER_ONLY */ +#endif /* COMPILING_PER_TARGET */ + +#endif /* QEMU_TARGET_INFO_INIT_H */ diff --git a/include/qemu/target-info-qom.h b/include/qemu/target-info-qom.h new file mode 100644 index 00000000000..585995c7ad0 --- /dev/null +++ b/include/qemu/target-info-qom.h @@ -0,0 +1,28 @@ +/* + * QEMU target info QOM types + * + * Copyright (c) Qualcomm + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef QEMU_TARGET_INFO_QOM_H +#define QEMU_TARGET_INFO_QOM_H + +#include "qemu/target-info-impl.h" +#include "qom/object.h" + +#define TYPE_TARGET_INFO "target-info" + +typedef struct TargetInfoQom { + Object parent_obj; +} TargetInfoQom; + +typedef struct TargetInfoQomClass { + ObjectClass parent_class; + const TargetInfo *target_info; +} TargetInfoQomClass; + +OBJECT_DECLARE_TYPE(TargetInfoQom, TargetInfoQomClass, TARGET_INFO) + +#endif /* QEMU_TARGET_INFO_QOM_H */ diff --git a/system/vl.c b/system/vl.c index d2f4044e5d8..e44da0941d4 100644 --- a/system/vl.c +++ b/system/vl.c @@ -2889,6 +2889,8 @@ void qemu_init(int argc, char **argv) =20 os_setup_limits(); =20 + module_call_init(MODULE_INIT_TARGET_INFO); + module_init_info(qemu_modinfo); module_allow_arch(target_name()); =20 diff --git a/target-info-qom.c b/target-info-qom.c index 7fd58d24818..79752366b61 100644 --- a/target-info-qom.c +++ b/target-info-qom.c @@ -7,7 +7,11 @@ */ =20 #include "qemu/osdep.h" +#include "qapi/error.h" #include "qom/object.h" +#include "qemu/target-info-impl.h" +#include "qemu/target-info-init.h" +#include "qemu/target-info-qom.h" #include "hw/arm/machines-qom.h" =20 static const TypeInfo target_info_types[] =3D { @@ -22,3 +26,23 @@ static const TypeInfo target_info_types[] =3D { }; =20 DEFINE_TYPES(target_info_types) + +static void target_info_qom_class_init(ObjectClass *oc, const void * data) +{ + TargetInfoQomClass *klass =3D TARGET_INFO_CLASS(oc); + klass->target_info =3D data; +} + +static const TypeInfo target_info_parent_type =3D { + .name =3D TYPE_TARGET_INFO, + .parent =3D TYPE_OBJECT, + .instance_size =3D sizeof(TargetInfoQom), + .class_size =3D sizeof(TargetInfoQomClass), + /* use class_base_init so children classes can set class_data accordin= gly */ + .class_base_init =3D target_info_qom_class_init, + /* children classes will be concrete, which allows to easily query them + * without listing this parent class also */ + .abstract =3D true, +}; + +DEFINE_TARGET_INFO_TYPE(target_info_parent_type) diff --git a/target-info-stub.c b/target-info-stub.c index 07d8647ed8e..22b7911201c 100644 --- a/target-info-stub.c +++ b/target-info-stub.c @@ -9,6 +9,7 @@ #include "qemu/osdep.h" #include "qemu/target-info.h" #include "qemu/target-info-impl.h" +#include "qemu/target-info-init.h" #include "hw/core/boards.h" #include "cpu.h" #include "exec/cpu-defs.h" @@ -41,7 +42,4 @@ static const TargetInfo target_info_stub =3D { #endif }; =20 -const TargetInfo *target_info(void) -{ - return &target_info_stub; -} +target_info_init(target_info_stub) diff --git a/tests/qtest/fuzz/fuzz.c b/tests/qtest/fuzz/fuzz.c index d2355989616..de230d20e0f 100644 --- a/tests/qtest/fuzz/fuzz.c +++ b/tests/qtest/fuzz/fuzz.c @@ -172,6 +172,7 @@ int LLVMFuzzerInitialize(int *argc, char ***argv, char = ***envp) =20 /* Initialize qgraph and modules */ qos_graph_init(); + module_call_init(MODULE_INIT_TARGET_INFO); module_call_init(MODULE_INIT_FUZZ_TARGET); module_call_init(MODULE_INIT_QOM); module_call_init(MODULE_INIT_LIBQOS); --=20 2.43.0 From nobody Mon May 25 17:30:05 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1778779441; cv=none; d=zohomail.com; s=zohoarc; b=W/FtnRovYAECHOMo2h6j3L0/Clos0GUjvlwQ5DZvP8Gv9Q0pwz6VCeFn3hdIRlGGIS2iJTXTAO41cOBDUcS63mm9zUQvY9D2zMGvHNvYc2J190l71o8qTcHlPrb3U3NboiCqLOXE+wWc+VcrzY139fpKYTZb8pIi3uK7PmefUPA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778779441; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=YT2tyTyZY3pjT45Atqj6B2IVwPHfvfmCb9TBLDMZRU4=; b=QrgSYoJfhoMRaq3hGAu/Ckyekn6k3QmMWi0Te1KpRxFDMqmwbqrXKzV86Y1CTi7ycV1RM4K9/UgDOHaTksEX/1Vcewhnu+ZryJsFrBZQDDnsUm1Vqfv+OFtj5H+KhzadJ3QNucO+Pk9M0CzGMxTlokQaVFXhX5EeieDXzKcudRI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1778779441738537.0064264219275; Thu, 14 May 2026 10:24:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNZmR-0003cj-Bn; Thu, 14 May 2026 13:23:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNZmK-0003bK-5m for qemu-devel@nongnu.org; Thu, 14 May 2026 13:23:20 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNZmH-0005iw-G1 for qemu-devel@nongnu.org; Thu, 14 May 2026 13:23:19 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64EBeXAu2241739 for ; Thu, 14 May 2026 17:23:15 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e513gbtan-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 17:23:15 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30230e64087so1987466eec.0 for ; Thu, 14 May 2026 10:23:15 -0700 (PDT) Received: from hu-pbouvier-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-302944ffdf0sm3828677eec.8.2026.05.14.10.23.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 10:23:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= YT2tyTyZY3pjT45Atqj6B2IVwPHfvfmCb9TBLDMZRU4=; b=QFDbADXtaghiDdv0 u8XGNmNte6mbb/zZDkZDHZoay3V6vh5+SzCeXnVTE4MAPY6lWqOdGk1onbZHwYiM isWoyvqv1IdSY1cSJmGH3WR0rovzRa244zsCm2LqaItCSUx0dgqhN7Px9paOftxu CFbPtKMqXBsHSruE9Dlm2HAhttkr84wFq2FSQsXlMWYzagLdNES1b1I0urlhlQgv 6Fo8DA+dGFnNriBXmWedb8kzhGQc1mjZBy7883A+gLsbaUR8rTpO/BA5LObwxMp4 J0bxH1hxE8fG/887azOMrX8QdLlLVq6XZsCNPKXNwgZaFu4vAKTpkYQ+Cq67LZvf U/I5JA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778779395; x=1779384195; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YT2tyTyZY3pjT45Atqj6B2IVwPHfvfmCb9TBLDMZRU4=; b=RzLLf5or3TO+nJcKxCgMKZbcM8fflSosiZnouXhaayMAARDjNCXo0AHNhEyISFsvYA dOYU0z048jjYcQI6E231JPKFZHhm969/ei1FTIh87XUrMVsBv8wG5jmT6mgLYmXskBuU awf78+MGPe0YiK2X/9k3ud1R8a62Vj3qCAal+cOkxBPSGRApX4eFuZcJLvVUgBC5eGoh 36X8JkKbUU6wJUAk4glgynAimoQKj+casw9rbk+JL9Hsfs1jPxwSqIB0e8PyHPcvGyar hi1F124yhGIzSKUJ/FoLPQDG5D3Ps3WXMhAf4YvdqIK8jCyzh8Y08buse+4vyTAWnJ+Z Y+7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778779395; x=1779384195; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=YT2tyTyZY3pjT45Atqj6B2IVwPHfvfmCb9TBLDMZRU4=; b=Rn+QXPUgikaiveAS621e3QWkKBcs1nVpEMB4MAbbpEE2E1wAPkWpaO/Hv7jcprsCUN Ye4WBjDHCVxm5scbpZLlsjViyn73bZ5mpPVKQXWOiRGGA/k4VPSFgtFZyRdVV2oiEy+f usEFUgkIMXA6gzgfC243y1DVO9cO+686e6wIxF7bE+7UWervazpTWT2FJiBtNrX16F1Q ysjqGsKXWO9A9vPSCqWyVS2D/kl1UIXgjc8m/q16KQ/m7p3jJUakJm59W2EwQurNwSoq 3lt2/H4rU/GKS594pS84hvqSM9wL3NwdJF6XXoiAHA8XwMMWGijR6WUgoyErwrttcIIJ gOdQ== X-Gm-Message-State: AOJu0YzcPOuROcT3/gM9LYqf6/+dLUG+2ObaSSkC4jfvvA3rFffguhdI wIEpvQpYc1WvxguNc5SsguBFDgk3fJ5A8kzPz043CdTI/qM0Z3Tosp7RRFzq/q8KPqHVGipDcqi B0NAQrHlTs2Ph/VBQDNz2VP8nbPImni3jAp3Si9TmDLSS8w8eSJy4uZttZUJWf8Vj9Q1F X-Gm-Gg: Acq92OG4aGj0C+HK7hjgoll/bzLjvz93jj2H4AJbxeH3gK9ggEAZuxW7suI3BMkC4nZ ugQR4dJzpQ5G1WomHs8wraz/iBYXCPUJFX62Jhf9eDQ7Bh20APXQAWsFxkCmiq8mDRLMThkJ+Cr TczHHCDjHnyCB4ZwzeSzcp1pCj7vzuvOevAUFgnsH3yqVllLDfn1zcs4HmzKy6jyGR9UgCZnc/h Zf56TPiyS2sZG5jQ8RImsPT99xwRe/J5eb8+RX1SXtdQMCjGi1P2GALEPHTWdpdJ1zBZqetXiTd PInXKjJ+P4DaeewmicFbtSUABbOt2245Bil0bRcjqoTuV+iQnwzsrJVgopDSMTaYMuxfq4MJM5g 41jveKa4hQIFxYm+CdVT6Jk5VE4sRof3+Np2yaWZlnca/Li1o7OrIL3zTI44zTgnIAJKpY3pxQ2 mWwQ+E2Q== X-Received: by 2002:a05:7301:688:b0:2e2:5bc5:f8eb with SMTP id 5a478bee46e88-303982c04demr250744eec.9.1778779394989; Thu, 14 May 2026 10:23:14 -0700 (PDT) X-Received: by 2002:a05:7301:688:b0:2e2:5bc5:f8eb with SMTP id 5a478bee46e88-303982c04demr250709eec.9.1778779394444; Thu, 14 May 2026 10:23:14 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Markus Armbruster , Paolo Bonzini , Max Filippov , Anton Johansson , Stefan Hajnoczi , Pierrick Bouvier , Laurent Vivier , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Richard Henderson , Fabiano Rosas , Darren Kenny , Alexander Bulekov Subject: [PATCH v7 4/5] target-info-qom: detect target from QOM Date: Thu, 14 May 2026 10:23:02 -0700 Message-ID: <20260514172303.1484273-5-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260514172303.1484273-1-pierrick.bouvier@oss.qualcomm.com> References: <20260514172303.1484273-1-pierrick.bouvier@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE3NCBTYWx0ZWRfX+kUv4wd39JR8 psVSwW4XANOTse96L0y/wfhdhhraAFBMqadVuDYRfpbQKB6ASSffILjqQM4ZoIR9KYvjEuxyPKl GHW2j/4PIVoQJoa/ubMslmvBHok2um0gYGuRUXJDy3izjdBaGc7nevBf926JmgVmoeS//H+mhty Fj3lKW+yuRaONBL0scMC88bd7pshw3OBU0aLrQO8bQw53CtPwbidqGIKO5vtwoGFRTpKeoddEmx n3uqk4l4P86J80LvFMYTh0M88O5jBfpCAgPYK4ZCrUefuZtYae5TT+VmCwjXwCKJsI5Sf5OO6YJ YXLL+nvROVYdrO3ZEIKhUnzH5/9H0mWOs7e57FiA2/kbKC6sAGf8r1i1+c+/8HpO+pvWa1Fo46N 379jL8gF42UdS5q7oTAwi08OI94s30Kkze205H3HPIXsdRQI81a41zgloq16HGA3WrjBBeYuFtd yRSJ15u2XcU+njT2Cmw== X-Proofpoint-ORIG-GUID: RJP3l10lwrhzQnwesQkJbCTDKibkZakN X-Authority-Analysis: v=2.4 cv=Iba3n2qa c=1 sm=1 tr=0 ts=6a060503 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=20KFwNOVAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=Ta8ybb0yH1EomjxcGswA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: RJP3l10lwrhzQnwesQkJbCTDKibkZakN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-14_04,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 clxscore=1015 spamscore=0 adultscore=0 malwarescore=0 suspectscore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140174 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=pierrick.bouvier@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1778779444373158500 For now, we expect only one target to be available at runtime. This will change with the single-binary and we'll detect which one to use dynamically. Reviewed-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Pierrick Bouvier --- include/qemu/target-info-qom.h | 2 ++ system/vl.c | 2 ++ target-info-qom.c | 16 ++++++++++++++++ tests/qtest/fuzz/fuzz.c | 2 ++ 4 files changed, 22 insertions(+) diff --git a/include/qemu/target-info-qom.h b/include/qemu/target-info-qom.h index 585995c7ad0..91be415ed33 100644 --- a/include/qemu/target-info-qom.h +++ b/include/qemu/target-info-qom.h @@ -25,4 +25,6 @@ typedef struct TargetInfoQomClass { =20 OBJECT_DECLARE_TYPE(TargetInfoQom, TargetInfoQomClass, TARGET_INFO) =20 +void target_info_qom_set_target(void); + #endif /* QEMU_TARGET_INFO_QOM_H */ diff --git a/system/vl.c b/system/vl.c index e44da0941d4..e690aa3ed8c 100644 --- a/system/vl.c +++ b/system/vl.c @@ -28,6 +28,7 @@ #include "qemu/units.h" #include "qemu/module.h" #include "qemu/target-info.h" +#include "qemu/target-info-qom.h" #include "exec/cpu-common.h" #include "exec/page-vary.h" #include "hw/core/qdev-properties.h" @@ -2890,6 +2891,7 @@ void qemu_init(int argc, char **argv) os_setup_limits(); =20 module_call_init(MODULE_INIT_TARGET_INFO); + target_info_qom_set_target(); =20 module_init_info(qemu_modinfo); module_allow_arch(target_name()); diff --git a/target-info-qom.c b/target-info-qom.c index 79752366b61..9947fcc9922 100644 --- a/target-info-qom.c +++ b/target-info-qom.c @@ -46,3 +46,19 @@ static const TypeInfo target_info_parent_type =3D { }; =20 DEFINE_TARGET_INFO_TYPE(target_info_parent_type) + +static const TargetInfo *target_info_ptr; + +void target_info_qom_set_target(void) +{ + g_autoptr(GSList) targets =3D object_class_get_list(TYPE_TARGET_INFO, = false); + + size_t num_found =3D g_slist_length(targets); + if (num_found !=3D 1) { + error_setg(&error_fatal, num_found =3D=3D 0 ? + "no target-info is available" : + "more than one target-info is available"); + } + + target_info_ptr =3D TARGET_INFO_CLASS(targets->data)->target_info; +} diff --git a/tests/qtest/fuzz/fuzz.c b/tests/qtest/fuzz/fuzz.c index de230d20e0f..a3a131c80f8 100644 --- a/tests/qtest/fuzz/fuzz.c +++ b/tests/qtest/fuzz/fuzz.c @@ -22,6 +22,7 @@ #include "system/runstate.h" #include "qemu/main-loop.h" #include "qemu/rcu.h" +#include "qemu/target-info-qom.h" #include "tests/qtest/libqtest.h" #include "tests/qtest/libqos/qgraph.h" #include "fuzz.h" @@ -173,6 +174,7 @@ int LLVMFuzzerInitialize(int *argc, char ***argv, char = ***envp) /* Initialize qgraph and modules */ qos_graph_init(); module_call_init(MODULE_INIT_TARGET_INFO); + target_info_qom_set_target(); module_call_init(MODULE_INIT_FUZZ_TARGET); module_call_init(MODULE_INIT_QOM); module_call_init(MODULE_INIT_LIBQOS); --=20 2.43.0 From nobody Mon May 25 17:30:05 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1778779441; cv=none; d=zohomail.com; s=zohoarc; b=nRvefP1pcaLz+TOtMEHkfsZx9Yv8OCGOmpaLb68+Y6P4/TxaMjykQyPAc+TMeLOgyZxTGHU0C/7ma1mx+ChRnRtb95fUKfyx2+xG2FCM0rD1eu9GKHaJAtm2NOqDH7Y1oS4Gwq4SYar2a9unoa4Vd66EdbP4Z02BfwQvS7ay6lM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778779441; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Uf/5jLZ/NET2/tvaeuFYNcja/q48puCNeH8wc3fMTqA=; b=mrchG+AUuk46zRRrlTa0aG7nPz6X9tjr+38mBRnmv8Ngl1R6D4nVfkFEyfyfT3/ILatRJ8XSP8GtQuLbkEsE6JFvSRiA4wEdU689OMXqL9C4+tcUZ10VjdVg6E7WXWJrq6QqjSm/hhanQxF+eWUAQePzEa1Vf3JyHrdIoOL6B/g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17787794419441012.9749382212597; Thu, 14 May 2026 10:24:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNZmS-0003d1-CE; Thu, 14 May 2026 13:23:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNZmM-0003c2-TZ for qemu-devel@nongnu.org; Thu, 14 May 2026 13:23:23 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNZmL-0005jk-BV for qemu-devel@nongnu.org; Thu, 14 May 2026 13:23:22 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64EBeaop2241778 for ; Thu, 14 May 2026 17:23:19 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e513gbtb1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 17:23:19 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2f485961555so25511862eec.1 for ; Thu, 14 May 2026 10:23:19 -0700 (PDT) Received: from hu-pbouvier-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-302944ffdf0sm3828677eec.8.2026.05.14.10.23.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 10:23:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Uf/5jLZ/NET2/tvaeuFYNcja/q48puCNeH8wc3fMTqA=; b=e1beL7kijEWeXrZQ sMqam16cl7A145HyMMAP2KSbi46c1snXeQgpOr6LHuS0aierDVr4XcKVl7+USEoB tAcWRPcSK6pJRx67I1QsVgwhEFC+4EnUdzfpcuj+Ay70NjWOUsnTODDCU9wH55mJ /e97KtFY8LdCEMX8lB2b3iSYyT4zafOcXDHNtC8JgBizYwCV21ctmiIvD+Tvyub4 5PwZlr1BLEZe+EX8f8llrv/SAARh1WUAxvONrCwYx4ybHq5KrLtkguPp0yQzXpiI gFy9TBCJe8pZ30pBzFDk7037bYkNnDkve07MNErSNPl75L5q9T4xhHbM+2xPV4xc SwU/kw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778779399; x=1779384199; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Uf/5jLZ/NET2/tvaeuFYNcja/q48puCNeH8wc3fMTqA=; b=JaQYDVdmOtxLgthj4eFVdPopn3tO9fCgN9khO7lMjn4TLxvE6XGvnMi1j0ChDNrrb6 y2o/14I7PYTkNFr5Ht9VAui9jD/rY8uZfqARtbGiXhl00PXsLY0X+o2A51Yozs2R617m KxSXsv9AKWzZHXmIO/lrjaUHVO8bRVPP7z9C+cvIiXcQdg4Op7v3jA5oeQ3VAfDRgx0L cvOKv4D0SQzsKMJaU/O7f5rgkAFwaU+rf0nCW5OR97HMPrec7f0hAwrxFZdRABpCU0qU PcNGGtSGBQ32rRw45mpwTksq5DFdbOpnSP4Ep9hs/LfAbAKGc0pdGZNn79WU3xeVkJf3 pESQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778779399; x=1779384199; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Uf/5jLZ/NET2/tvaeuFYNcja/q48puCNeH8wc3fMTqA=; b=dA4noqldn1wzW99bk64auragr7AVhgDjjqxr9oYiA4cq34PUKEes4wEAQpzEf7gFcq HK9TMJ32UCbchUg30l1i/VnvY4lTEIsfC43vW33UvpBgMAivRsDT5pNWZjVh/sH2UXqJ kJJWXxK56FoQvxmQ4NCFRZEDLKjINHiNR5opzJb9i+A9OrNQ23CF/l9fqf9Swe6wv7kr U6sR6A/N3Jd3pC9UBjPBJ0tX3ixGkLZkRodvRruHeZDac8S96Wl/h72/Kxw9MGs30qfr 3xjSsaZFdMTn0TfLIug5hglApxxFeBdvWEufV1yh34FcJCrAB7TaNsljWPj6IAAMjsgj s+Gg== X-Gm-Message-State: AOJu0YzNiLGl5u3Wvn9wTdgUEIaGQ36x1OvMtwOxc+GYPpxRn3IPde9D 56tmPKRDdwXgLCyEYVHCVoHs1pk4vdsVbIYU/UpQRjvTGeQwd+PTVOrWJcQk4FlJe1VwlGtQfz0 3atFa35x8+5Rm3+HG3ELUZUrOaUsnI0K+ywZZI7n67gh0Ing2aYJCsrG4EmVEpDWMOY1i X-Gm-Gg: Acq92OHf8qxlA5CHBcXSCwZcLIwNyLVFoAo2uClNxc/PtSlKuQnDrXObkJbzvHhJXSN ScbHMXht38AaNGG/lMuqKFk+3zdmAIHWvCF5uXmOHsSxV5Hf2IL3BeBgnKF5r8d111nbPLyCDcR PyTl/m0m6JHhZ4biE3ikCvPmn64FrPgN7dYxY4v6+WzG3zrgMj4F+a06zcYywl8KDCH+D4fHpe2 ClyFld36mH7VBqIS7V0v5jTGLCjGhfO77OWOenRwvXiwL8z/KF6uufJcgt+VcnKicjy3N9BbiY9 oOrs/tpx5Mgci+k+CioTpomfmxnY9HGDxrN6NJe+0qQp4E7RL8ghRM/koPltGfORfk2R9kOdly/ 0menlIlfiEDQFNA6Et1cfDVsf/g2e/U4xWTv7ymjk4cZG+EyYiFikkRMHNKU3MiPxiIa35J9WHO kCp85yQVk+az67JUUp X-Received: by 2002:a05:7300:b586:b0:2e2:3381:2fba with SMTP id 5a478bee46e88-3039812a5a6mr226719eec.3.1778779398800; Thu, 14 May 2026 10:23:18 -0700 (PDT) X-Received: by 2002:a05:7300:b586:b0:2e2:3381:2fba with SMTP id 5a478bee46e88-3039812a5a6mr226681eec.3.1778779398232; Thu, 14 May 2026 10:23:18 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Markus Armbruster , Paolo Bonzini , Max Filippov , Anton Johansson , Stefan Hajnoczi , Pierrick Bouvier , Laurent Vivier , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Richard Henderson , Fabiano Rosas , Darren Kenny , Alexander Bulekov Subject: [PATCH v7 5/5] target-info: replace target_info() in system-mode Date: Thu, 14 May 2026 10:23:03 -0700 Message-ID: <20260514172303.1484273-6-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260514172303.1484273-1-pierrick.bouvier@oss.qualcomm.com> References: <20260514172303.1484273-1-pierrick.bouvier@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE3NCBTYWx0ZWRfX3jsLkx83g+ST +mUbD2RxuQ98lGtbam4jPozsoHXi3PhKZSaXTO4/XjE1wtJexUL8AzhnBSY9RZMSH/9SXR2gFeT 7dcdL71F0WK/VGnEamrb5QQOBWvvneqAl1uEBJOAtvVVKqJInXpaiIVt8iQPvIrxRytpxiceTdD unPSXQ90v7SwoBRXqOmLoKakbc2wNlHPenp6bEz/yAJgf8pnM/4dyuXuhZVzjF0iIFaImBfHE5D 7ZzV7w1Fn8AMYw90bNqCNhoX+sfs8WguYhCEDKXbj3FJCSUlJ/bNsEre4/HwEzliwKSyKlE+GXx tXBjkqT2TqzMU9Qn7AseLjhLmY8PImuQ7BpgXoHnhs0DDrw68fE9d7ucnoSPq9PDZOGlMwPFskM aUWoc5E6j+pc3cwXXeba8yRCrFaYGBmbCrHX/OWzLPRWIb2Fu+XUFPbqNVCqjdeMXOiv380ssjg 8kRzIttMnRcOD3Qrl2w== X-Proofpoint-ORIG-GUID: 0cV-XyRcdzcthjJ9p4SrT9iFXdgHHQOj X-Authority-Analysis: v=2.4 cv=Iba3n2qa c=1 sm=1 tr=0 ts=6a060507 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=20KFwNOVAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=W37sF3GUcAVBL6lWIEgA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: 0cV-XyRcdzcthjJ9p4SrT9iFXdgHHQOj X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-14_04,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 clxscore=1015 spamscore=0 adultscore=0 malwarescore=0 suspectscore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140174 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=pierrick.bouvier@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1778779444652158500 We now can use TargetInfo information available from QOM, and remove duplicated target_info() symbol. Reviewed-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Pierrick Bouvier --- include/qemu/target-info-init.h | 5 ----- target-info-qom.c | 5 +++++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/qemu/target-info-init.h b/include/qemu/target-info-ini= t.h index 32c323a7ef9..b7024c9faef 100644 --- a/include/qemu/target-info-init.h +++ b/include/qemu/target-info-init.h @@ -38,11 +38,6 @@ const TargetInfo *target_info(void) \ #include "qom/object.h" =20 #define target_info_init(ti_var) = \ -const TargetInfo *target_info(void) = \ -{ = \ - return &ti_var; = \ -} = \ - = \ static const TypeInfo target_info_qom_target_type_info =3D { = \ .name =3D TYPE_TARGET_INFO"-"TARGET_NAME, = \ .parent =3D TYPE_TARGET_INFO, = \ diff --git a/target-info-qom.c b/target-info-qom.c index 9947fcc9922..b48714cc77f 100644 --- a/target-info-qom.c +++ b/target-info-qom.c @@ -49,6 +49,11 @@ DEFINE_TARGET_INFO_TYPE(target_info_parent_type) =20 static const TargetInfo *target_info_ptr; =20 +const TargetInfo *target_info(void) +{ + return target_info_ptr; +} + void target_info_qom_set_target(void) { g_autoptr(GSList) targets =3D object_class_get_list(TYPE_TARGET_INFO, = false); --=20 2.43.0