From nobody Thu May 28 00:44:49 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=1778598197; cv=none; d=zohomail.com; s=zohoarc; b=K5pS9BuBcN4uoXk02gFqVNE1ZgHnuDj/JLPTOO5n13pJOzhq8Hi7IEQ3T/27PR9qOAu/U8471p65WTkoQhRJ8+/AMtgzpV/yAs0oy3JGoJFssRCQ8Ucd5sl+BG4tpj3onMgg7qkg/VYkbcLbDUQu74M8G+hRz+7T+bot47/pKXk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778598197; 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=UuNefJ1vlxgl2kavu8Ne6rY1PwbCXjsABJNyznP2ZDyA37q+lHylIDsc3+k4QhCjvyX45HJZZRUScpDKNFJ8Y4vEgZWDSAln3U2qP5/ky0xLGMaKBouFm3J3qGEtZNbx0m6Z3Jhf8ZTur2XCh5s0cWS72XRWM0kxXYjgbbnnMhk= 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 1778598197081742.4343847674235; Tue, 12 May 2026 08:03:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wMoct-00084W-8C; Tue, 12 May 2026 11:02: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 1wMocr-00083v-G8 for qemu-devel@nongnu.org; Tue, 12 May 2026 11:02:25 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wMocp-0000Sc-PR for qemu-devel@nongnu.org; Tue, 12 May 2026 11:02:25 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64CDgIJN680110 for ; Tue, 12 May 2026 15:02:22 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e45avgb2a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 12 May 2026 15:02:22 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2ef37c3f773so6746910eec.1 for ; Tue, 12 May 2026 08:02:22 -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-2f8862d429asm18270335eec.12.2026.05.12.08.02.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 May 2026 08:02:19 -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=Bky8mI4jllJSL+Iu I0GitnDpr8U3lQR+rm8mTGsk4FJUUKfuYyWqtryJvtsYV4CXmWOjKc66/A09ww9q jFJiqN3s+HdjA5nzgszzEyr6Nd3MP93DfXT4BmI0TGS7lN2H3YbmZWZv2U0hp1uS 1JKp4cQ/wPcTnhZdSLNVVboH7jVREB9MvRF9jdJHhtQqVEpCTGCfaBlGhSsKDjR8 IPBqRWW7z2wWTHS8zkPWagAd6hxH4LnLCShqF7qFkEnL2XPpg5vOAYYs0cPCdedp cTJIjYXKfaf/ZrEGGxyRqPFArsjl1R/KVwg8pQYm6hHwMiUnKoJD/8hr9Iom8/bm 71sqCQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778598141; x=1779202941; 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=aZ1Ge8DKLF8ttTPV6y8e3bvMjn/ChnUcZfvJpBR1GnTssgMzWmEq+zxku04LQ6fAN3 osJjFWH+dHcdl/68yx7zcAWdTrJRXu23nQevatqTi0VEhotAQBMyjA9wQCHx9IDQQPG8 wzP1NrgZEmHyWOtXb2MyY48f3p7Hyckehoi4yDzsf9zuoNXCSKmxvstbwHlUsucOTmsD EuuT/xqy2uyuTCRyAjhSyHy6SLrLU2FCcSmlswBlW1NHnrw/G9f4ddhxHMOa0/7aqWGL uJ2j7Z42jdCIkm1JcDYUIIngtjoWCTQ3lna3vyYAQAR3tEUWDZUegOU9+06o4glifR7U gieQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778598141; x=1779202941; 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=Ofzhb3HMzT3RMBVFZ68XzaDP2bptxLIFmM5uWFeiI26jslL1EwVVtGYLvt01LYuSAe wKFRrE7JJKAA25Wvwt/8N+uGzbxyiiH3lA2cuEW0WMp7hS+CWmu9ALzXivDZbJbbO7yJ lfXUyQuSLZEuKdkg78+8IRarWG7IHg0M5dHHcupCusPpfoTLdIEmTSd5S+TN6YgwKpfo NEEE2muIrvai0UOpmbC9cgUXenEv7rDFYzAJ818wD0Z6dlEDo/B/EkZ7gDTQbQXSLjWa AzwVp8ALbn9eZqGy9Z58CgSV03YUzKncS/KY7hfma5WUlGGYHpy2J5PYWz5Z5/OYFljB 4T0Q== X-Gm-Message-State: AOJu0YzlaWlcvFom+44XZxeK0Lp4dSmgJ/udLEn6qwd+1RJWCTaVYxLA 19redViw+ipS3mIt9lV6CRaVgBDR3Yf1DZ35nCqFTxggv4ElBBODX3MdSdt5kAVR/wQ4BeK+pEW 9J4aJYBWP9wTNp5kytce16Hx2Z6+ruwlFV0ZiWJTB3o2I6sm0ZJa07DhTcQ== X-Gm-Gg: Acq92OF9LGH2fZgoHriX7RkONWsSp5CMeiwFxoYjh0R7kLNhQPdnmJqyfvX7gJbzrk0 R7fIBa78NNfKIVeJXTt4OxrON2Gst3ovErOFrI11VxVZaewVllDIQhrCITXfxJs15Odbym5pBcF YqGDPtv/gJBzjFGU8HiUbQt87UnMB20CB1WJn1zXj2+e3hZTk8gWeuYcRirZTvOtgYWByRt4fme +wZ+T/rM3IfATxYRaTmMkJQpwRtCwdVONMVqJBlksyna0PxgQ+DCMoExu52YqRspth8MgXydeEA bImV7HMdQKjaRD+qj913vz6TMLbK1eBqEP35w1AC1kcF7N3P822fEIcHRw/Y0lMcGU+w3Fntc3t JdUQ65p/7br77e+gv4s4aMzlMQ0n9SqUUHt78PY5/s7K3X3aO9Q== X-Received: by 2002:a05:7300:e421:b0:2ed:e14:42e6 with SMTP id 5a478bee46e88-2ffd87c2ffamr1765675eec.31.1778598140577; Tue, 12 May 2026 08:02:20 -0700 (PDT) X-Received: by 2002:a05:7300:e421:b0:2ed:e14:42e6 with SMTP id 5a478bee46e88-2ffd87c2ffamr1765553eec.31.1778598139697; Tue, 12 May 2026 08:02:19 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Max Filippov , Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Pierrick Bouvier , marcandre.lureau@redhat.com, Markus Armbruster , Anton Johansson , Paolo Bonzini Subject: [PATCH v6 1/5] qom/object: register OBJECT and INTERFACE QOM types before main Date: Tue, 12 May 2026 08:02:04 -0700 Message-ID: <20260512150208.1167711-2-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260512150208.1167711-1-pierrick.bouvier@oss.qualcomm.com> References: <20260512150208.1167711-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: 6LZogcWFNEesGZdstx8ZEvAqsjFFklVX X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEyMDE1NyBTYWx0ZWRfXxUpZJl1XkEtf 9yN6j/4bzNqUX69xzCL0rRUggDQYJPp0klM8nOFptWl9+KmY+fxlboJCKK0iG1E1hEu5/Y4A6M9 X1E1L0vxn/+aRzN1W0c3V+ZjJoljJBldUznUYd/U4zkAgM62TiBXRA1XdvD5GQwVezM8xcyfKgn lR3dLh7xpvU1f6WENAfsp8ED/64GilICTSAQId3akDvrsEqwjxYBjdAwqA+2jbI+ziqU/TpgR+j DicaCXPxJ5cnSwxefgUdWa3JqoJrUBoZ31mJ1JrDT+/P7Bfp6kkBoDM3KEYIumnBCJiw8alyMGM BYPvGCj5lhCaLeigajpwqJHHDZWlAUwgXpkGI/8H+WQK7rjxcIUUnSN1anTS84gTKyyEDh6xNR3 h+xo0vpkHAV1/7a3REvJ5rD9kKec1Iiwt5vEsPqiKE+EUMIv/++oNUUTWDF6Lw8t3GoCXcra5z0 5ZPclZwrZM0WCV9nfYQ== X-Authority-Analysis: v=2.4 cv=bOwm5v+Z c=1 sm=1 tr=0 ts=6a0340fe cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=W37sF3GUcAVBL6lWIEgA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: 6LZogcWFNEesGZdstx8ZEvAqsjFFklVX 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-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 clxscore=1015 adultscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605120157 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.180.131; envelope-from=pierrick.bouvier@oss.qualcomm.com; helo=mx0b-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: 1778598198641158500 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 Thu May 28 00:44:49 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=1778598192; cv=none; d=zohomail.com; s=zohoarc; b=P2Aa8iQOHXQHvimv8esh0/sQFdQTOhkRQG0dP0hOKfnBrxwsEOYc5PU0Rw3gBX3rpuOL6tJz5Ky6lezA9TFaenyKbu+eSe5QKXrrkUMFoxV+Qa5kb5J4dt7q/+h3zdeGq8IXk7Xj77a3miOGYVJ0VvGBuNCe0pFQfcpaH/ZjFmY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778598192; 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=YrqNjsX2vWX7U8QavxqofsfRVZ62EquJOn9f9DXyqAYE0bVt+ucSQPl/yUKYdfef/4GruH+j9cwe/l3Qs4pLnj6II3WfSWgaIPYJXoX6tjvlWs72WKhz190wHLrVGkDYN6Lof/dJVkuE1YjIkNb7QQ7oKTiOArgG4CXo9sQbxh8= 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 1778598192386717.9000222822765; Tue, 12 May 2026 08:03:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wMocy-00086G-9f; Tue, 12 May 2026 11:02:32 -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 1wMocw-00085W-K3 for qemu-devel@nongnu.org; Tue, 12 May 2026 11:02:30 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wMocv-0000XE-3K for qemu-devel@nongnu.org; Tue, 12 May 2026 11:02:30 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64CBcecB075038 for ; Tue, 12 May 2026 15:02:28 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 4e43gygv1y-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 12 May 2026 15:02:28 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2efc342ef15so7723453eec.1 for ; Tue, 12 May 2026 08:02:28 -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-2f8862d429asm18270335eec.12.2026.05.12.08.02.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 May 2026 08:02:20 -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=D1lQ0Bk3qdgpMFSs FhiYDeFP80mbZ2nr8uArlXRnTCSf4gHFaPJEMZ8s86sgWpMebn9o7c+21cRq+CzK 2sixPhhvG8Ixm+u0VXxOOx/p4tfmiFKRlGiikPV66+1/KP4cTYDtJ9X8z/s2hgaP gI5RItfVA0kqlUw7MobJekkxLasZ1TxZxohXp40l8P9kwXiJNCjUAEJzoDK6t7G6 pr/1RaECaw0IQ54pjvm41EVvPbAFmNeS2aNr2xVjCN0oCR+15yiXIHxd5bKZZzYC nw7wphF5Ghh5mysD/VsugwOLi6gup1Z5y23D06M/KpSyyOLi/V6haH5N6263EFe0 xlAIOA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778598147; x=1779202947; 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=LE+TBWteTm502cpsJQOeOWlTyn1uedEDsxoZuiwCypxlRSn9bB8prnM8nruv/6XRvL s/1pQ0nNS4qjRcBc3tKNBNddsqO4Pgq5g3utjU6gc2hL//F0Wdo9jR32hsbVPtR6+lN+ 1kKF48MraKSOfOqbcWsv2ucvL4ezT9xsrbIYHaBJLx4zc4M5tQfWB7XeGWtPD/Z6doHV jX1dYU57Dd2CQyp6/XNbFudRbug9juuiwIG0Rk/bppLBEJlnkWliZmF8T/OZsFmwsJ4i SY7hwdYwmpLBQLb+3oTjhKj1fZGuK4vynGBslMkHGbzadlfJpMT3kKAulbqKlB05hv9s 5nfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778598147; x=1779202947; 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=esgalLUSBcpoCG4pAI3SIhwkhhGDIJiRWSHQc3cKQ5EM9TJtp/Dksl4b+w/W8uvnzi 3gHB3QMWffXjjjmKu37QiIgxsXjF7AL1TEtyIz2Jg/C7xiTTdZRR4oy5j9ub28F2Aqz2 OSGPXjZzHIbSbM40zgVODDiKFmXTcm/YY3VkuTQ8w1PR37fTB746cxZyqU/XDJjyT5jn w+DE8Xx4Ei0oyLTviw5sSXarQERXImYOiYmok7laKLIbEAgl/PJYr2sLinVwcD4eFHMq g5oy9B4RRtF8NVZRlm/fyyF/byR2Ac5SIXgE8Gt/EpLplKRZR8bVmhuA0JjoCSO2/eYd BtzA== X-Gm-Message-State: AOJu0YzhhM/GjEEBnztIEXwdOEmUA5Bi7tr6mbN/CFo8kXoQhN//V4C9 4w8OpxnmxAWC01SIP8RvhHotU5jizTDnN4isihqLlrkSqSNGyApdAEh8tA+akxsjGGwm3pC1bAC Su9v0pA7Hrei1u/EkTQGcTB5WpFayjfHS69SuBCerJ0VKlAFvr0k/ORJcHnMXdghchOiG X-Gm-Gg: Acq92OG5ciJekv1/URxiqB0GFxtarezDAEUBZKbHVpTdLLDzoOoKlJL+OIjOgjrnWG1 vvzJFh2Jnsj5Q/4bMcuuHk9VADICcgCOJJBTM4wQAQ/K//goN8sx+WV9Gf6Ac41RbavdrsJBCX1 Bs4EMkvauA66+z80Zu7znAY8jr58WpQloDZtZbYhsMtc7vS/dRbaXTdKKsSHn/Cdt6sOaDhUsrv M+5oQ6qbj0OI8BrZGFMiwHC4d+nvu0a8R23erZUSX6yOhQw1QofkyMAMmXesA7NndmK25EpDkzT XlhJYTg8sRXUV8L5TfHSySJn+ZWLAV/bzelYq1Plle5VlEzk13nFmBrPYMgLplOz9tHiTxCaGsg k/ocEA14e1fZwP6eTAKsieWCge2Lk0TsmMnWXzFXGG48eComCMEiGbot+5XjUb8Fqwm2ohhe2pn sBEox1lw== X-Received: by 2002:a05:693c:3015:b0:2e2:5bc5:f8eb with SMTP id 5a478bee46e88-2f54c0812d1mr13360385eec.9.1778598141785; Tue, 12 May 2026 08:02:21 -0700 (PDT) X-Received: by 2002:a05:693c:3015:b0:2e2:5bc5:f8eb with SMTP id 5a478bee46e88-2f54c0812d1mr13360300eec.9.1778598141026; Tue, 12 May 2026 08:02:21 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Max Filippov , Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Pierrick Bouvier , marcandre.lureau@redhat.com, Markus Armbruster , Anton Johansson , Paolo Bonzini Subject: [PATCH v6 2/5] qom/object: initialize type_table in static ctor with fundamental QOM types Date: Tue, 12 May 2026 08:02:05 -0700 Message-ID: <20260512150208.1167711-3-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260512150208.1167711-1-pierrick.bouvier@oss.qualcomm.com> References: <20260512150208.1167711-1-pierrick.bouvier@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=fMAJG5ae c=1 sm=1 tr=0 ts=6a034104 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=gowsoOTTUOVcmtlkKump:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=pDBHowQsxXgegazyqkAA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: aGdKAU86PFc14UlJ0ty98qEwDKFUMtTv X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEyMDE1NyBTYWx0ZWRfX/Vo8+NCQp+PL seSKWV9SJIJ/tpWl6qPIqwjF8BDoUSnhxUlRYF6cfCNkVG9WcXZr9WgUj3Zo+8jh3dELrTfBWuE GscDcA+eFTDJm4/ueWKLIeePlun+Tiq1uAFh97HVkeckx537UocpyqUGnbFpzgMH4+lwanspdkn N3/UsDnr6QAni4LULHwylpUz6doK/vjHQ88gB7cMFH3sOtUoTpFdN13wCrN5jPwSeVWKoYBVFxX F/WUeJmdc5Sf2pvib+5WaglzMmrfCg1owjlmkvDtyc1xvhuVFEnTMZTbqyIol+m0Mk5qpBOU69J /N4UbcZqZLN2wnV2KWOHBuVrrMyDxqHuifkXOpgcpRN4QAxMb3vv61/Vo3yFlFeC5gu4/yuBR67 c3/watF3PyYhYnNxgEk8uipCGBzLkB/TxjwUTbD8kZQFznDQ7m72sA9eEJ6lsoFx7Za9m3QYCSE Z/U9cS7Ddv+BRmbnpFQ== X-Proofpoint-GUID: aGdKAU86PFc14UlJ0ty98qEwDKFUMtTv 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-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 suspectscore=0 malwarescore=0 clxscore=1015 spamscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605120157 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.180.131; envelope-from=pierrick.bouvier@oss.qualcomm.com; helo=mx0b-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: 1778598194483158500 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 Thu May 28 00:44:49 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=1778598188; cv=none; d=zohomail.com; s=zohoarc; b=ayrXNnWkC8VKTEq2Efdks7mN79UOUqKpqMu7Qp5Ul11LaYOaBQMj7tXlfWCBQEkjFvMyyaiZgTAAVjhFl/Ig2Rop9IZqUNgJmHV/9Bb7o0mQWYZVjhKhaMo3lHS4rIVGUet9F4tzATq7j/Vu2IXZnhQ8O8hOqPIOKditMO8EGBk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778598188; h=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=xMn+1LOdsxyIbyRBN9t2jq0R9LvLPuckBvIpCMzPrMY=; b=Y1XYc5B4vQKHSu+JZvFdiUJzygLTTvMNCZYRY8m6+LvrVEpCHSvq+BkH+txtZPPbrv1sTukyv9MnZkp3IewyFUhVN1Et49xVSfpX0RsqArwZHyxXvJ43ssyvKI0LZDa5PLKuKHTINW2Z9lcC7P9icC/lQiMKJIDf0xTZUYVUfIY= 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 1778598188602459.0547033944832; Tue, 12 May 2026 08:03:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wMocw-00085E-46; Tue, 12 May 2026 11:02:30 -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 1wMocu-00084z-GM for qemu-devel@nongnu.org; Tue, 12 May 2026 11:02:28 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wMocs-0000X1-Go for qemu-devel@nongnu.org; Tue, 12 May 2026 11:02:28 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64CDgIJP680110 for ; Tue, 12 May 2026 15:02:25 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 4e45avgb2r-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 12 May 2026 15:02:25 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2bda35eab74so4538219eec.0 for ; Tue, 12 May 2026 08:02:25 -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-2f8862d429asm18270335eec.12.2026.05.12.08.02.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 May 2026 08:02:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=xMn+1LOdsxy IbyRBN9t2jq0R9LvLPuckBvIpCMzPrMY=; b=hzM2GH0lg+FbJfWm+TZbtieS3Yf vDZQd88GtD8wyRrE4AfCI4gkYcXVEh6OqRB/zsBBMXrbjGwdpSliam9ifuTgxaQl JiLHkbzcoqJwEpT9PJO4nblUpg8E5r9BpAH1qvtj/FP5qquaccCD3ca1S5tHClXH oG5RzkJt9wrmAW4+EtzCNqDBpgulTg9dEvm3R7VRT6KVbXuRLk04Cu37FZQJFfO6 9J8iVWKnsaw2RbxXP/z9suw0wNR68R4IwkaY3z0qkSpRGEPwHhH0yCeLm3EkIejg HraLdZtFTn/xWD/Q1z70BElM+veOuDqXrAJFgu6FfFlW6mTK+7gE2AzA0lg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778598144; x=1779202944; 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=xMn+1LOdsxyIbyRBN9t2jq0R9LvLPuckBvIpCMzPrMY=; b=g7CjzIORKhu2fX0BBZRQIVE6mRzYGwilQSvMR7ExsMosF9k/Z2xs3dzb4P0z1YI1BS 2/NZVXzC2DiwA40PLWVVlv3YWUIY0kcac7DBn+KSKT+aE/6Z0xhz5Tq3eY8afi7o1d0s yyRny10Y4229w8E72DCoVMwzjHVPPAXgtjBMNcrCfAyu+u6A6suAJ4gV+sfuzN6fE8uW Rvf3TQEjclqR1S03HnejuV09MfzTOlTFz5nVrGaoEhPDupR1Z6t5qEpU1SUHrlNaAczA Cal1GRueLb/SXPDdwdRfTCFjNLmACsQd8HWsIHRG1rrpN6hYsVAKnER5JoQXobWYZAai EUTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778598144; x=1779202944; 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=xMn+1LOdsxyIbyRBN9t2jq0R9LvLPuckBvIpCMzPrMY=; b=PrSuDoHNhj5Pr0ucxz28FrXTK7TqibtuIrE5zIlv0GZqCSkpEP+5Lwem3KeMyYaf65 S0UkBFK0aU/ruIC9kYjg+ryIgUWlFDu2nSoTQTgkOXQ9JpgrbpEWUbTeB1wZarDyKIXi ZMiXhQBy+OqtsoKuTyHp7L6WUXtOGZp35GQYApFQqSGxmKPC9VA7G3DCa6sZs3H+9qPq 82u8vOPBsUZ+qPm4wK0JSDaSpaGoG+5KL6KfMwWFm/zFET44KcSNPYMsGIV1b3ICogbf UTrRGBObzhoQhXeV+LuFZRE25103B+XPIs7cITN9U5OF+njjh4poj85JmeakCvC1D2z4 l7kQ== X-Gm-Message-State: AOJu0YwU2F+AcFDOODQkKBVq1KT6KLFnZezOG2G3nafzEV5oo5tyIFe9 x6VKqzCLii6CVIDvmr/cnalCkaXuwTGi4uOrk/wXHUDzoexP+8T72/nnrRW2iWJStnCnYHYOCTt N8aDzhdweP4a7MfSARu0ziN4UmUuVL8LkXjr/noY9M5jexeHh95yM3Abe2Q== X-Gm-Gg: Acq92OGdE17TahhBZMWB4s9AI/+Zi/02TEXn9Cm1t1PGkXsOGWg73haV6CdfDthqYvh eAR6FimWY+dOkDCLaFkj/tK7O951QvkZsiSHoP+zGwPS6ektxDqMQKAYb1KIBgQOKtYjyXAR0mG 4s3wF9twnCaUWf88+aOa88gIbaox9/F11w+gUBDdN8wcR7mOIWJ8TW/31DV4US5CMCU5F8scTvq WPG/7Madsc8jrGlkCw93vxDBzCg7GdXBXGuWa2u21YXF6QrQAZS920/nbgPqauXR71fcata6R06 ewSnEFhA13sBNQCVj/SWPxjbGyMuwfOT1w/MbLX2VuFSrUMlTzDLxdjlpnS2livyv+X4svI9SBE 3o4zh5VmNoswZg+ErOTRAs1VZeF11gyyyZhAPmF3vXxk5Ny4v1g== X-Received: by 2002:a05:7300:5353:b0:2be:9c19:b34b with SMTP id 5a478bee46e88-2ff9352aa93mr2615403eec.4.1778598143907; Tue, 12 May 2026 08:02:23 -0700 (PDT) X-Received: by 2002:a05:7300:5353:b0:2be:9c19:b34b with SMTP id 5a478bee46e88-2ff9352aa93mr2615305eec.4.1778598142736; Tue, 12 May 2026 08:02:22 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Max Filippov , Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Pierrick Bouvier , marcandre.lureau@redhat.com, Markus Armbruster , Anton Johansson , Paolo Bonzini Subject: [PATCH v6 3/5] target-info: introduce TargetInfo in QOM Date: Tue, 12 May 2026 08:02:06 -0700 Message-ID: <20260512150208.1167711-4-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260512150208.1167711-1-pierrick.bouvier@oss.qualcomm.com> References: <20260512150208.1167711-1-pierrick.bouvier@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: 0S9DQQ9dOKaOj1T9YaFqAhIHLkKN2WdL X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEyMDE1NyBTYWx0ZWRfX+Hlz5L4qBR64 H2c+XVGJypkDoqwSAMtDPEpA9Q4Gi2p26APWHtJUY6ceHlbVmkAME5SzGJABr0jHA4otBs8IqKN eG5qE2xzRKM7xPZs/LaVax3DPh/gdJynqCiwTU8VmniSKz3fU8czYMn8chHEyO17e9CA2jZotpV 44DfetuP0AFFpeIuFnTLzL1xYJAO5fwrOM1h18NHxRZuTPe9LSUDdoT7ZfF7M1F3zMpNNRzjLy8 /uCNR44OP9KG3Rdi7gyQBwBtfyjiaPsMimMbtJG/5yDWgUpJ9s7ZdBHT8Vch0kUvaXUJY7+Fk2o 9p/8cAFXDp390PRqCkR4mON6/u9YpErBG6eZI3xF17wv2JK9wAPcklrELpk3J0eZwkQPGnYL5+h dWDV0JoyVwDGZ4BiOUKIAQazRqJlnSk7OktQBveFyQzUDsD/BlhHLK3ZAaaZ7tuVuYX3DGcYNKT N1oYrVRgtx8VhTd3rFg== X-Authority-Analysis: v=2.4 cv=bOwm5v+Z c=1 sm=1 tr=0 ts=6a034101 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=m9jNp3DcQOUD3SP0qqEA:9 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-ORIG-GUID: 0S9DQQ9dOKaOj1T9YaFqAhIHLkKN2WdL 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-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 clxscore=1015 adultscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605120157 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.180.131; envelope-from=pierrick.bouvier@oss.qualcomm.com; helo=mx0b-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: 1778598192922154100 Content-Type: text/plain; charset="utf-8" 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. Signed-off-by: Pierrick Bouvier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- 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 ++-- 8 files changed, 119 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) --=20 2.43.0 From nobody Thu May 28 00:44:49 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=1778598188; cv=none; d=zohomail.com; s=zohoarc; b=WZC+e21Ga9RNsT1l6O20hu380nb6FcW9zswcF4g6OILYCWvL9zk5g8orGy95C6lH8J6UvvCqfkx81NOuPb6YOr932hnZmjYGtvyi9EzgT8cs6Hp11yszPYYlv121pNUhwe35WCTSPvbMDeDRGa/yw60fUF9Mu9BNh+KCNHASJuA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778598188; 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=e+lyn/CQmNPYMHgzrRwruoYF/VyCUk5nKBqAzD0pq8Q=; b=mfnrQpjxAS5dW4Rwuzsv/W9CZ7DJOCAn0CzdfzgOzBuwvjp9Xzod4dTBug5DhXdjQdmvBQQZDpcYpOGjR5SHvGjSCfEfhkb+6mKYXB350AK2y8jeCkZmgTc0TX/hF214qxHyQvd3WSgc8ROnVPm3g0wS6p2MMmU4VlO8hc6HtNo= 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 1778598188590259.5685090238328; Tue, 12 May 2026 08:03:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wMocz-00086P-2j; Tue, 12 May 2026 11:02:33 -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 1wMocx-00085u-MD for qemu-devel@nongnu.org; Tue, 12 May 2026 11:02:31 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wMocw-0000XX-2I for qemu-devel@nongnu.org; Tue, 12 May 2026 11:02:31 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64CB5MiR591849 for ; Tue, 12 May 2026 15:02:29 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 4e4319ryfu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 12 May 2026 15:02:28 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2f3ec2e8d07so9759547eec.1 for ; Tue, 12 May 2026 08:02:28 -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-2f8862d429asm18270335eec.12.2026.05.12.08.02.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 May 2026 08:02:23 -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= e+lyn/CQmNPYMHgzrRwruoYF/VyCUk5nKBqAzD0pq8Q=; b=WZ7Jx7k+YjfyFxlK NRQQ5chV3YEEQLgks/lluU3UHzIRF1S6EXuabu+Jz8mHEBUmxNm3vaqXhcN/M6VK tqaKf6mfM4P2/LMcJEiOXIYA35gjzB52lJ8wj+HWNMPjfauhwR9gtbGGMGd4UFJo 0sy6d+uYgYhaydu8Z4IF5xP9imgRy0K770V9pkY3vLsWMAsmrIZVbH63Kyt8lwTL 8LkVVXTtGLtR4HH/JXTJcaaiM25VYJ6t6UMi7+CYvRU6065qrUdBwqJGfaB2vMSl 7XN62oDRtH311YMjgNMuGE/pVpETZ/YyaUdlRqYT/AQq3LAW4Svn9HkR3RYSJldz 2ITr9Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778598147; x=1779202947; 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=e+lyn/CQmNPYMHgzrRwruoYF/VyCUk5nKBqAzD0pq8Q=; b=IFAJUigG6cn0EJFPxZKRxXkESrPYV/jumXHcsFRI+MT8i3MmRVgKubbVSgOlcYpL5+ HBpYKCQvVFVuBeurcjHgpHOLukp5d7txgIlP9x7GvojM1eMQQy4Wj4qRa3l3KqU11Vw0 E4gUoOjoP6Wv1wgqtj5ugJc977w01EjJeO+BQV205zd8xg24bnaTVEgkejFqxTGVbcwH jJ0FxzICW3L6u6MvLj7t6extOawgFbwTfgdyUF5s9EZC+7U1Ebg5eiP/3H71thFKrpTw AFzoZMZubw8zrHvfUXreiTghOS0nqBT+JEyRbqH7zE28yAd1pmyL9PHnvUx0hKR9OEMp QFjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778598147; x=1779202947; 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=e+lyn/CQmNPYMHgzrRwruoYF/VyCUk5nKBqAzD0pq8Q=; b=o/k+sMjo7rNP5cL8T7hiHFHCUsrmjHSBte9gA9edF6PpxPqwOUeix6O8UXsn5pKw2Q biMLJqAwDeiJtt3QUS2XX2SOHqPq3hc71w5Tq7mRyocEmD0FXAYYWncuLj0MKGN+Yojw 4EOUwlRLImViCr0wrNGLf/xPttQm+1KLgZXfMU85nEYCxSAjvhtxAOQoz+OuAyVDwY2l 7IkIzPUP2amHsX1sduoza5npNEuVsgio0KJFpDfRJOer0IZWrSQWDMAH38Ogyj0ftfRT VsaP0S0+pu8cifmgadNsrKbOjYscPw6DPaIOnWx/Kjxgc9ok6UVljwu7wBYheJWSx+VD 7Gug== X-Gm-Message-State: AOJu0YxAWN378gPHisBcdx1WDiI255p3zM+MUnbGYFAlgKgESA+GdG40 upKOYcSntCrkcRp2Y3k0OYbjq0szl/nJupKfSlvcHmEI28BritqhXZrpJxfBLRIY6ekpnn/H1u9 oKIA7gIjUqm45dUcxmPas2dt/YlU6oZ4rDfaQqHF0U/9OMhOUzu2n/x8cq2AZJ23qLx7V X-Gm-Gg: Acq92OEe7QHlZlliJcVKiAuayK3aJly6NH3YWDS0sf5f6wcP3QHm9ld1FC2fP8Uzp1j FxsBqYMU61F1EaPsEVeXbGmq7kEIcScBA0ytTsRBJ0k1IjA82lvSYJN2iNLHYBY37U3Q1GCZ2HG TW0BqGkhtUoNI/npcilFrfijFUHjiLwBtC02sw7fVr1XWVaELQWAYPtgULXMXJtmBJEn8Hh8BSd 9+x1xny7lxiY6LJRP2uWscRdmiidgnwrYYKjba1bWAOpLvASAUtQFYBEcCPx/JxZsrZoaK5oS+W Md1/fYlBlEJPTfaRE0uH2XkCm/Uva6Bqg1I43P0GT9tpkU+GTG91A/lfi4xJo/ajalWJmFkXz8S N9IDxa6ST1Es5vy6zHN6sruYqJrH6j4UBG+LwbeWZrXj6jLCrIvmSIHOKtPMw4tBfDVT4igl1cf clpUV9lQ== X-Received: by 2002:a05:7300:dc09:b0:2de:6fac:f666 with SMTP id 5a478bee46e88-2f85e32c7ffmr7540167eec.27.1778598145774; Tue, 12 May 2026 08:02:25 -0700 (PDT) X-Received: by 2002:a05:7300:dc09:b0:2de:6fac:f666 with SMTP id 5a478bee46e88-2f85e32c7ffmr7539969eec.27.1778598143772; Tue, 12 May 2026 08:02:23 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Max Filippov , Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Pierrick Bouvier , marcandre.lureau@redhat.com, Markus Armbruster , Anton Johansson , Paolo Bonzini Subject: [PATCH v6 4/5] target-info-qom: detect target from QOM Date: Tue, 12 May 2026 08:02:07 -0700 Message-ID: <20260512150208.1167711-5-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260512150208.1167711-1-pierrick.bouvier@oss.qualcomm.com> References: <20260512150208.1167711-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: AW1haW4tMjYwNTEyMDE1NyBTYWx0ZWRfX+JHwC00kIHbh t2gMOONxYZocsTQpxWW3GYCs0URbLxHjC+1M+LgUUVL9EudC3UZPnnrg7N73KlliHzidROHr3S/ 0sQTl91cxE/uAtUbpjKCEN9dL6kw+v2RB4a47AzzfzZgl7/ZDxXoa52I047etn/fNTX90onPxh0 I814uyD9CgPZe0n9tSveZkYDYMJ8T7M9K/hCeBlNIGrmwJwk3X/NrIPJL/UNcawn21yftKRrtEG cRYgTN6sp/WM8jJrRJlJEbgLIONFKLU9qdSqzI35v0Ay0HTmvwmObVys45YmBaRDrRLGWKDIczU 7+zi/TpuqeQJfmTwdyo3Vm37ZkpIGjvARniaHd68r/YCnXVmKNyKcm9/XHAIffqmfqNKchFNHAP Er7Msht8fdYwpauydgg/3h6HTWVgyEtn6/aFcIzHO60VlsQoYz4l5hkHcbQCLX3ButuwUyk82tU PnISDv4NCTZ3IR5muqw== X-Proofpoint-GUID: lWPlYYPxhkGY2tRBl_kKAlhNLS6c5zDc X-Authority-Analysis: v=2.4 cv=bp98wkai c=1 sm=1 tr=0 ts=6a034104 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=yx91gb_oNiZeI1HMLzn7:22 a=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=0wc84GFNkZAXjcWhtbQA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 X-Proofpoint-ORIG-GUID: lWPlYYPxhkGY2tRBl_kKAlhNLS6c5zDc 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-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 adultscore=0 clxscore=1015 bulkscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605120157 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.180.131; envelope-from=pierrick.bouvier@oss.qualcomm.com; helo=mx0b-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: 1778598190438158500 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 Signed-off-by: Pierrick Bouvier Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/qemu/target-info-qom.h | 2 ++ system/vl.c | 2 ++ target-info-qom.c | 16 ++++++++++++++++ 3 files changed, 20 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; +} --=20 2.43.0 From nobody Thu May 28 00:44:49 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=1778598173; cv=none; d=zohomail.com; s=zohoarc; b=Kry+m3v2rhHS8b09sBDnXgfp7+WEBnc4ihO8kNE2iGWy1fUT+TP/E6gnvbvITQMGWG65HFT+IEtw5koreYUavLXe3eqdHyeXjYJdeuiaK9UwXwDRmjW8BIuTxWI7HsNCkxSR4cuzcaQnQbzAqFHMCHjACkVrCwZzPZM7T4fc5gU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778598173; 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=gNGJLVkbTbHWKUYSpa/rYAP/PeuRVSh8gnRsrqDij4A=; b=eGgrKTzWpdpk4pc8Wxw+vA6Bz3g1ZNRtpgJt1ScBKqYpTYmkNeBYxBTJ7wlba5WKwQPYf6VLCdWplxuXxKhMToPtWpm0fH1UaTZ2RADWuh5FKV6fyBGq1nLe2IPVeXEZCF24gb9Yt2eM08w8BcFz72TlW6ZHIkH3wjgHosvQmUE= 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 1778598173082438.0227730977525; Tue, 12 May 2026 08:02:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wMod9-00089q-Jl; Tue, 12 May 2026 11:02:43 -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 1wMod6-00086t-Kb for qemu-devel@nongnu.org; Tue, 12 May 2026 11:02:42 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wMod1-0000d2-HF for qemu-devel@nongnu.org; Tue, 12 May 2026 11:02:40 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64CB5MQS591897 for ; Tue, 12 May 2026 15:02:34 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 4e4319ryg9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 12 May 2026 15:02:34 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2ee34588671so7942842eec.0 for ; Tue, 12 May 2026 08:02:34 -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-2f8862d429asm18270335eec.12.2026.05.12.08.02.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 May 2026 08:02:24 -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= gNGJLVkbTbHWKUYSpa/rYAP/PeuRVSh8gnRsrqDij4A=; b=itvvMUgSDihdp07L o/F7RmXpoILgyY4q3qM2BH+AtdIs/oArH9iXc4s1DznMaxLYOtwscXcdngbLJu6V Uk2Hoqeg0wmswnFG5oYLJHOSAV70TLomaRuKNueVV+k6cajpbjGpAr3Gs5ci7g1w uqdfq8eCjipM3oAt2Z1YKBgzMG/H5FM90rJqpVtmkLCbhKkDsD4oeD6UwDGBxEcg pabnsDKDZx8uHY/V8rTgVZyijbmHAlae2VQpVketO04hrV9LMuD5L26vMNAPKDDg y9r+v9jOnrjovA+Tfpv+JcIKdyIdj6INnHQ9ceKOPtAnOWD49sk1sUHbV8Dr6PO9 8MZPPQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778598153; x=1779202953; 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=gNGJLVkbTbHWKUYSpa/rYAP/PeuRVSh8gnRsrqDij4A=; b=jNMGBHpMvHiYAzkAlS3H6oSjjgKyR4WzTst7804YKdeWRmeNWxQE5QG8YQLtyhlK/p 5OC/vQI97eAsixYp/DYA7mX8o1y+RlZikqVjWXiFLFJrxZh23Xu/v2YuW8BA+GauH9td TMl1uooSoBucOdHVBAHp6G36MHp0oo6u7UEm+j9qzIfezxXuXISWsHcCOO8DLJX21e6X UKbv0l1nJEjePMfkCDQKfRbBDaM0sBKEmwfX87drtfUSMVC1ii6WTBIzSxCESGsWdjfa GBR2b2ZfX0I+by08BBiJ2zWgzz/4oF5CQqp+tXxhFxoet2FyryXODDW1CntiIuM0yKyT mJPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778598153; x=1779202953; 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=gNGJLVkbTbHWKUYSpa/rYAP/PeuRVSh8gnRsrqDij4A=; b=poIF3znldf+mhPqMJ765RzsyHDnLH3tLbW1A6QK8tKY3Kp+SgkxY89wO6ZiwK0KUb1 ghEwxHT+x8sTgsGOiJSwAc6CTMNn614qL3xlCrRWqHMptClQli+spjv3C6aV7a1cCTBj bEo9pBnv/N32fdC58cNe/eBBniviBSaLmMFGyGuYRpgzH1Rujs0FlEqjclAdJyNhQHHg wpnQ5pg1msHL7oMNZzauVDvp6Fa3zZGfgXCViPrRwUhPJBN2W6Br3rSgDz4iOgVlRnlM 9luJjI2X+Abaee+zx4psF7wNMubhqgGN6MaU82fRb5PxDKE34RRDDhr50f8R/V1XO0q7 UUXw== X-Gm-Message-State: AOJu0YwMaVWhOeNxs9ZvruZwf8AMslLacyQ1zCwLjM7PVpUL4f2m4l9h pLhz6ilZguEqFvFaIPJO+TsPPo1Uc4Py+HhbR1m6v9T8BVkAc/Q4OpmRuowADSRBdTNZMl/7oHx YT2MtuQouTPog+AYgGCoRq72LjKsQb3HGasXgv4MMKvp8LWPyr8If05fWsjAGsSVtXU+d X-Gm-Gg: Acq92OHEqB51+u0wIe5/Y0RRlasVGPfNtsG4KiI5WsHBJ4P7h5Z1AOepCi8x07GOjae Mnr3mFTkrrrCGBHfPqKJtusFjRH5GlYjNRK8myxXMNcMQfESZatlsz2Hlx1J/mS6/4fRJxf/XyD x5mR83jOttnZI4PIKRJHaXHdb91/8H1cVyUsFU1JyIU+2wZNxz2aLXXaIBJL1JofU3zw0ldUYRO 7RV+9DId3KtqtmPOU6OK88TrXLWjsZz2pWhJtlrOl8x1CMlLISuy261RU/f2pimNev3pdjG1KE8 FLBTwQk1DgsKjLQQiZW5+axxFBGnyKdx1Lz7YxptTAymqNI+pTjCF45rvxOnaqoDGvDHitHDHMN lzU8ZGsCN3lwJZmJSdq5mS4rKQYygL4U1K6TlXGlGnzuSq10tZHJE3NqJBQqiGzllLvD7mdchqB 4MW+jOVA== X-Received: by 2002:a05:7301:6089:b0:2de:3022:a459 with SMTP id 5a478bee46e88-2ffd76e8145mr1937852eec.21.1778598145961; Tue, 12 May 2026 08:02:25 -0700 (PDT) X-Received: by 2002:a05:7301:6089:b0:2de:3022:a459 with SMTP id 5a478bee46e88-2ffd76e8145mr1937721eec.21.1778598144881; Tue, 12 May 2026 08:02:24 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Max Filippov , Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Pierrick Bouvier , marcandre.lureau@redhat.com, Markus Armbruster , Anton Johansson , Paolo Bonzini Subject: [PATCH v6 5/5] target-info: replace target_info() in system-mode Date: Tue, 12 May 2026 08:02:08 -0700 Message-ID: <20260512150208.1167711-6-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260512150208.1167711-1-pierrick.bouvier@oss.qualcomm.com> References: <20260512150208.1167711-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: AW1haW4tMjYwNTEyMDE1NyBTYWx0ZWRfX4mVdlVXuLL3l V2ZBESLUk8witrIqnengUReNds+2KdWEeLavc/kpS9PW5rqK3F4iMzDhYKYBAjipx33bT3KT0L2 k/PSmIPhkX7MHxgP6OBy1pFgngUu9wRyVWs2cwke8aP3lUtjxsQuKg5Ks0Y0wQHu9020pU93f+I bbVwiXbtps9V6gu6QufZ1SfkajTckkVVoFs9EJaDduB3qGJr24whW6g2XGzDy4yPFqy5yr9EoM9 Yl1W93cTx0/5EtpWq6Of293YgJxGhtgJaGG3TigX3M3ERaUQWCPYjx1KbMU1jwl8A21bJail7xY TSudpKIDMfN3beP2oQzDElnxOaxDDru1AZtTaLt8b+jRrShkXNylHvJxuwyhHVnO+1OlnE26MKe wquDcaOirQ39IO40F0XYiQ/YktshzCBIpfcodSwx1PBIoTrExPnCAMMu4xww5IDHoet60vu4dyl QFVKGjIlorG95Nq0Jbg== X-Proofpoint-GUID: qZqzwKq1YNIo4fvRvR2_X9XHWlPtUgaS X-Authority-Analysis: v=2.4 cv=bp98wkai c=1 sm=1 tr=0 ts=6a03410a 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=yx91gb_oNiZeI1HMLzn7:22 a=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=Ar47GhOyGom1hrc3c0YA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-ORIG-GUID: qZqzwKq1YNIo4fvRvR2_X9XHWlPtUgaS 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-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 adultscore=0 clxscore=1015 bulkscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605120157 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.180.131; envelope-from=pierrick.bouvier@oss.qualcomm.com; helo=mx0b-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: 1778598176380154100 We now can use TargetInfo information available from QOM, and remove duplicated target_info() symbol. Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Pierrick Bouvier Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- 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