From nobody Sun Feb 8 21:47:36 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497876869443695.1212712435544; Mon, 19 Jun 2017 05:54:29 -0700 (PDT) Received: from localhost ([::1]:42416 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dMwCJ-0006fV-Dk for importer@patchew.org; Mon, 19 Jun 2017 08:54:27 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42435) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dMw8Y-0002wg-Io for qemu-devel@nongnu.org; Mon, 19 Jun 2017 08:50:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dMw8W-0004SQ-Tt for qemu-devel@nongnu.org; Mon, 19 Jun 2017 08:50:34 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49050) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dMw8W-0004RZ-Kz for qemu-devel@nongnu.org; Mon, 19 Jun 2017 08:50:32 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7B57681129 for ; Mon, 19 Jun 2017 12:50:31 +0000 (UTC) Received: from pxdev.xzpeter.org.com (ovpn-12-67.pek2.redhat.com [10.72.12.67]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1CFC88A9CC; Mon, 19 Jun 2017 12:50:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 7B57681129 Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=peterx@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 7B57681129 From: Peter Xu To: qemu-devel@nongnu.org Date: Mon, 19 Jun 2017 20:49:39 +0800 Message-Id: <1497876588-947-5-git-send-email-peterx@redhat.com> In-Reply-To: <1497876588-947-1-git-send-email-peterx@redhat.com> References: <1497876588-947-1-git-send-email-peterx@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Mon, 19 Jun 2017 12:50:31 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v3 04/13] accel: introduce AccelState.global_props X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Laurent Vivier , Eduardo Habkost , Juan Quintela , "Dr . David Alan Gilbert" , peterx@redhat.com, Markus Armbruster Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Introduce this new field for the accelerator instances so that each specific accelerator in the future can register its own global properties to be used further by the system. It works just like how the old machine compatible properties do, but only tailored for accelerators. Use the newly exported register_compat_prop() to pass the accelerator global properties to the global_props list. Signed-off-by: Peter Xu --- accel.c | 12 ++++++++++++ include/sysemu/accel.h | 11 +++++++++++ vl.c | 1 + 3 files changed, 24 insertions(+) diff --git a/accel.c b/accel.c index 62edd29..f747d65 100644 --- a/accel.c +++ b/accel.c @@ -130,6 +130,18 @@ void configure_accelerator(MachineState *ms) } } =20 +static void accel_prop_pass_to_global(gpointer data, gpointer user_data) +{ + GlobalProperty *prop =3D data; + + register_compat_prop(prop->driver, prop->property, + prop->value, false); +} + +void accel_register_compat_props(AccelState *accel) +{ + g_list_foreach(accel->global_props, accel_prop_pass_to_global, NULL); +} =20 static void tcg_accel_class_init(ObjectClass *oc, void *data) { diff --git a/include/sysemu/accel.h b/include/sysemu/accel.h index 15944c1..83bb60e 100644 --- a/include/sysemu/accel.h +++ b/include/sysemu/accel.h @@ -28,6 +28,15 @@ typedef struct AccelState { /*< private >*/ Object parent_obj; + + /*< public >*/ + /* + * Global properties that would be applied when specific + * accelerator is chosen. It works just like + * MachineState.compat_props but it's for accelerators not + * machines. + */ + GList *global_props; } AccelState; =20 typedef struct AccelClass { @@ -57,5 +66,7 @@ typedef struct AccelClass { extern int tcg_tb_size; =20 void configure_accelerator(MachineState *ms); +/* Register accelerator specific global properties */ +void accel_register_compat_props(AccelState *accel); =20 #endif diff --git a/vl.c b/vl.c index c58ffc0..d3f5594 100644 --- a/vl.c +++ b/vl.c @@ -4553,6 +4553,7 @@ int main(int argc, char **argv, char **envp) exit (i =3D=3D 1 ? 1 : 0); } =20 + accel_register_compat_props(current_machine->accelerator); machine_register_compat_props(current_machine); =20 qemu_opts_foreach(qemu_find_opts("global"), --=20 2.7.4