Date: Thu, 31 Jan 2008 22:02:06 +0300 From: "Maxim Zhuravlev" <thIOretic@FreeBSD.org> To: freebsd-arch@freebsd.org Subject: [RFC] Some new generic device features. Message-ID: <fe052a80801311102x125a8534re712f6411acf29e2@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?fe052a80801311102x125a8534re712f6411acf29e2>