genode/base-nova/include/base
Alexander Boettcher 2b161b7aff NOVA: use translate feature of kernel, issue #268
Kernel patch:
Introduce a transfer item type to express that a cap should be translated
and if this fails to map it instead.

It would be possible without this combined transfer item type however
with additional overhead. In this case Genode/NOVA would
have to map and translate all caps used as parameter in IPC. It would look
like this:
* If the map and translation succeed, the cap at the new cap index
  would have to be revoked. Then the translated cap index can be used.
* If the map succeeds and the translation fails then the mapped cap index
  can be used.
* It would become complicated when multiple caps are mapped and translated
  and only some of the translation succeed. In such cases Genode would have
  to figure out the right relation of translated/mapped and not
  translated/mapped caps. It would require to make some assumption about the
  order how translated/mapped caps are reported at the UTCB by the kernel.
All the points above lead to the decision to create a separate transfer item
type for that.

Genode:
Most the times the translation succeeds, mapping of caps happens either
seldom. This takes now a bit the pressure of not enough aligned receive
cap windows as described in issue #247.

The patch mainly adds adjustments to handle the
translated and mapped caps correctly especially during freeing of the
receive window (don't free translated cap indexes).

Fixes #268
2012-08-09 10:24:00 +02:00
..
bit_allocator.h Add a bit array and bit allocator, issue #247 2012-08-09 10:23:55 +02:00
bit_array.h Add a bit array and bit allocator, issue #247 2012-08-09 10:23:55 +02:00
cap_sel_alloc.h Add a bit array and bit allocator, issue #247 2012-08-09 10:23:55 +02:00
ipc_msgbuf.h NOVA: use translate feature of kernel, issue #268 2012-08-09 10:24:00 +02:00
ipc_pager.h Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
ipc.h Do not marshal invalid capabilities on NOVA/x86 2012-03-13 16:32:23 +01:00
native_types.h Fix: thread identifier comparator 2012-07-04 14:56:46 +02:00
pager.h Cleanup: cap allocation 2012-07-04 14:56:46 +02:00
sleep.h Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00