From owner-freebsd-arch@FreeBSD.ORG Thu Jan 31 19:29:22 2008 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 570FE16A417 for ; Thu, 31 Jan 2008 19:29:22 +0000 (UTC) (envelope-from maxim.zhuravlev@gmail.com) Received: from fk-out-0910.google.com (fk-out-0910.google.com [209.85.128.184]) by mx1.freebsd.org (Postfix) with ESMTP id EFA7913C469 for ; Thu, 31 Jan 2008 19:29:19 +0000 (UTC) (envelope-from maxim.zhuravlev@gmail.com) Received: by fk-out-0910.google.com with SMTP id b27so884911fka.11 for ; Thu, 31 Jan 2008 11:29:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:sender:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition:x-google-sender-auth; bh=WrJzowXKwJ4WZnTjux6xf4em9teDCM1G836qRPvk2ZM=; b=tNeeCoumrLvfNS4K9m2CWrZpxdiePAxpMt0wMczsWy4z0IdfCrTuj2R2rHTA1Co38rm0s3zUoF0666cT7YKR8HHWQ9VLRU5P9wpXbFTQlEpNtMGFlc/17nDQTBJ8eCu2Gi5CkEIxNwh7CIDI4I4S/bVSuVoX30tk1U3WTDJo64U= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:sender:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition:x-google-sender-auth; b=Al23CAmA5kTgZIBq8g3TX0SeWgD58D8zUyaVBTQG+3gujAXmcWUq3OYtdAbtvUTXnUkoHJx63DQqgDLbf562tHemlzmX8deBRGIUOo4cXWSK7lHjV07StZ38De7IE+4HIvKrrgPYtiQthTFQ0rFOfUtKtIACCzm6h6aTZd7kmfg= Received: by 10.82.114.3 with SMTP id m3mr4461036buc.24.1201806126731; Thu, 31 Jan 2008 11:02:06 -0800 (PST) Received: by 10.82.172.13 with HTTP; Thu, 31 Jan 2008 11:02:06 -0800 (PST) Message-ID: Date: Thu, 31 Jan 2008 22:02:06 +0300 From: "Maxim Zhuravlev" Sender: maxim.zhuravlev@gmail.com To: freebsd-arch@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Google-Sender-Auth: 6d22e8e5ea12ae30 Subject: [RFC] Some new generic device features. X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Jan 2008 19:29:22 -0000 Hi. I'm currently working on project named *Enhanced NewBus*. It's a successor of *Generic Input Device Layer Project* I've been working on for GSoC2007 [1]. As the project is to be quite an extensive one, I would like to get some comments/suggestions on the design[2] first. It can be found here:http://wiki.freebsd.org/EnhancedNewBus. In brief, the design suggests to implement in-kernel device piping. There are two types of devices: logical (ex. console device, demuxing device) and hardware (mices, displays). I suggest to add logical devices to NewBus domain. Side effect is that device tree will transform to a graph (ex. two mice can be parents of a demuxing device, while being children of a same bus). The approach lets to implement a generic way of ex. device demuxing, cause it's obvious that functionality, provided by logical devices may be useful not just for input devices, while some kind of devices may require some specific features. Also it will be easier to implement such complex device drivers, like a console driver is, by abstracting work with underlying devices. To make it possible one needs to implement a way to track input/output requests through the graph. The generic device input/output subsystem is internally asynchronous for the sake of flexibility. New logical drivers require a new more intellectual autoconfiguration process. More here: [2]. [1] http://wiki.freebsd.org/GenericInputDeviceLayer [2] http://wiki.freebsd.org/EnhancedNewBus -- Maxim Zhuravlev