Hi,
On Mon Jan 23, 2012 at 15:54:29 -0800, Daniel Waddington wrote:
I want to use the TSS I/O permission bit map to support fine grained control of I/O access for user-level apps (x86 32 bit target). From looking at the kernel code, I believe the bit map is switched out per-process as part of the Context class (Space::_io_space) - correct me if I am wrong. My query is how to set/clear the bits for a given target task from a "root" task with sufficient privileges (e.g., base caps and sigma0 caps). I could extend the kernel scheduler protocol, but I don't want to do this if there is already a clean way in place.
IO-ports are handled similar to page-faults, i.e. they can be mapped to other tasks, and the pager receives io-page-faults when one of its clients accesses an IO-port without having it. For example look for L4_PROTO_IO_PAGE_FAULT and l4_iofpage().
Adam