From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37283) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b4pef-0000wC-SH for qemu-devel@nongnu.org; Mon, 23 May 2016 09:12:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b4peT-0001Cf-C1 for qemu-devel@nongnu.org; Mon, 23 May 2016 09:12:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:58630) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b4peT-0001CQ-3j for qemu-devel@nongnu.org; Mon, 23 May 2016 09:12:09 -0400 From: Gerd Hoffmann Date: Mon, 23 May 2016 15:12:00 +0200 Message-Id: <1464009123-5814-2-git-send-email-kraxel@redhat.com> In-Reply-To: <1464009123-5814-1-git-send-email-kraxel@redhat.com> References: <1464009123-5814-1-git-send-email-kraxel@redhat.com> Subject: [Qemu-devel] [PULL 1/4] xen: introduce dummy system device List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Juergen Gross , Gerd Hoffmann , Stefano Stabellini , Anthony Perard , "open list:X86" From: Juergen Gross Introduce a new dummy system device serving as parent for virtual buses. This will enable new pv backends to introduce virtual buses which are removable again opposed to system buses which are meant to stay once added. Signed-off-by: Juergen Gross Acked-by: Anthony PERARD Reviewed-by: Wei Liu Message-id: 1463062421-613-2-git-send-email-jgross@suse.com Signed-off-by: Gerd Hoffmann --- hw/xenpv/xen_machine_pv.c | 40 ++++++++++++++++++++++++++++++++++++++++ include/hw/xen/xen_backend.h | 1 + 2 files changed, 41 insertions(+) diff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c index fc13535..48d5bc6 100644 --- a/hw/xenpv/xen_machine_pv.c +++ b/hw/xenpv/xen_machine_pv.c @@ -25,10 +25,15 @@ #include "qemu/osdep.h" #include "hw/hw.h" #include "hw/boards.h" +#include "hw/sysbus.h" #include "hw/xen/xen_backend.h" #include "xen_domainbuild.h" #include "sysemu/block-backend.h" +#define TYPE_XENSYSDEV "xensysdev" + +DeviceState *xen_sysdev; + static void xen_init_pv(MachineState *machine) { DriveInfo *dinfo; @@ -67,6 +72,9 @@ static void xen_init_pv(MachineState *machine) break; } + xen_sysdev = qdev_create(NULL, TYPE_XENSYSDEV); + qdev_init_nofail(xen_sysdev); + xen_be_register("console", &xen_console_ops); xen_be_register("vkbd", &xen_kbdmouse_ops); xen_be_register("vfb", &xen_framebuffer_ops); @@ -101,6 +109,38 @@ static void xen_init_pv(MachineState *machine) xen_init_display(xen_domid); } +static int xen_sysdev_init(SysBusDevice *dev) +{ + return 0; +} + +static Property xen_sysdev_properties[] = { + {/* end of property list */}, +}; + +static void xen_sysdev_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(klass); + SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass); + + k->init = xen_sysdev_init; + dc->props = xen_sysdev_properties; +} + +static const TypeInfo xensysdev_info = { + .name = TYPE_XENSYSDEV, + .parent = TYPE_SYS_BUS_DEVICE, + .instance_size = sizeof(SysBusDevice), + .class_init = xen_sysdev_class_init, +}; + +static void xenpv_register_types(void) +{ + type_register_static(&xensysdev_info); +} + +type_init(xenpv_register_types); + static void xenpv_machine_init(MachineClass *mc) { mc->desc = "Xen Para-virtualized PC"; diff --git a/include/hw/xen/xen_backend.h b/include/hw/xen/xen_backend.h index c839eeb..b4b4ff0 100644 --- a/include/hw/xen/xen_backend.h +++ b/include/hw/xen/xen_backend.h @@ -60,6 +60,7 @@ extern xc_interface *xen_xc; extern xenforeignmemory_handle *xen_fmem; extern struct xs_handle *xenstore; extern const char *xen_protocol; +extern DeviceState *xen_sysdev; /* xenstore helper functions */ int xenstore_write_str(const char *base, const char *node, const char *val); -- 1.8.3.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gerd Hoffmann Subject: [PULL 1/4] xen: introduce dummy system device Date: Mon, 23 May 2016 15:12:00 +0200 Message-ID: <1464009123-5814-2-git-send-email-kraxel@redhat.com> References: <1464009123-5814-1-git-send-email-kraxel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1464009123-5814-1-git-send-email-kraxel@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: qemu-devel@nongnu.org Cc: Juergen Gross , Anthony Perard , Stefano Stabellini , Gerd Hoffmann , "open list:X86" List-Id: xen-devel@lists.xenproject.org RnJvbTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgoKSW50cm9kdWNlIGEgbmV3IGR1 bW15IHN5c3RlbSBkZXZpY2Ugc2VydmluZyBhcyBwYXJlbnQgZm9yIHZpcnR1YWwKYnVzZXMuIFRo aXMgd2lsbCBlbmFibGUgbmV3IHB2IGJhY2tlbmRzIHRvIGludHJvZHVjZSB2aXJ0dWFsIGJ1c2Vz CndoaWNoIGFyZSByZW1vdmFibGUgYWdhaW4gb3Bwb3NlZCB0byBzeXN0ZW0gYnVzZXMgd2hpY2gg YXJlIG1lYW50CnRvIHN0YXkgb25jZSBhZGRlZC4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jv c3MgPGpncm9zc0BzdXNlLmNvbT4KQWNrZWQtYnk6IEFudGhvbnkgUEVSQVJEIDxhbnRob255LnBl cmFyZEBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNv bT4KTWVzc2FnZS1pZDogMTQ2MzA2MjQyMS02MTMtMi1naXQtc2VuZC1lbWFpbC1qZ3Jvc3NAc3Vz ZS5jb20KU2lnbmVkLW9mZi1ieTogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+Ci0t LQogaHcveGVucHYveGVuX21hY2hpbmVfcHYuYyAgICB8IDQwICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvaHcveGVuL3hlbl9iYWNrZW5kLmggfCAgMSAr CiAyIGZpbGVzIGNoYW5nZWQsIDQxIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9ody94ZW5w di94ZW5fbWFjaGluZV9wdi5jIGIvaHcveGVucHYveGVuX21hY2hpbmVfcHYuYwppbmRleCBmYzEz NTM1Li40OGQ1YmM2IDEwMDY0NAotLS0gYS9ody94ZW5wdi94ZW5fbWFjaGluZV9wdi5jCisrKyBi L2h3L3hlbnB2L3hlbl9tYWNoaW5lX3B2LmMKQEAgLTI1LDEwICsyNSwxNSBAQAogI2luY2x1ZGUg InFlbXUvb3NkZXAuaCIKICNpbmNsdWRlICJody9ody5oIgogI2luY2x1ZGUgImh3L2JvYXJkcy5o IgorI2luY2x1ZGUgImh3L3N5c2J1cy5oIgogI2luY2x1ZGUgImh3L3hlbi94ZW5fYmFja2VuZC5o IgogI2luY2x1ZGUgInhlbl9kb21haW5idWlsZC5oIgogI2luY2x1ZGUgInN5c2VtdS9ibG9jay1i YWNrZW5kLmgiCiAKKyNkZWZpbmUgVFlQRV9YRU5TWVNERVYgInhlbnN5c2RldiIKKworRGV2aWNl U3RhdGUgKnhlbl9zeXNkZXY7CisKIHN0YXRpYyB2b2lkIHhlbl9pbml0X3B2KE1hY2hpbmVTdGF0 ZSAqbWFjaGluZSkKIHsKICAgICBEcml2ZUluZm8gKmRpbmZvOwpAQCAtNjcsNiArNzIsOSBAQCBz dGF0aWMgdm9pZCB4ZW5faW5pdF9wdihNYWNoaW5lU3RhdGUgKm1hY2hpbmUpCiAgICAgICAgIGJy ZWFrOwogICAgIH0KIAorICAgIHhlbl9zeXNkZXYgPSBxZGV2X2NyZWF0ZShOVUxMLCBUWVBFX1hF TlNZU0RFVik7CisgICAgcWRldl9pbml0X25vZmFpbCh4ZW5fc3lzZGV2KTsKKwogICAgIHhlbl9i ZV9yZWdpc3RlcigiY29uc29sZSIsICZ4ZW5fY29uc29sZV9vcHMpOwogICAgIHhlbl9iZV9yZWdp c3RlcigidmtiZCIsICZ4ZW5fa2JkbW91c2Vfb3BzKTsKICAgICB4ZW5fYmVfcmVnaXN0ZXIoInZm YiIsICZ4ZW5fZnJhbWVidWZmZXJfb3BzKTsKQEAgLTEwMSw2ICsxMDksMzggQEAgc3RhdGljIHZv aWQgeGVuX2luaXRfcHYoTWFjaGluZVN0YXRlICptYWNoaW5lKQogICAgIHhlbl9pbml0X2Rpc3Bs YXkoeGVuX2RvbWlkKTsKIH0KIAorc3RhdGljIGludCB4ZW5fc3lzZGV2X2luaXQoU3lzQnVzRGV2 aWNlICpkZXYpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBQcm9wZXJ0eSB4ZW5fc3lz ZGV2X3Byb3BlcnRpZXNbXSA9IHsKKyAgICB7LyogZW5kIG9mIHByb3BlcnR5IGxpc3QgKi99LAor fTsKKworc3RhdGljIHZvaWQgeGVuX3N5c2Rldl9jbGFzc19pbml0KE9iamVjdENsYXNzICprbGFz cywgdm9pZCAqZGF0YSkKK3sKKyAgICBEZXZpY2VDbGFzcyAqZGMgPSBERVZJQ0VfQ0xBU1Moa2xh c3MpOworICAgIFN5c0J1c0RldmljZUNsYXNzICprID0gU1lTX0JVU19ERVZJQ0VfQ0xBU1Moa2xh c3MpOworCisgICAgay0+aW5pdCA9IHhlbl9zeXNkZXZfaW5pdDsKKyAgICBkYy0+cHJvcHMgPSB4 ZW5fc3lzZGV2X3Byb3BlcnRpZXM7Cit9CisKK3N0YXRpYyBjb25zdCBUeXBlSW5mbyB4ZW5zeXNk ZXZfaW5mbyA9IHsKKyAgICAubmFtZSAgICAgICAgICA9IFRZUEVfWEVOU1lTREVWLAorICAgIC5w YXJlbnQgICAgICAgID0gVFlQRV9TWVNfQlVTX0RFVklDRSwKKyAgICAuaW5zdGFuY2Vfc2l6ZSA9 IHNpemVvZihTeXNCdXNEZXZpY2UpLAorICAgIC5jbGFzc19pbml0ICAgID0geGVuX3N5c2Rldl9j bGFzc19pbml0LAorfTsKKworc3RhdGljIHZvaWQgeGVucHZfcmVnaXN0ZXJfdHlwZXModm9pZCkK K3sKKyAgICB0eXBlX3JlZ2lzdGVyX3N0YXRpYygmeGVuc3lzZGV2X2luZm8pOworfQorCit0eXBl X2luaXQoeGVucHZfcmVnaXN0ZXJfdHlwZXMpOworCiBzdGF0aWMgdm9pZCB4ZW5wdl9tYWNoaW5l X2luaXQoTWFjaGluZUNsYXNzICptYykKIHsKICAgICBtYy0+ZGVzYyA9ICJYZW4gUGFyYS12aXJ0 dWFsaXplZCBQQyI7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L3hlbi94ZW5fYmFja2VuZC5oIGIv aW5jbHVkZS9ody94ZW4veGVuX2JhY2tlbmQuaAppbmRleCBjODM5ZWViLi5iNGI0ZmYwIDEwMDY0 NAotLS0gYS9pbmNsdWRlL2h3L3hlbi94ZW5fYmFja2VuZC5oCisrKyBiL2luY2x1ZGUvaHcveGVu L3hlbl9iYWNrZW5kLmgKQEAgLTYwLDYgKzYwLDcgQEAgZXh0ZXJuIHhjX2ludGVyZmFjZSAqeGVu X3hjOwogZXh0ZXJuIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICp4ZW5fZm1lbTsKIGV4dGVybiBz dHJ1Y3QgeHNfaGFuZGxlICp4ZW5zdG9yZTsKIGV4dGVybiBjb25zdCBjaGFyICp4ZW5fcHJvdG9j b2w7CitleHRlcm4gRGV2aWNlU3RhdGUgKnhlbl9zeXNkZXY7CiAKIC8qIHhlbnN0b3JlIGhlbHBl ciBmdW5jdGlvbnMgKi8KIGludCB4ZW5zdG9yZV93cml0ZV9zdHIoY29uc3QgY2hhciAqYmFzZSwg Y29uc3QgY2hhciAqbm9kZSwgY29uc3QgY2hhciAqdmFsKTsKLS0gCjEuOC4zLjEKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1k ZXZlbAo=