genode/base-foc/src/core
Stefan Kalkowski 41eaff2cc6 Fiasco.OC: Re-use existing capability selectors
This is an interim fix for issue #112. This patch extends the
'Capability_allocator' class with the ability to register the global
ID of a Genode capability so that the ID gets associated with a
process-local kernel capability. Whenever a Genode capability gets
unmarshalled from an IPC message, the capability-allocator is asked,
with the global ID as key, whether the kernel-cap already exists.
This significantly reduces the waste of kernel-capability slots.

To circumvent problems of having one and the same ID for different kernel
objects, the following problems had to be solved:
* Replace pseudo IDs with unique ones from core's badge allocator
* When freeing a session object, free the global ID _after_ unmapping
  the kernel object, otherwise the global ID might get re-used in some
  process and the registry will find a valid but wrong capability
  for the ID

Because core aggregates all capabilities of all different processes, its
capability registry needs much more memory compared to a regular process.
By parametrizing capability allocators differently for core and non-core
processes, the global memory overhead for capability registries is kept
at a reasonable level.
2012-02-28 08:42:13 +01:00
..
arm Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
include Fiasco.OC: Re-use existing capability selectors 2012-02-28 08:42:13 +01:00
x86 Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
cap_session_component.cc Fiasco.OC: Re-use existing capability selectors 2012-02-28 08:42:13 +01:00
cpu_session_extension.cc Fiasco.OC: Re-use existing capability selectors 2012-02-28 08:42:13 +01:00
io_mem_session_support.cc Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
irq_session_component.cc Fiasco.OC: Re-use existing capability selectors 2012-02-28 08:42:13 +01:00
pd_session_extension.cc Fiasco.OC: Re-use existing capability selectors 2012-02-28 08:42:13 +01:00
platform_pd.cc Fiasco.OC: Re-use existing capability selectors 2012-02-28 08:42:13 +01:00
platform_thread.cc Fiasco.OC: Re-use existing capability selectors 2012-02-28 08:42:13 +01:00
platform.cc Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
ram_session_support.cc Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
rm_session_support.cc Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
signal_source_component.cc Fiasco.OC: Re-use existing capability selectors 2012-02-28 08:42:13 +01:00
target.inc Fiasco.OC: Re-use existing capability selectors 2012-02-28 08:42:13 +01:00
thread_start.cc Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00