From mboxrd@z Thu Jan 1 00:00:00 1970 From: Markus Armbruster Subject: [PATCH 0/2] PV framebuffer Date: Fri, 10 Nov 2006 09:53:44 +0100 Message-ID: <87odrfptrb.fsf@pike.pond.sub.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Summary of changes: * Use xenbus_device API. Some xm configuration magic is still missing, see below. * Negotiate features through Xen Store. * Key identification Discussed at length on this list. I fixed sdlfb to use scan codes (assumes standard AT or PS/2 keyboard). vncfb is not fixable. See comments in the code. * Drop XENKBD_TYPE_BUTTON in favour of XENKBD_TYPE_KEY. Simpler, and gets rid of the three button limit. * Support shadow translate mode guests (untested). * Absolute mouse pointer (optional feature) * Fix event delivery and receipt notification. * Use __s32 for coordinates instead of __u16 and __s16 for pixel coordinates, to match linux/input.h, which uses int. * Don't drop the first pointer event on the floor in vncfb. * Backends diagnose lost kbd events. * Some renames to make xenkbd and xenfb drivers more similar. Sorry for the extra diffs, but the inconsistencies were just too confusing. Known issues: * What to do when backend closes the connection? I guess we want to keep the frontend running, ready for another connection. This works already, but in a rather hackish and limited way. * What to do when the frontend closes the connection? Make backend exit? * What happens when multiple backends connect to the same frontend? Chaos, most likely. * Resume not implemented. * xm configuration magic doesn't know the new devices, yet. I'm ignorant of how this magic works, perhaps somebody can lend me a hand with it. Workaround: - Convert /etc/xen/FOO into FOO.sxp with xm create -n. Make sure to delete the junk at the beginning of the output. - Add (device (vfb ())) (device (vkbd ()) and change kernel and ramdisk to point to suitable copies. - xm create -F FOO.sxp. * A couple of FIXMEs are still left in the code. Future work: * Investigate ditching LibVNCServer. * Use grant tables when they become capable of mapping the framebuffer. * Support multiple framebuffers. * Dynamic screen resolution. * Support other keyboards.