From mboxrd@z Thu Jan 1 00:00:00 1970 From: Igor Mammedov Subject: Re: [PATCH for-3.2 v4 15/28] hw: apply accel compat properties without touching globals Date: Wed, 28 Nov 2018 18:49:33 +0100 Message-ID: <20181128184933.66391782@redhat.com> References: <20181127092801.21777-1-marcandre.lureau@redhat.com> <20181127092801.21777-16-marcandre.lureau@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gS3xz-0007y1-TX for xen-devel@lists.xenproject.org; Wed, 28 Nov 2018 17:49:39 +0000 In-Reply-To: <20181127092801.21777-16-marcandre.lureau@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: =?UTF-8?B?TWFyYy1BbmRyw6k=?= Lureau Cc: Stefano Stabellini , qemu-devel@nongnu.org, "open list:X86" , Anthony Perard , Paolo Bonzini , Andreas =?UTF-8?B?RsOkcmJl?= =?UTF-8?B?cg==?= List-Id: xen-devel@lists.xenproject.org T24gVHVlLCAyNyBOb3YgMjAxOCAxMzoyNzo0OCArMDQwMApNYXJjLUFuZHLDqSBMdXJlYXUgPG1h cmNhbmRyZS5sdXJlYXVAcmVkaGF0LmNvbT4gd3JvdGU6Cgo+IEludHJvZHVjZSBvYmplY3RfYXBw bHlfZ2xvYmFsX3Byb3BzKCkgZnVuY3Rpb24sIHRvIGFwcGx5IGNvbXBhdGliaWxpdHkKPiBwcm9w ZXJ0aWVzIGZyb20gYSBHUHRyQXJyYXkuCj4gCj4gRm9yIGFjY2VsIGNvbXBhdGliaWxpdHkgcHJv cGVydGllcywgYXBwbHkgdGhlbSBkdXJpbmcKPiBkZXZpY2VfcG9zdF9pbml0KCksIGFmdGVyIGFj Y2VsX3JlZ2lzdGVyX2NvbXBhdF9wcm9wcygpIGhhcyBzZXQgdGhlbS4KPiAKPiBUbyBwb3B1bGF0 ZSB0aGUgY29tcGF0aWJpbGl0eSBwcm9wZXJ0aWVzLCBpbnRyb2R1Y2UgU0VUX0NPTVBBVCgpLCBh Cj4gbW9yZSBnZW5lcmljIHZlcnNpb24gb2YgU0VUX01BQ0hJTkVfQ09NUEFUKCkgdGhhdCBjYW4g c2V0IGNvbXBhdAo+IHByb3BlcnRpZXMgb24gb3RoZXIgb2JqZWN0cyB0aGFuIE1hY2hpbmUsIGFu ZCB1c2luZyBHUHRyQXJyYXkuCj4gCj4gU2lnbmVkLW9mZi1ieTogTWFyYy1BbmRyw6kgTHVyZWF1 IDxtYXJjYW5kcmUubHVyZWF1QHJlZGhhdC5jb20+Cj4gLS0tCj4gIGluY2x1ZGUvaHcvcWRldi1j b3JlLmggfCAxMyArKysrKysrKysrKysrCj4gIGluY2x1ZGUvcW9tL29iamVjdC5oICAgfCAgMyAr KysKPiAgaW5jbHVkZS9zeXNlbXUvYWNjZWwuaCB8ICA0ICstLS0KPiAgYWNjZWwvYWNjZWwuYyAg ICAgICAgICB8IDEyIC0tLS0tLS0tLS0tLQo+ICBody9jb3JlL3FkZXYuYyAgICAgICAgIHwgMTEg KysrKysrKysrKysKPiAgaHcveGVuL3hlbi1jb21tb24uYyAgICB8IDM4ICsrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tCj4gIHFvbS9vYmplY3QuYyAgICAgICAgICAgfCAyNSAr KysrKysrKysrKysrKysrKysrKysrKysrCj4gIHZsLmMgICAgICAgICAgICAgICAgICAgfCAgMiAr LQo+ICA4IGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQo+ IApbLi4uXQoKPiBkaWZmIC0tZ2l0IGEvdmwuYyBiL3ZsLmMKPiBpbmRleCBmYTI1ZDFhZTJkLi5j MDZlOTQyNzFjIDEwMDY0NAo+IC0tLSBhL3ZsLmMKPiArKysgYi92bC5jCj4gQEAgLTI5NjMsNyAr Mjk2Myw3IEBAIHN0YXRpYyB2b2lkIHVzZXJfcmVnaXN0ZXJfZ2xvYmFsX3Byb3BzKHZvaWQpCj4g ICAqLwo+ICBzdGF0aWMgdm9pZCByZWdpc3Rlcl9nbG9iYWxfcHJvcGVydGllcyhNYWNoaW5lU3Rh dGUgKm1zKQo+ICB7Cj4gLSAgICBhY2NlbF9yZWdpc3Rlcl9jb21wYXRfcHJvcHMobXMtPmFjY2Vs ZXJhdG9yKTsKPiArICAgIGFjY2VsX3JlZ2lzdGVyX2NvbXBhdF9wcm9wcyhBQ0NFTF9HRVRfQ0xB U1MobXMtPmFjY2VsZXJhdG9yKS0+Y29tcGF0X3Byb3BzKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCkFjY2VwdGFi bGUgd2F5IHRvIGRvIGFib3ZlIGlzOgogRm9vICpmb28gPUNBU1Qoc29tZXRoaW5nKQogRlVOQyhm b28tPm1lbWJlcikKaWYgSSByZWNhbGwgY29ycmVjdGx5Cgo+ICAgICAgbWFjaGluZV9yZWdpc3Rl cl9jb21wYXRfcHJvcHMobXMpOwo+ICAgICAgdXNlcl9yZWdpc3Rlcl9nbG9iYWxfcHJvcHMoKTsK PiAgfQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44863) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gS3y7-0002Vp-Mz for qemu-devel@nongnu.org; Wed, 28 Nov 2018 12:49:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gS3y2-0004ux-LU for qemu-devel@nongnu.org; Wed, 28 Nov 2018 12:49:46 -0500 Received: from mx1.redhat.com ([209.132.183.28]:39185) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gS3y0-0004gV-Oi for qemu-devel@nongnu.org; Wed, 28 Nov 2018 12:49:42 -0500 Date: Wed, 28 Nov 2018 18:49:33 +0100 From: Igor Mammedov Message-ID: <20181128184933.66391782@redhat.com> In-Reply-To: <20181127092801.21777-16-marcandre.lureau@redhat.com> References: <20181127092801.21777-1-marcandre.lureau@redhat.com> <20181127092801.21777-16-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH for-3.2 v4 15/28] hw: apply accel compat properties without touching globals List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?TWFyYy1BbmRyw6k=?= Lureau Cc: qemu-devel@nongnu.org, Stefano Stabellini , Anthony Perard , Andreas =?UTF-8?B?RsOkcmJl?= =?UTF-8?B?cg==?= , Paolo Bonzini , "open list:X86" On Tue, 27 Nov 2018 13:27:48 +0400 Marc-Andr=C3=A9 Lureau wrote: > Introduce object_apply_global_props() function, to apply compatibility > properties from a GPtrArray. >=20 > For accel compatibility properties, apply them during > device_post_init(), after accel_register_compat_props() has set them. >=20 > To populate the compatibility properties, introduce SET_COMPAT(), a > more generic version of SET_MACHINE_COMPAT() that can set compat > properties on other objects than Machine, and using GPtrArray. >=20 > Signed-off-by: Marc-Andr=C3=A9 Lureau > --- > include/hw/qdev-core.h | 13 +++++++++++++ > include/qom/object.h | 3 +++ > include/sysemu/accel.h | 4 +--- > accel/accel.c | 12 ------------ > hw/core/qdev.c | 11 +++++++++++ > hw/xen/xen-common.c | 38 +++++++++++++++++++------------------- > qom/object.c | 25 +++++++++++++++++++++++++ > vl.c | 2 +- > 8 files changed, 73 insertions(+), 35 deletions(-) >=20 [...] > diff --git a/vl.c b/vl.c > index fa25d1ae2d..c06e94271c 100644 > --- a/vl.c > +++ b/vl.c > @@ -2963,7 +2963,7 @@ static void user_register_global_props(void) > */ > static void register_global_properties(MachineState *ms) > { > - accel_register_compat_props(ms->accelerator); > + accel_register_compat_props(ACCEL_GET_CLASS(ms->accelerator)->compat= _props); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Acceptable way to do above is: Foo *foo =3DCAST(something) FUNC(foo->member) if I recall correctly > machine_register_compat_props(ms); > user_register_global_props(); > }