Skip site navigation (1)Skip section navigation (2)
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>