* [Qemu-devel] [PATCH v2 2/2] xen: add vkbd support for PV on HVM guests
@ 2011-06-24 16:36 ` stefano.stabellini
0 siblings, 0 replies; 4+ messages in thread
From: stefano.stabellini @ 2011-06-24 16:36 UTC (permalink / raw)
To: qemu-devel; +Cc: xen-devel, agraf, Stefano Stabellini
From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Register the vkbd backend even when running as device emulator for HVM
guests: it is useful because it doesn't need a frequent timer like usb.
Check whether the XenInput DisplayState has been set in the initialise
state, rather than the input state.
In case the DisplayState hasn't been set and there is no vfb for this
domain, then set the XenInput DisplayState to the default one.
Changed in v2:
- use qemu_free instead of free;
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
hw/xenfb.c | 19 ++++++++++++-------
xen-all.c | 1 +
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/hw/xenfb.c b/hw/xenfb.c
index a3301ac..d964318 100644
--- a/hw/xenfb.c
+++ b/hw/xenfb.c
@@ -347,13 +347,6 @@ static void xenfb_mouse_event(void *opaque,
static int input_init(struct XenDevice *xendev)
{
- struct XenInput *in = container_of(xendev, struct XenInput, c.xendev);
-
- if (!in->c.ds) {
- xen_be_printf(xendev, 1, "ds not set (yet)\n");
- return -1;
- }
-
xenstore_write_be_int(xendev, "feature-abs-pointer", 1);
return 0;
}
@@ -363,6 +356,18 @@ static int input_initialise(struct XenDevice *xendev)
struct XenInput *in = container_of(xendev, struct XenInput, c.xendev);
int rc;
+ if (!in->c.ds) {
+ char *vfb = xenstore_read_str(NULL, "device/vfb");
+ if (vfb == NULL) {
+ /* there is no vfb, run vkbd on its own */
+ in->c.ds = get_displaystate();
+ } else {
+ qemu_free(vfb);
+ xen_be_printf(xendev, 1, "ds not set (yet)\n");
+ return -1;
+ }
+ }
+
rc = common_bind(&in->c);
if (rc != 0)
return rc;
diff --git a/xen-all.c b/xen-all.c
index 93fa2ee..6099bff 100644
--- a/xen-all.c
+++ b/xen-all.c
@@ -868,6 +868,7 @@ int xen_hvm_init(void)
exit(1);
}
xen_be_register("console", &xen_console_ops);
+ xen_be_register("vkbd", &xen_kbdmouse_ops);
xen_be_register("qdisk", &xen_blkdev_ops);
return 0;
--
1.7.2.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 2/2] xen: add vkbd support for PV on HVM guests
@ 2011-06-24 16:36 ` stefano.stabellini
0 siblings, 0 replies; 4+ messages in thread
From: stefano.stabellini @ 2011-06-24 16:36 UTC (permalink / raw)
To: qemu-devel; +Cc: xen-devel, agraf, Stefano Stabellini, Stefano.Stabellini
From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Register the vkbd backend even when running as device emulator for HVM
guests: it is useful because it doesn't need a frequent timer like usb.
Check whether the XenInput DisplayState has been set in the initialise
state, rather than the input state.
In case the DisplayState hasn't been set and there is no vfb for this
domain, then set the XenInput DisplayState to the default one.
Changed in v2:
- use qemu_free instead of free;
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
hw/xenfb.c | 19 ++++++++++++-------
xen-all.c | 1 +
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/hw/xenfb.c b/hw/xenfb.c
index a3301ac..d964318 100644
--- a/hw/xenfb.c
+++ b/hw/xenfb.c
@@ -347,13 +347,6 @@ static void xenfb_mouse_event(void *opaque,
static int input_init(struct XenDevice *xendev)
{
- struct XenInput *in = container_of(xendev, struct XenInput, c.xendev);
-
- if (!in->c.ds) {
- xen_be_printf(xendev, 1, "ds not set (yet)\n");
- return -1;
- }
-
xenstore_write_be_int(xendev, "feature-abs-pointer", 1);
return 0;
}
@@ -363,6 +356,18 @@ static int input_initialise(struct XenDevice *xendev)
struct XenInput *in = container_of(xendev, struct XenInput, c.xendev);
int rc;
+ if (!in->c.ds) {
+ char *vfb = xenstore_read_str(NULL, "device/vfb");
+ if (vfb == NULL) {
+ /* there is no vfb, run vkbd on its own */
+ in->c.ds = get_displaystate();
+ } else {
+ qemu_free(vfb);
+ xen_be_printf(xendev, 1, "ds not set (yet)\n");
+ return -1;
+ }
+ }
+
rc = common_bind(&in->c);
if (rc != 0)
return rc;
diff --git a/xen-all.c b/xen-all.c
index 93fa2ee..6099bff 100644
--- a/xen-all.c
+++ b/xen-all.c
@@ -868,6 +868,7 @@ int xen_hvm_init(void)
exit(1);
}
xen_be_register("console", &xen_console_ops);
+ xen_be_register("vkbd", &xen_kbdmouse_ops);
xen_be_register("qdisk", &xen_blkdev_ops);
return 0;
--
1.7.2.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/2] xen: add vkbd support for PV on HVM guests
2011-06-24 16:36 ` stefano.stabellini
@ 2011-06-30 15:09 ` Alexander Graf
-1 siblings, 0 replies; 4+ messages in thread
From: Alexander Graf @ 2011-06-30 15:09 UTC (permalink / raw)
To: stefano.stabellini; +Cc: xen-devel, qemu-devel
On 06/24/2011 06:36 PM, stefano.stabellini@eu.citrix.com wrote:
> From: Stefano Stabellini<stefano.stabellini@eu.citrix.com>
>
> Register the vkbd backend even when running as device emulator for HVM
> guests: it is useful because it doesn't need a frequent timer like usb.
>
> Check whether the XenInput DisplayState has been set in the initialise
> state, rather than the input state.
> In case the DisplayState hasn't been set and there is no vfb for this
> domain, then set the XenInput DisplayState to the default one.
>
>
> Changed in v2:
>
> - use qemu_free instead of free;
>
Thanks applied to xen-next branch.
Alex
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 2/2] xen: add vkbd support for PV on HVM guests
@ 2011-06-30 15:09 ` Alexander Graf
0 siblings, 0 replies; 4+ messages in thread
From: Alexander Graf @ 2011-06-30 15:09 UTC (permalink / raw)
To: stefano.stabellini; +Cc: xen-devel, qemu-devel
On 06/24/2011 06:36 PM, stefano.stabellini@eu.citrix.com wrote:
> From: Stefano Stabellini<stefano.stabellini@eu.citrix.com>
>
> Register the vkbd backend even when running as device emulator for HVM
> guests: it is useful because it doesn't need a frequent timer like usb.
>
> Check whether the XenInput DisplayState has been set in the initialise
> state, rather than the input state.
> In case the DisplayState hasn't been set and there is no vfb for this
> domain, then set the XenInput DisplayState to the default one.
>
>
> Changed in v2:
>
> - use qemu_free instead of free;
>
Thanks applied to xen-next branch.
Alex
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-06-30 15:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-24 16:36 [Qemu-devel] [PATCH v2 2/2] xen: add vkbd support for PV on HVM guests stefano.stabellini
2011-06-24 16:36 ` stefano.stabellini
2011-06-30 15:09 ` [Qemu-devel] " Alexander Graf
2011-06-30 15:09 ` Alexander Graf
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.