From owner-freebsd-current@FreeBSD.ORG Mon May 16 18:52:50 2005 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 72FF216A4CE for ; Mon, 16 May 2005 18:52:50 +0000 (GMT) Received: from mailgate1b.savvis.net (mailgate1b.savvis.net [216.91.182.6]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1E55D43D9A for ; Mon, 16 May 2005 18:52:50 +0000 (GMT) (envelope-from Maksim.Yevmenkin@savvis.net) Received: from localhost (localhost.localdomain [127.0.0.1]) by mailgate1b.savvis.net (Postfix) with ESMTP id 318053BE8D for ; Mon, 16 May 2005 13:52:45 -0500 (CDT) Received: from mailgate1b.savvis.net ([127.0.0.1]) by localhost (mailgate1b.savvis.net [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 01796-01-16 for ; Mon, 16 May 2005 13:52:45 -0500 (CDT) Received: from out002.email.savvis.net (out002.apptix.savvis.net [216.91.32.45]) by mailgate1b.savvis.net (Postfix) with ESMTP id 07BAC3BE51 for ; Mon, 16 May 2005 13:52:45 -0500 (CDT) Received: from s228130hz1ew031.apptix-01.savvis.net ([10.146.4.28]) by out002.email.savvis.net with Microsoft SMTPSVC(6.0.3790.211); Mon, 16 May 2005 13:52:23 -0500 Received: from [10.254.186.111] ([66.35.239.94]) by s228130hz1ew031.apptix-01.savvis.net with Microsoft SMTPSVC(6.0.3790.211); Mon, 16 May 2005 13:52:30 -0500 Message-ID: <4288EBEA.5030701@savvis.net> Date: Mon, 16 May 2005 11:52:26 -0700 From: Maksim Yevmenkin User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050404) X-Accept-Language: en-us, en MIME-Version: 1.0 To: freebsd-current@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 16 May 2005 18:52:30.0195 (UTC) FILETIME=[695FAC30:01C55A48] X-Virus-Scanned: amavisd-new at savvis.net Subject: keyboard mux driver (straw man proposal) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 May 2005 18:52:50 -0000 dear hackers, i'd like to follow up on keyboard mux driver discussion with some code. please dont start jumping up and down just yet :) this is a "straw man" code and everyone is welcome to beat the heck out of it. basically the code is based on vkbd(4) and the idea that was discussed long time ago - create a "super" keyboard that consumes all other keyboards in the system. the code creates a "super" kbdmux keyboard. using new special ioctl's one can add multiple keyboards to the mux. then one simple switches the current keyboard to the kbdmux keyboard. as you can see it is not usable from the kernel just yet, but i have managed to create a mux with two vkbd's and it worked (please see kbdmux_test.c program). the questions that i wanted to ask 1) is this good enough abstraction for the keyboard mux? can anyone think of anything that would not work with this model? 2) should we decide to make this usable from the kernel, what is the best way to do it? 3) did i miss anything? please tell me if i did! :) the code can be downloaded from http://www.geocities.com/m_evmenkin/kbdmux.tar.gz (~7K) i also put it in my home directory on freefall. thanks, max