Hello,
On 23.10.18 14:50, Joel Nider wrote:
I have been looking at several drivers in Genode, and they all seem to have static data - specifically a Heap object and Root object. I am wondering with this kind of setup, is it possible to manage more than one device with a single driver?
of course. As described in the Genode book [0] in chapter 3.2.3, the root object provides the implementation just of the interface. Whenever a client connects to a service (like a driver for nic, ahci, nvme, usb etc.) a session is established via this interface. The driver may associate (typically does so depending on your specified policy) one specific device it drives to this session - as done e.g. for drivers handling multiple devices, e.g. ahci, nvme, usb.
A driver may provide also different services, e.g. our old usb driver provides Nic, Block, Input (so several root interfaces).
Cheers,
Alex.
[0] https://www.genode.org/documentation/genode-foundations-18-05.pdf