Fiasco.OC x86 IO port permission bitmap

Adam Lackorzynski adam at
Tue Jan 24 20:03:36 CET 2012


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                 adam at

More information about the l4-hackers mailing list