Hi,
On Mon, Jul 11, 2005 at 10:11:26PM +0200, Adam Lackorzynski wrote:
On Mon Jul 11, 2005 at 12:38:20 -0400, Julian Grizzard wrote:
Consider a x86 computer that has two physical IDE hard drives. Is it possible for an L4Env I/O manager to allocate exactly one hard drive to an L4Linux2.6 server and allocate the second hard drive to another L4 task in a way that the L4Linux2.6 server has no way of knowing that the second hard drive exists?
Depends how the drives are connected. If the drives are connected to two different controllers this can be well done, e.g. by not mapping mmio areas or not handing out IRQs. If the drives are connected to the same controller things get more complicated. One needs an IDE controller driver/server that separates the drives for different tasks. In L4Linux one now needs a controller stub driver that talks to the server.
In addition to Adam's abstract information about feasibility of your idea, L4IO currently has no facility to distinguish between several clients on any basis (e.g., task numbers). You had to add this feature to almost every module of L4IO (e.g., pci.c and res.c). Currently, L4IO includes two command line switches for handling of devices -- "--exclude" and "--include" (see l4io/doc/refman.dox). Maybe this helps as short-term solution.
Ciao