Backends set "feature-vkbd-standalone" to 1 if they can connect without waiting for the PV framebuffer. If this value is missing or not 1, then a backend will wait for the PV framebuffer before connecting, potentially causing the frontend to wait indefinitely.
Frontends set "request-vkbd-standalone" to 1 to request that the backend does not wait for the PV framebuffer. Frontends that require a standalone vkbd device should not attempt to connect unless the backend advertises "feature-vkbd-standalone", and should set "request-vkbd-standalone". Backends that are standalone (i.e. do not have an associated PV framebuffer) do not rescale absolute mouse or touch coordinates to a the size of the (non-existant) PV framebuffer, and use the range of [0, 0x7fff] for absolute values. Signed-off-by: Owen Smith <owen.sm...@citrix.com> --- xen/include/public/io/kbdif.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/xen/include/public/io/kbdif.h b/xen/include/public/io/kbdif.h index dcbd71a..ca09080 100644 --- a/xen/include/public/io/kbdif.h +++ b/xen/include/public/io/kbdif.h @@ -63,6 +63,12 @@ * Backends, which support reporting of multi-touch events * should set this to 1. * + * feature-vkbd-standalone + * Values: <uint> + * + * Backends, which support a standalone vkbd, without requiring a vfb + * device, should set this to 1. + * *------------------------- Pointer Device Parameters ------------------------ * * width @@ -98,6 +104,13 @@ * * Request backend to report multi-touch events. * + * request-vkbd-standalone + * Values: <uint> + * + * Request backend to connect vkbd device without waiting for the + * vfb device. Any absolute coordinates will NOT be scaled to + * screen size, and will remain in the range [0, 0x7fff] + * *----------------------- Request Transport Parameters ----------------------- * * event-channel @@ -165,8 +178,10 @@ #define XENKBD_FIELD_FEAT_ABS_POINTER "feature-abs-pointer" #define XENKBD_FIELD_FEAT_MTOUCH "feature-multi-touch" +#define XENKBD_FIELD_FEAT_STANDALONE "feature-vkbd-standalone" #define XENKBD_FIELD_REQ_ABS_POINTER "request-abs-pointer" #define XENKBD_FIELD_REQ_MTOUCH "request-multi-touch" +#define XENKBD_FIELD_REQ_STANDALONE "request-vkbd-standalone" #define XENKBD_FIELD_RING_GREF "page-gref" #define XENKBD_FIELD_EVT_CHANNEL "event-channel" #define XENKBD_FIELD_WIDTH "width" -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel