From nobody Sat May 30 17:45:08 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=1778610706; cv=none; d=zohomail.com; s=zohoarc; b=g6NjHmezdU6MVcJ37jM6u2noKHKlnGeK5eI//vNFmUqEvEUQHPgD0ExQ34RXNcLIUlu9awxP7wdZRpcvtuvy0QAaRaJTIO227/6fpZl72svg75Zzcu4mVLPcP+feN+zfZqtfAOXqFXgYmRcxGPL598BI/EmGCoIhY6TVSSJy1Uk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778610706; 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=SVMB1nXKAkQazIjPh8QpcWyMAuQ6wp09vFCO3lv4GXo=; b=GzG6JutzB7ikau37AY1D50LCSOpi2vMlXhgYQSth6CjHmWASa4msWWDz20DmZ50niAKMwxAmr6aNG4RjV9wRglk+lIncpzFmpC9CJqzH+45GRJ6pDnZuCSaqaCjgHQ40yKga9dz8W/oh0mGGLwJbAUGH2bY/PSHERjeYkiUwOPE= 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 1778610706153749.3650356276172; Tue, 12 May 2026 11:31:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wMrsr-0001I0-BT; Tue, 12 May 2026 14:31:19 -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 1wMrsU-0001C0-CH for qemu-devel@nongnu.org; Tue, 12 May 2026 14:30:48 -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 1wMrsR-00016l-KZ for qemu-devel@nongnu.org; Tue, 12 May 2026 14:30:45 -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 64CEYYkd1733310 for ; Tue, 12 May 2026 18:30:41 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 4e463dgxyp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 12 May 2026 18:30:41 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2f2d983d109so8050525eec.0 for ; Tue, 12 May 2026 11:30:41 -0700 (PDT) Received: from hu-pbouvier-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1327865955fsm25221376c88.11.2026.05.12.11.30.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 May 2026 11:30:38 -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= SVMB1nXKAkQazIjPh8QpcWyMAuQ6wp09vFCO3lv4GXo=; b=IlS5qNDG2HB0exq2 ziAFb92pemGY2rDpqwLVXUu5qNI/d9Su+cEDVaH+DNxB+/sOGYC3uJpeaFWVU7KT Po/oe331WhXHQKpQqDK/bCJX7ugeZcP4QHiwL9pe37HLeTdtyGu2HsVxw+wt+jO1 YUBLVB9py+eH0bD5s5q5wq5n+O/VzkNxFGZPX8wiUpIQh9OysFqLPtZ5DqxchXbl OFQEuEhLwvC3pmTSkvMaOw2Gv+yICjbSKf/Yp5kyxZhRFaIM7R7nd0Jyoso4civp Jek0lZU5rwin77OQ6ivJJqCPDC9FYx/SbR5fngi6+zrIGgE1F3Ndm75Iq95EhQM4 DSvRcQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778610641; x=1779215441; 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=SVMB1nXKAkQazIjPh8QpcWyMAuQ6wp09vFCO3lv4GXo=; b=PLH8h4zODZh879x+rx4++050l8lFTjgp0VH7MYOgBAyicfxZJq+eYvxacL8uLOt4gO 8TPWcCaBoqBwAfk7aSWzubF8sNVqXE0PbNGwFcKRShnG0r+8lrxMYhhS0Si7ynEYQjKj /N//dc9qkL547MGs01VASnKhRgk5rqV/FAPhoV4vMopLp4xuO1WALxkD7MLSdnYtIm7k c7ow5lGZOD/4cJRK9YunHgE7WqYSoLUPKiq7ADmd8v6jQdAR6DJ8Z9VsveItpMrbmQqa xE1xCgOnzga/nYtGJDJ9Hz0Q7ybu+N4XxqnwUJzDUJch7AZob251OSwpqzPs/1mCMbzr Dmvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778610641; x=1779215441; 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=SVMB1nXKAkQazIjPh8QpcWyMAuQ6wp09vFCO3lv4GXo=; b=VuP5UwHy5qNtVtLrabHICeU/R2stYYLlW5V+QlYXQrnsJdPXVIVVkF8OiauTz6MYrK ns95uvJ6QHj8Wo96hK28kJKXsO9dO0pWJNrONBZqsFeI5wzp4RNmmf8H82j1gICphTzI QxYaNN+/sp2/ANUDyA93tjzXEGFyNIrZgXvPCtKhzHLQc1Nu2Nw9gJWClu3n7gsc/ZGP BPJDkK0YFwqVphwd6XRSc4z9DTvcZTDjcQ7Nd8Tx9YwiaZLpf/7g07xUdCqJ3z7AYyu+ 9UDUSItHRE5Bx9O5h3Q+49Wh/nH7gJrm3yhbASDpz8SSWCfQN/wMCOAmmxW9VefMGWqo sshA== X-Gm-Message-State: AOJu0YzxMYX2NCJe1t2Fs1FpuyFCZmt+UxASv4Or9Wx6dY0Yn1nZ3cq5 w9c1ZUrgT3zy1GzvYu6zMy9E8wMBOQL9IrrYaAx5uOKtZNGYch7YGDOeE6ojmnvs00ptPAz1cXv vGE4pLWULX24SKBc0qIZzf5GLtoqxvV+DsM8iyfQrl2ZsGGx8lBE3X8zbflmCvBA+g1go X-Gm-Gg: Acq92OHY9Q/hU77om4Jt7TY0HgNnq2LhaELjny3BXR8W4VY5KIc/3oanh00jikK3fiT KG1aYu4B46hmoD2DZNkVkGcDJRgD6ugWCMWOR1LYMAQxdl6VtVC/P88/7ZVgh0c00DjNOB7MHDE a/XLzPIC2iSOZqxi3sjvcmmoqPbWi8sogHXTALU8q69HCao9j7YOeY+4WZ2DFkzk5vOOshrEOP8 bkS8InXuirikG7v/X+PYlwN89JjJ6Zk7mYwxqC+WQHUXNrzP0IiaWokT5hdRVU+uBfzxiu7IZKr XobnMFDp+o3vylqwKKzi/GJ+9g3VCixrLwUnRV+9mjaNVTQwbyt7LAuQeZMFHxKeaj4v0d7O3LW FxXwNu9NbbAd4RkY944UPCozcfcezgGNZ7rk/O3eRQRLbiEViLfr4N0X9YToNBhAutKZ7LSzrZZ Uq6O6Hsg== X-Received: by 2002:a05:7022:30b:b0:12d:de3e:86a9 with SMTP id a92af1059eb24-13436bb3cc1mr49018c88.39.1778610640658; Tue, 12 May 2026 11:30:40 -0700 (PDT) X-Received: by 2002:a05:7022:30b:b0:12d:de3e:86a9 with SMTP id a92af1059eb24-13436bb3cc1mr48992c88.39.1778610640053; Tue, 12 May 2026 11:30:40 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org, peter.maydell@linaro.org, richard.henderson@linaro.org, pbonzini@redhat.com, stefanha@redhat.com Cc: pierrick.bouvier@oss.qualcomm.com Subject: [PULL 1/5] qom/object: register OBJECT and INTERFACE QOM types before main Date: Tue, 12 May 2026 11:30:26 -0700 Message-ID: <20260512183030.1431103-2-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260512183030.1431103-1-pierrick.bouvier@oss.qualcomm.com> References: <20260512183030.1431103-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: gTadmPz-4rsUXOQlO9WJiQdqZOFME6CS X-Proofpoint-ORIG-GUID: gTadmPz-4rsUXOQlO9WJiQdqZOFME6CS X-Authority-Analysis: v=2.4 cv=aLTAb79m c=1 sm=1 tr=0 ts=6a0371d1 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=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=TGpnWNUbWJQoO7jwSJQA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEyMDE5MSBTYWx0ZWRfX2ufSTebkGAVd x6GRgeaO7H+OYt71tUz5B+Y17AKPLkS6bm5wyIoeab0dtwqWBGDUvPUWECNqnXl9nkWDThoc7KB pboAddrTwhxh3lyqok134lFHHfHyYo/EijyIlbWrwF3/rpyWjGUqZ2FBEPdjo/PQIGcDx83p4Ui xavnM7Vb52pN9efzjYtU8X+tgqnB2kfVu4D+qcwygX0LJS7wYwGtNUhm4YUZL5e8uQ73rpr6V65 339uWZVWiYftTi0JOLp4llXifRijxmj8tJyPbdVmVbEv5cU/8TKDKWAGeZKyLYJZp8gjsZN0ZEK ZrlOqcXesNMMKxbOwIhtR/jQr+58/0srmV0XhodFdzF7nPf3fURBLm0qkwBDsaREkQJhDxhOpEI 1mLKArJ9aDqP1Zju+BPhGSVPQr0hD5aCBgdl0XbuBad7Xh2H+985Waebob2zMIrRCpBxhD0CJRl YDghQiaCT4+Xcd31/sw== 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 clxscore=1015 spamscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 impostorscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605120191 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: 1778610709786154100 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 Link: https://lore.kernel.org/qemu-devel/20260512150208.1167711-2-pierrick.= bouvier@oss.qualcomm.com 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 Sat May 30 17:45:08 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=1778610761; cv=none; d=zohomail.com; s=zohoarc; b=le6f9+JK7ylOZvYS8g3fUaNk1OZy8Gdk+A1bUFUvK6WHM0c8qhz1aEGNA2y/93cQMPygHXnrJD93Ks34v5VfwT7HYYe2BhxjDJ7K71GIoTByQPdqHpWUlSMgbuZ64LiVK7/x3WIKwMbdfh/J1yqD5LNajQGZts30e7pzQpLjQPs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778610761; 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=P3hKQ9f1wEcmiWzhTST187E49tUgOgiKvr3Kl31j/+w=; b=nvOsV13b4ylwyXYc6qS6uvZUX+cnWH1OSfqvFcmdDboQK95nHR6uTJ8dBrptX1XIDc2CVWBAxTevb6lrp/HRnYogQ6N4oW6NHSs3q6tJkZU5YM8Hjao0Oz6SF/T/YAfP/U7MWpJveBb5Z1wRPgeLNGgTjYUZ/Pan/LAOp7tvblY= 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 1778610761490726.3636335755826; Tue, 12 May 2026 11:32:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wMrtc-0001dz-Lf; Tue, 12 May 2026 14:31:56 -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 1wMrsW-0001CL-Ve for qemu-devel@nongnu.org; Tue, 12 May 2026 14:30:50 -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 1wMrsU-00017E-4g for qemu-devel@nongnu.org; Tue, 12 May 2026 14:30:48 -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 64CC4QAZ3320942 for ; Tue, 12 May 2026 18:30:44 GMT Received: from mail-dl1-f72.google.com (mail-dl1-f72.google.com [74.125.82.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e43w1sggs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 12 May 2026 18:30:44 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-1334825de51so775834c88.0 for ; Tue, 12 May 2026 11:30:44 -0700 (PDT) Received: from hu-pbouvier-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1327865955fsm25221376c88.11.2026.05.12.11.30.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 May 2026 11:30:40 -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= P3hKQ9f1wEcmiWzhTST187E49tUgOgiKvr3Kl31j/+w=; b=ddB2NdXzuQMXxeop dc5y8y+OAlS2AhpGu1/fF291EZdoAWxKPD5CcLnixrsa4hPuKtjOpcyb1mPUkq5W NvAv4j29coXfVqNDGhSlLQLK85LietUXAT6GVYfX1IlmXGMgmXJrLAYaVTcO4tXz BGfzYiyZani8HUoH1IF+MIOISxA7g0sl7dpO/HqUQleuyECjoawlb9EVgl6SX1bp fjdVQGrbafJRvjTtx6KWAPtCD/ItMUSVU/HL2TG525DABSgygIhEaT5BmGGfGK5Q SxraZ33DM69ZtrhpjJPj+GT17Zg0mri4z+EDqSxWnAm5M8Op1Ggov8oHbxdHtJG2 eFMl1Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778610643; x=1779215443; 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=P3hKQ9f1wEcmiWzhTST187E49tUgOgiKvr3Kl31j/+w=; b=QpwnmOl6hrRVivB9DSL3a2MBYAAsBkDprfw6vkeVmiO9jFF8YhJycrEs8wdmUY7xDm WRatvdELV3SORfWaIa0KfrtHXQjlYw3gr27i+ApnhcEkN1VfHGHTCwJFs1t9QI6o9oN0 Jxqn/DeENyDcJVLl9U0SrDNYqBeCI7D8ykeKNsRAsRrMBkF7g7VmE1YO4yiMpzz2GWHs ev5UB5ntRknmZTGJiwJKMSUAF/5yYReZeDiEQ0Bd0oClOf5URqC1GKzIoqtRT+ztrCFj YcJx4hiqdeshIMY+X1/nnw7h9fvUz5kcX9Kb4ZaIm52/e6uL2+6GVnrdHGST42Uylt51 2b9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778610643; x=1779215443; 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=P3hKQ9f1wEcmiWzhTST187E49tUgOgiKvr3Kl31j/+w=; b=d/Fl+XdK9jdpoRa+ar5SJHO9M0YIQpE8JS1VKRLP8mFByFc7C57GLXaNPQLLZsjOdD S4oWUWyBTazJwlWnQ/RkionbPErJOCItvxWqb5gWETcUaxupGS6BfNjq1yf39FQPAw3L xInzlvfToHMKZWm4FGQhC8m2Wc5mBmHzFVMt8RjT2m9DBzcV0XQU1GbaS+D6rgOUC2g+ Q76mi7SLqLQdtfaGTuR6xYPOuJjRsB0vEu2SErklzJNrdxR8jISRuUNuzm6Br4SNjwWT a2PCFdpZc63WOJMpHOLE2q2LbkNNO+kwrjrmw/Lb01B9wLD6cQiMrAgDwQnT47lSp6ak g8gg== X-Gm-Message-State: AOJu0YxeII7W0zT7e3gN81HmJqEQ3nqhBz+xC8Mn0W9TYtohmUva9RwR MxMMhyZWGXkgXdbRA5Dm6Jlb0OoEQRn9IcWuF6fIjP4skpD0fh3FHm85ep0x/OOqOldKC6HEByE jSo1+u3eDHpmhIZuHZQzVLiiky19VblfhrLCuI/ck/1hqFingHwgXG9k/aKGDpJQUV3vv X-Gm-Gg: Acq92OEt5nmUl4NpQgxXlaTqugqzZB7P6oYbnWGCm8FVorOmoPc7CyIDYf/Z6CD9jkB ElzUIRV6XObSY8TzRPpTFJv7ciN7H28QHVaFl0RJa9wMt2ocZ1yZqOYBZpKCv16hkW/ddq+HVtn dBDsHO6QXEfYpE9NDc2d6PpnNd3OBTp+eIiepaQlOhsbZIZDySsQHDE6qzyzU82+o47w9uoQtif pBtNl+5gJDWCb38DZ/Rmh+dpSgC/qfw8rJaYZRDb6vIMXkJh89QJ843nyv28otN50Vdo4HbMWD/ a+VKhPRbQDMW3CwsT6DctFmc09SENRPS925yfeiWiuj9pGRBZe0eM4RRUzDtCfuOTiKf67QCUhh LyYOnX1nG4kGOlES+XgfrD2z72jfWf+1AE4EaejLf1wgNqowhINENUZIo/7TKuE9FP9/eH0aYUA RiD3r3ng== X-Received: by 2002:a05:7022:218:b0:128:d3de:c9e4 with SMTP id a92af1059eb24-13436aa4a35mr46512c88.30.1778610643149; Tue, 12 May 2026 11:30:43 -0700 (PDT) X-Received: by 2002:a05:7022:218:b0:128:d3de:c9e4 with SMTP id a92af1059eb24-13436aa4a35mr46453c88.30.1778610641825; Tue, 12 May 2026 11:30:41 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org, peter.maydell@linaro.org, richard.henderson@linaro.org, pbonzini@redhat.com, stefanha@redhat.com Cc: pierrick.bouvier@oss.qualcomm.com Subject: [PULL 2/5] qom/object: initialize type_table in static ctor with fundamental QOM types Date: Tue, 12 May 2026 11:30:27 -0700 Message-ID: <20260512183030.1431103-3-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260512183030.1431103-1-pierrick.bouvier@oss.qualcomm.com> References: <20260512183030.1431103-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: AdVSXSdeOeQZvrRd7JmDeqnjlwMon9-h X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEyMDE5MiBTYWx0ZWRfX4jTr/AxSt0lw HQlkY+7vFFHRlcRWB71K34NJMdHWtAAO+8N6K5ub0qQiSvuS8UMmhZPE522GEa7hAB90NTVxHdX 9/K5LgVHZ2ZQJOMD2B5amZ4B7oqXxnUDGjC1rUqSemM6zpPchtOwfjR03rCg3nuZnE/pombVCZF GcSPZBB24HOiKOXr9shvi8UGKKDmGk1xAbqxMhSGnwKRIgsffvHtaviMFdRP2dFwNPMmbvcl6z8 n/mJFs8h7eQqwfyxXCJmxo6dFhBvUPBcHKO+eKSBZlJXMyRMLrq5MJEH284bkiQPMrUXI/jJBKV Wp0dGAIQoqyMvSq5+a1ENKPkXybZViJbRFF4WSTVdDZUoON1MZjtwdHkAg61DhPl3KS+SHKKNJp TO/lOi09AHVQgNSlHHdQjrrpNVQdbiMftHqkG67yCaFjk8vx5kxaQr1MEPcIW7NOcQjzb+pi+WX q2ndYrMZ/KZSt8MgAkw== X-Proofpoint-ORIG-GUID: AdVSXSdeOeQZvrRd7JmDeqnjlwMon9-h X-Authority-Analysis: v=2.4 cv=BoGtB4X5 c=1 sm=1 tr=0 ts=6a0371d4 cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==: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=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=pDBHowQsxXgegazyqkAA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=cvBusfyB2V15izCimMoJ:22 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 lowpriorityscore=0 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605120192 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: 1778610762049158500 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 Link: https://lore.kernel.org/qemu-devel/20260512150208.1167711-3-pierrick.= bouvier@oss.qualcomm.com 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 Sat May 30 17:45:08 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=1778610709; cv=none; d=zohomail.com; s=zohoarc; b=AQjoIUmzdtL3LmdQqt453ksjO2pzB/WhdV9W5NL8bu3FRgqSUFOvooxCLgsFrjavFoBdIoMh3sbYWbt0OaToHk69OF4akjSrUl/kQjPQwq6r0C9IQg358eOUce7MEa63shWUAWCAh70Iw3EoKeRJDgV6isKDaE8swZRVv1Uivjg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778610709; 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=IeFS2Ua8iDempqR2GwraBi/JI/P6JIfPkDjadgcDfak=; b=g3voKW6EHgKaWwpFBjDhFoiBK2STlhUReZ6DPJQ3L/dcclpNkeVAgdgXpt3RINEVQdJ6/hd8S8G+rlMYR8SGpSL66TMRWTEAEgBAED75cvB+5l01bM+f7WfotVopY3GFUpySG7YEguraJwBHhO/2RNwc7zh9upcaX3L03o5XmzI= 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 1778610709763624.5160319823539; Tue, 12 May 2026 11:31:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wMrtA-0001Jv-LS; Tue, 12 May 2026 14:31: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 1wMrsa-0001F6-JV for qemu-devel@nongnu.org; Tue, 12 May 2026 14:30:54 -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 1wMrsU-00017Q-Qq for qemu-devel@nongnu.org; Tue, 12 May 2026 14:30:50 -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 64CE1hab3581955 for ; Tue, 12 May 2026 18:30:45 GMT Received: from mail-dl1-f70.google.com (mail-dl1-f70.google.com [74.125.82.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e43w1sggu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 12 May 2026 18:30:45 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-1329791f18fso7816327c88.1 for ; Tue, 12 May 2026 11:30:45 -0700 (PDT) Received: from hu-pbouvier-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1327865955fsm25221376c88.11.2026.05.12.11.30.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 May 2026 11:30:42 -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= IeFS2Ua8iDempqR2GwraBi/JI/P6JIfPkDjadgcDfak=; b=BHjU8wJCmOfLOcH1 UFhJtAt4a8nLKKTvwZe3QyWvpvjtMyKqhSYADSFsuh2+XbvcZgT/uXnXN4faou++ HszJcwd2G/2pvSexjx6169cIXX4Ws1g9JiKPjJ74PVMz0Yxplimv6sPb1PSBhpGw 8c+8ujT1DtWcQDklo8XYQEuWRO0AcJQ3113uZ9GM/3b8zOZv2gGpyLULnU84bi8Q F8QFeH1zM47l1sIApVQ8u3C4vaBi27j/J59CiUaThHuC9Km21QtWVw4NVl3F0Qqk R86fd3oPQcj7Hfxl/zCl92evmPxR3MCgD3VO8Iw8D581V0OH+jUuOiNb58OeC8iZ EiOrKg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778610644; x=1779215444; 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=IeFS2Ua8iDempqR2GwraBi/JI/P6JIfPkDjadgcDfak=; b=kwQAQYcvFxmtxvhfEkLh+KcB/d09czmiZQhiwY54mUQ8AI2OHifca33QPLI51rpPYA UGA73wlo1L0cJiBYJ721XyHEBMtDM3eZn152ws6dAQOvGFLNf5HpDO41rXygIJ6CNI4I eKSlJvxGqZteoDk2GyBXleTs36BsZpbMj6FHEoIvrZQdRTCtNArPwT48rSsRjg/iAtKX UXiMQoCbc/dacqcenmcDz81vvqKouqrNGGVocrTYOR+CAw/5Sp4Sj+UVY559ZLM4HHdT i7hdUfjeMCGOwpT84fZDxObLBniEiwD0xsomZUxg1+YjlqlmzlAXh3V+7CaPZgP4mxAp njow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778610644; x=1779215444; 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=IeFS2Ua8iDempqR2GwraBi/JI/P6JIfPkDjadgcDfak=; b=r4DCINJ6feGTTMJ6F3bj0uO0Ox6PxY/o2YMOibA5D4spNeJOOhPrTHaOYvryHtwWQH 1YdRlNBiD1W6kEyW0x0ZgPESx2tc8rRQQRoB4gZnkIPLgPIs+Eq6/mOONbr10l6jQ8/b zrT0dI5nLYOp44BS6Fp+BkLCzYOR6WsgPOkd0QK20AEYhQrxj+uvweTTgYEWeYxeVIPF 9hH1mbAmDaJVyPfSV2ZzGs2K/fH2ozQ22qeQbcKJ079R+X1m3wFPDyZb1EIr8z34Yym1 39btGT/itfw6p9kKH1ClnGR4qdfqGC+Ug31l+O2I0DUo5WRbjqb40yuuf49IfGCuozw5 EMhg== X-Gm-Message-State: AOJu0Yy7UDi1/84L/N/FQ51eLg9l+ccaSwNdKT6h3T8M/2MZriOnli0a G+Q3NQ7dDPly6zrHUZWaha36rX5Ogv8dmaKACswPaDqdHtH9O0FHO7EvGHXy4d3R4wsVB3Svzry uXl7ggT/CMexNHxu9PfT11Buq4NUvNVJI29fip/3Zv7/lnHN9oHpsW2txFuXeLe99XnQ3 X-Gm-Gg: Acq92OF60IH1xb01/FI7Jl2xn7fWDaNiZyYf5wGUGRqAcP31BA+Wpn7POXwwbVYbjtL lL4hVkZ9k1TFyC1+RDbiXedeuVx469coc8lWtqDsnmsF4KY8F95qnTjjP+DDshq7hQ8s9RWdVF2 AIXfhlATALhppks57EyKWQaSX9zbNHmJbnEq9E2OXuWSVahZvTM0nKFmEUJc7CPF5OknxCLFz43 NJ+84bwj56NayCWHL7ZwJnZ56IS0U6GWw4Es/CEQmCjhkH51UqAfw1qayL82JZrsOAR8b30Cdz4 UuVSBXwmaFITwEyew4Bv15GbRz7LgQj/oK4h3i8yUz1jm8c3XK3aVqxOxUmrLYMUbQFVLmGhhpg pSwxlrppmwbynGeqUmKlQJAIsoLR0CFEkLuhL9tgI1bgVku7DaXhHsOJmxFShG+HfOqlc6d7o2q ZM66nqHg== X-Received: by 2002:a05:7022:51f:b0:128:d450:bc76 with SMTP id a92af1059eb24-13436ba5839mr42333c88.26.1778610644136; Tue, 12 May 2026 11:30:44 -0700 (PDT) X-Received: by 2002:a05:7022:51f:b0:128:d450:bc76 with SMTP id a92af1059eb24-13436ba5839mr42312c88.26.1778610643458; Tue, 12 May 2026 11:30:43 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org, peter.maydell@linaro.org, richard.henderson@linaro.org, pbonzini@redhat.com, stefanha@redhat.com Cc: pierrick.bouvier@oss.qualcomm.com Subject: [PULL 3/5] target-info: introduce TargetInfo in QOM Date: Tue, 12 May 2026 11:30:28 -0700 Message-ID: <20260512183030.1431103-4-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260512183030.1431103-1-pierrick.bouvier@oss.qualcomm.com> References: <20260512183030.1431103-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: sJJjkaUdqNs3p8jgLRHII2xt6u-7us7l X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEyMDE5MiBTYWx0ZWRfX35mgqJvbAt8W pqRwey2gD556ivF9qRj16SO/vS0+34o2WiloNOuuATfxtt/xy7BfXBREjk1avZtOwEr8eX1RP1M pFpTkdf4nY9L0eQQ9XulWhMHNLOFp0K3/281ZOSfo+4bplyoJG/w0GjnirUxdSijdWvwrvaNsWx 9VsDhlhJ1rd+Ss8Exlfh2AQH+h07B+z2PtTV6TvtehFOEpUc8NZt4+9wqOxJds3CTfq+S4GaPxZ BzHBPTOITgoeaaP71FXM8z6SPTofsH/AmCyp9Vqapk46TWzP0oFRK3fF7l4Fsu9keU1HGKxNJr4 7GfBiLZeOBOUahemfL/8rzIfsXaPh1UW3Ez4x6GEj0VSafWnS5BSPYIxXnewbaxlgcrwcSgS7SK Ly/4VPz3gxnKspzQQZmFeCJNLsru97YZZUvrvErtR8ggNeXD8bVhNMwRaWRZn0U2xugWeGa4sqq TSStp47NHRasAoEUdSw== X-Proofpoint-ORIG-GUID: sJJjkaUdqNs3p8jgLRHII2xt6u-7us7l X-Authority-Analysis: v=2.4 cv=BoGtB4X5 c=1 sm=1 tr=0 ts=6a0371d5 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==: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=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=m9jNp3DcQOUD3SP0qqEA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=cvBusfyB2V15izCimMoJ:22 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 lowpriorityscore=0 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605120192 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: 1778610711969154100 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: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Link: https://lore.kernel.org/qemu-devel/20260512150208.1167711-4-pierrick.= bouvier@oss.qualcomm.com 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 ++-- 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 Sat May 30 17:45:08 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=1778610711; cv=none; d=zohomail.com; s=zohoarc; b=UAUYkNQi9Do9XBh8dHuRcO2RVIrDGOCBzBUtdd6RucHWqwOQaQNRzJDFKfU/mlKLUuoIACjYeuakEkZ/lyumYUEzPSK/3r1VxFFhmzJQbruKNY6C1HNw39miGseCsmpgneCh+4UuQQFV9LaVVKcMx/JQTqwDzJYL3oSYAKF+2U0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778610711; 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=qibsWY3Da6eimjGJh1/wpFGvGp/SMa3Z/HjdgH87Xz4=; b=XXRi0CgzCdWxf+CaxfwHzv48EKPXEiWvOvD3kYU3eMVEUpvTj5GHk7R7fqwjp9xrmnWQOEO84TitzRTiC4PwgLZQyUFMpWC/4YNfNYatbZ4oFqR/fozW/U1QBfSZhOsaOHZAxpVXVZ+rkb8G9dko21BhET02Y3SdMu5OeL+UBPY= 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 1778610711450949.7356550710434; Tue, 12 May 2026 11:31:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wMrtQ-0001U2-B1; Tue, 12 May 2026 14:31:46 -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 1wMrse-0001Gn-Am for qemu-devel@nongnu.org; Tue, 12 May 2026 14:30:56 -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 1wMrsW-00017d-LL for qemu-devel@nongnu.org; Tue, 12 May 2026 14:30:52 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64CGLKAW739995 for ; Tue, 12 May 2026 18:30:47 GMT Received: from mail-dl1-f70.google.com (mail-dl1-f70.google.com [74.125.82.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e42rhsyuu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 12 May 2026 18:30:46 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-12dc1c0b7ccso6314376c88.1 for ; Tue, 12 May 2026 11:30:46 -0700 (PDT) Received: from hu-pbouvier-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1327865955fsm25221376c88.11.2026.05.12.11.30.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 May 2026 11:30:44 -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= qibsWY3Da6eimjGJh1/wpFGvGp/SMa3Z/HjdgH87Xz4=; b=kYNj5oTiz8ADai4W OZ/xjblU90l8NiDr4jtNlpRd7bAKtecrFWHNvzFin4+H13UQAT5z2fXLe3Z86BMU gHl3xHAz4yITvOtop6BflH3Et9wZi4ixy0qWftqlKHYrUoziJRGByRPeYNwxN/fY 5RHG53Atvfojo1ORu7szVd8GAWYyOG7xjRXLcCfJanWCL4G0RGr2AjQOlhfVM34Z 6t5/4OQRfEOHWutNR5eAIbjCiqNZLODXSwcHznPifq/OgzyWFk3N3xugPit8WV39 TifHpl4SRMOsdYytaDqLdORqH8nJYgG8jBufblyRck5g+40mq0Dl2s+EOPG8VWrj 4keiEA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778610645; x=1779215445; 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=qibsWY3Da6eimjGJh1/wpFGvGp/SMa3Z/HjdgH87Xz4=; b=FOIusgaMK1CQOvEAbRmgSZ5+ZBwC2GTm8O980qTUScdGaxdz+w5SchzF4bGGLwZs1i r4b9L641jb7yyn96lstkgnWs7L6chZa0bwRE1jlSjrHhRZ3rb9WEHooE+tBG2aGVhscm WhaLQErtRdopbOTb4BruVcr35VWvh8HtSG1hEYbzpDT/95l2fbwi1IW96bbfMO0gJLzq 3eP6t26WOM2fpSdpYuuMG2Rq+bDKrJ2H7gQlM73KJ4NlCUeeXamBSdXwM3ubprqOdXbq tE9V+dqrScO767tmY1QOAhDLtSWd7LCBGa19p9ynbpLekmiHxO/70A8+1e76Hy/Tx3t9 JqRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778610645; x=1779215445; 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=qibsWY3Da6eimjGJh1/wpFGvGp/SMa3Z/HjdgH87Xz4=; b=G4zvxgVz/2KA5BGr/hY2lAnDPwK8M6Cdm4NPc147nz4CJLfqTbASXOCC6/od0qa3Im 51iOs4J/IhU7qWhEOyHIAwruKvdXOJZQ96LgJ+TBHkfZXrlld/8fye7TXM9DR33PPmg+ mwcC2vfBVbZ94rTCYG6ctifS0K+ujzVcXZ+QwbJB+2pXrXyGofIJgvOjsOQVN376XA1t cWdKWqT16NneV5ajGeQRPd1kundrvx+HkM39K5bJkULBkOrIVh+dd8B5rfEoDEeDTAqi S+dn8iih9ZjfU61s2Ir2LNM8vncg/jfZJXqcU4aVhnbStrjdUgqC+nqLygccJyrydEzW DGZw== X-Gm-Message-State: AOJu0Yzuh9IboxtuBbnqV4lwUDOLiz2lTi0GcLe1N3W2S2jblL+BhKlS TpFSibqpqqzceRAZTcZuJ1fSBXyfZ3t3EWLIqY4LQZ2+tTK3CmnAa7sE6qrlfCaNqnKzMZt2SJF A/xFbvq2xuaDG8QGCXpTUvwbzwIgfUa1Yj5qHJdfuGbPoRz05q/w4z6RWrAf83hKrtpB9 X-Gm-Gg: Acq92OGtt5j/LA18iRQLyP8SnOnA8My83mxxVZ5+ShSqS7lcfE3sqQuJbFQwP87lTzG p1u+MpiA1gZibfRSI3qiDJ/u9h2qLuYACSBiiBGw3KaEl+ST5Fz0N2LEnIYsw6y2LK56Qjd30gU AJPtT22uQmIGS1m27x1CA3D3U34Rm2ExCBe5jNNCDzQKcIjwiG0ArfZjHFVdrk9sXpRvfpVaDGB j09aKzIVKdFN0BjKJaWBZsH0h/bD7lO0zCrbnK/A5/bQzxJbGWACPtvH2XCQJizGKKkprKdjcRc q8QZzP3hotaGMuK6ubNpXdAEgUY2kZjnaA4TFKgftM0bbgbNzvsjP0ojVTBgxV3f+lC1tsjEs3K 8X7zlyTPjOwQpSWF7bHj311+RjDJ6w0iTuRwf4HjtDOXxzuznE4DFSDeD56CSs0c9HyJJQ6f2tF uBIDO4sQ== X-Received: by 2002:a05:7022:920:b0:133:39b9:9720 with SMTP id a92af1059eb24-1341ebd8328mr103806c88.16.1778610645363; Tue, 12 May 2026 11:30:45 -0700 (PDT) X-Received: by 2002:a05:7022:920:b0:133:39b9:9720 with SMTP id a92af1059eb24-1341ebd8328mr103787c88.16.1778610644815; Tue, 12 May 2026 11:30:44 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org, peter.maydell@linaro.org, richard.henderson@linaro.org, pbonzini@redhat.com, stefanha@redhat.com Cc: pierrick.bouvier@oss.qualcomm.com Subject: [PULL 4/5] target-info-qom: detect target from QOM Date: Tue, 12 May 2026 11:30:29 -0700 Message-ID: <20260512183030.1431103-5-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260512183030.1431103-1-pierrick.bouvier@oss.qualcomm.com> References: <20260512183030.1431103-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: AW1haW4tMjYwNTEyMDE5MiBTYWx0ZWRfX1egyfFuXLka0 aSHSbvQiXu6DwqmtGa2XdBi+Pkv8s3RYsG2OyM4b/xpZUuZ+sMYEUExU+VaKwyphyDy+kN19uOG xRLyYaRIfKHPazfDCyMvfnoexsEr8xYRqsfmqnqxYCfSmaBsokHqWzWogtAWLIOMAsC2/N8rcS5 NYV3V1ZzwlijEE8cMnGZfkbGC4a0awlMS1JQbq6ussyFofviA4RhJr2hIOpoCAWA69FM2xUmwMT aog5RJDRBhjzN/LvVck2w4kTsw3yVqL4kxblDBhQDUiW0knLDlzkmze0VUIOyfZQoFj+1J9xrqQ Eqo/15UdL26cUjKxl5wWRSxZGM/DnfJu89w2kEzCETUnwk2tUo7CfcnnVA7FVpW71dp03fQeTMH An9WdPYL9gDwh735xFvwZOUn9HU7/5u72moyX2uaWZSxb14htDLSuKsa59n923O7iTZacOztlBb s/rFnNzXvDnde69Z53g== X-Proofpoint-GUID: FyAP_WjoYb8MedRWHh9cbhJIbLGwbo8x X-Authority-Analysis: v=2.4 cv=GbMnWwXL c=1 sm=1 tr=0 ts=6a0371d6 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=20KFwNOVAAAA:8 a=KKAkSRfTAAAA:8 a=pDBHowQsxXgegazyqkAA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: FyAP_WjoYb8MedRWHh9cbhJIbLGwbo8x 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 spamscore=0 phishscore=0 bulkscore=0 adultscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605120192 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: 1778610713915158500 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 Reviewed-by: Richard Henderson Link: https://lore.kernel.org/qemu-devel/20260512150208.1167711-5-pierrick.= bouvier@oss.qualcomm.com Signed-off-by: Pierrick Bouvier --- 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 Sat May 30 17:45:08 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=1778610764; cv=none; d=zohomail.com; s=zohoarc; b=kdKHLqPyviy72tudU6bvhln2jDIz97AYnbBdWQd9KsXVZ2WU/FCZyhSdKRtVkrJgyrc9+znxPKmZbTsBxkL6MXWFgoBDdRWGu9uE8LYVKqifaEU8EP11q07rMwz5rMWmM2OMbUisbnhVClfahxjArKfhkLcUUoAcgG2siNzhtdU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778610764; 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=5wRLcL+1F4h0dL4+JRcTU/5s16XDZUkCPQcIUEl4wW4=; b=B+ARWtzVsMz4N53X3goPUGbtZ6UUIVxu4V8IsN0h9SyEYN6m8SIhsuWVor5h1zlvXVFJUq/u5k65ViuxH2XsfKmbezX0dpRT5eUjbTxE/va1y4u+v5YY+ZxfQecsH5zJIKvrsMhs66TfBxWNG5tnpJ/GXreWviqIje5IrE6Z9w4= 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 1778610764092424.6492240302323; Tue, 12 May 2026 11:32:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wMrtq-0001l3-2T; Tue, 12 May 2026 14:32:17 -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 1wMrse-0001Gr-DH for qemu-devel@nongnu.org; Tue, 12 May 2026 14:30:56 -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 1wMrsY-00018c-G8 for qemu-devel@nongnu.org; Tue, 12 May 2026 14:30:56 -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 64CC4UcD3321004 for ; Tue, 12 May 2026 18:30:49 GMT Received: from mail-dl1-f72.google.com (mail-dl1-f72.google.com [74.125.82.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e43w1sgh7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 12 May 2026 18:30:48 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-1334825de51so775886c88.0 for ; Tue, 12 May 2026 11:30:48 -0700 (PDT) Received: from hu-pbouvier-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1327865955fsm25221376c88.11.2026.05.12.11.30.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 May 2026 11:30:45 -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= 5wRLcL+1F4h0dL4+JRcTU/5s16XDZUkCPQcIUEl4wW4=; b=LgmoBQS0tDv5o3Bl J3T+2Boun17Kd8ZULrFi+CvKjaRDkCBZqG+d79dwSSkjlMVmSmtRvwlYbkkV79D0 tTTZyRqnDNIlN6YD0RSAP1KlqrrkDW+E9IVoj/l74ctNZJZRML+iJVMrO9Pr4XQp /DhcpQFCw4BBM+jsRCE5fMR5isAxjxL5cLvdRFJ6joJ22C/1hEP/7dW/7safB3qO MkF+2A020vvAKW+wJ0zHbywePNUX2A3kfVE7OnPGcJZYnlKhNIHETFt2AItcXPkN ae0eNiuBYNe67IBxVeUnEdNbg45s7Sz9AP0tnnByGYcmbBh0aP30xif7s2IlL4Ls gaf+oQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778610648; x=1779215448; 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=5wRLcL+1F4h0dL4+JRcTU/5s16XDZUkCPQcIUEl4wW4=; b=jvJVkvovfllNaA3cG6RreOFGn3noi2et7z/gId8ejpuU+HgHxfJQ9Juec97JGqfDKz atyiWAE8on6oHr8laT1Mx4laNurP2XLkCHogLTgdWG/gEN0Q+vy+fwOcrTidyN0lgooH w2IhTAzMNfkI5AbO7zccQQU72tF+cdDIVMkhZSH03fq2d+VhQn6toilDY2mRsRo+sSsQ hn+7xvXBp1H60JJPFdxK4dplU8vLrvqTmTBoioAEcdG9grZmsIL0CfwGyZ8Fo0jrgc9M 76sj/DoTrWIUbnjIXiiEx7X7KbqwbJVbZkK7XpcYKNxYuDd5A4ABo++xMg3NS8Ex9rI+ rDMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778610648; x=1779215448; 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=5wRLcL+1F4h0dL4+JRcTU/5s16XDZUkCPQcIUEl4wW4=; b=F/12AqddbJW6RS0T+QA9S3R+Uri2Inwj6C45qykQiENYMrPqwu4sOWpoywbAcRYy6F snvN/oPHxDqvNTQC0BeC59VlvhLDfF00v/6/sh8qgOH1B32I2pAO774bJy22pg7O4DgH fVbwd98FsmK29Y3M/RrzCit6xpo9VKuWD5IGxW4jKIdfJvt1Mgx0HBxxyxx9QGnIG6gZ IEs65Be9Rzumzy9rNttfQcnl8AfFIgn2ZQw+2JjZQiawb+K+WkIRtskshfEySbUKnu12 spxyRJqAv/Zgf4vTTC+8seRC6MZOBKxPzwfDQfxmxG9EyhCvFPCyVy2YcKL4DMsCwIw7 NIqA== X-Gm-Message-State: AOJu0YyLTxSf6AbIasI4rW0vv4UTX0QUk0fpOTgviQXyZDYBHGk9CB5T /RxEMoIfrl3q4xVvPJSp1fAUhnMACeWxdKC9nXZBfraoi8L5ENC/b6JZ1Pn58JzUPUGSmBi+HUX tY30WGBflIn1xRIJ9tCZd6HzwIBXL1aR8yhFkFUKl8h84GbvVG3qQSX5QQT445zJMRiWc X-Gm-Gg: Acq92OEZagVvtfTsw2ErEVurS4EOkyp4t+BZIvOr99oA7JegFo0jpkX+i7SQbklgWlm CHdqp1Jz84rBRcsZUOdUiD6Z4oJKM/SBWxPCX2zk8YPfeiB0KVxvRnloXYcZ76QK3Tkos4QbH6G NsWJ2Zx/h9A8qVhVOW52KRFDFsGsm+Zb5uYqdWSQ5xrsnBAPv2S+06oAEcUgaoFdZx7S2kv4lQ3 /+UYuQno7bXb3ou/D6fDTp4iq9Wi2lWg1D8xk0njFfvw1+fP3JbhKUjDY+hy6FVWuSV9J73gn9w pVqzm3avGBPiKmdF3oWZgUtMKvzcbGrZfxh3ZqlI5sIA/MNZ2BfOAdSkqoIfcF0+Old/3W5cjYP 5cuBEUT8v9PKEvBxNOGYDIJrcy1D7oOoICMhsxNLKkibOuyGWqP4ABc5HEoPaffxi7KlpQs+IK+ f5QRDp/g== X-Received: by 2002:a05:7022:38b:b0:119:e56c:18b1 with SMTP id a92af1059eb24-134369a02ecmr56561c88.25.1778610647778; Tue, 12 May 2026 11:30:47 -0700 (PDT) X-Received: by 2002:a05:7022:38b:b0:119:e56c:18b1 with SMTP id a92af1059eb24-134369a02ecmr56543c88.25.1778610647207; Tue, 12 May 2026 11:30:47 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org, peter.maydell@linaro.org, richard.henderson@linaro.org, pbonzini@redhat.com, stefanha@redhat.com Cc: pierrick.bouvier@oss.qualcomm.com Subject: [PULL 5/5] target-info: replace target_info() in system-mode Date: Tue, 12 May 2026 11:30:30 -0700 Message-ID: <20260512183030.1431103-6-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260512183030.1431103-1-pierrick.bouvier@oss.qualcomm.com> References: <20260512183030.1431103-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: IWBZr6U50p8bJRSt_yjLmBcZmVMAnCPP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEyMDE5MiBTYWx0ZWRfX4vfCbMUGuNi3 5qtUjssWk44GaN/tLwZXLRf+G5CLGKi3lKJBCv8+2DEZAtfHscbiJhCBLrIb9rr8bXeXBs67RBd 6q9IA+mBcXwaqwXRnNNpFyOQC6QnwlABxnrtGi/XcA8giHPC0Ur11xjL1lXHtFYophu53FPdCxI Y/Rq4pJ6f9UhMUrrUq47+5S8NL9Ds3ncGe1hw94xXi9mlvkW1Wlw1B88uyNsMK+MoVPfKz6nZs/ bG3vFDYP+Mzos2XQJvi2+Qq+YnCJaz179FtOOvwQMznuGjBkvMYG+Fp/2mSQC0SAALRyFYXjgIx bGGTjbC2M0C+2QZ3xO4TDhiWfaIoJs0VfuH2CF967d0X+HNBKBG4bslfCkqG9kHyJIgYlSO84lc EPTyRIQ6qsA79k3/GNvfYs+p0i8OuwwxwcBWmHbHRRHitX5sRRkKD14TqAc0djY1c5noOzNQl7Q Z/VTRFPemX9zaFUb9wg== X-Proofpoint-ORIG-GUID: IWBZr6U50p8bJRSt_yjLmBcZmVMAnCPP X-Authority-Analysis: v=2.4 cv=BoGtB4X5 c=1 sm=1 tr=0 ts=6a0371d8 cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==: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=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=20KFwNOVAAAA:8 a=KKAkSRfTAAAA:8 a=pDBHowQsxXgegazyqkAA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=cvBusfyB2V15izCimMoJ:22 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 lowpriorityscore=0 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605120192 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: 1778610766089158500 We now can use TargetInfo information available from QOM, and remove duplicated target_info() symbol. Reviewed-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Link: https://lore.kernel.org/qemu-devel/20260512150208.1167711-6-pierrick.= bouvier@oss.qualcomm.com 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