genode/repos/base/src/lib/base
Norman Feske 7d9f68493a base: support for multi-staged child startup
This patch enhances the 'Child' and 'Child_policy' with the ability to
separate the different steps of bootstrapping children. If the
'Child_policy::initiate_env_sessions()' returns false, the child's
environment sessions remain unrouted at construction time. This way,
child objects for many children can be initialized to a state that
allows the children to represent services for other children. Therefore,
session routing can be applied before any child executes.

At this stage, the environment RAM sessions of all children can be
created. Note that this step still has the limitation that RAM sessions
are generally expected to be provided by either the parent or a local
service.

Once all children are equipped with RAM, they can in principle receive
session-quota donations. Hence, all other environment sessions can now
be arbitrarily routed and initiated.

Once the environment of a child is complete, the child's process and
initial thread is created.
2017-02-28 12:59:23 +01:00
..
allocator_avl.cc Define Genode::size_t as unsigned long 2016-10-21 12:39:29 +02:00
avl_tree.cc base: avoid use of deprecated base/printf.h 2016-08-29 17:27:10 +02:00
cache.cc Clean up base-library structure 2016-05-09 13:24:11 +02:00
capability_space.cc Unification of native_capability.h 2016-07-11 13:07:37 +02:00
capability.cc Unification of native_capability.h 2016-07-11 13:07:37 +02:00
child_process.cc base: apply routing policy to environment sessions 2016-12-23 16:52:08 +01:00
child.cc base: support for multi-staged child startup 2017-02-28 12:59:23 +01:00
component.cc base: remove Child::heap 2017-02-28 12:59:23 +01:00
console.cc base: new interface for textual output 2016-05-09 13:25:01 +02:00
default_log.cc base-*: remove usage of printf 2016-10-21 12:39:36 +02:00
elf_binary.cc base: avoid use of deprecated base/printf.h 2016-08-29 17:27:10 +02:00
entrypoint.cc base: entrypoint 'wait_and_dispatch_one_signal' 2017-02-27 15:37:50 +01:00
env_deprecated.cc Warn about the use of deprecated env() function 2017-01-13 13:07:13 +01:00
env_reinit.cc Cleanup of parent-cap handling 2016-07-11 13:05:27 +02:00
env_session_id_space.cc Remove blocking calls from root and parent RPCs 2016-11-25 16:06:42 +01:00
heap.cc base: remove allocation warning in heap 2016-11-30 13:37:06 +01:00
lock.cc base: fix race in multiple lock.unlock() calls 2016-10-21 12:39:34 +02:00
log_console.cc Warn about the use of deprecated env() function 2017-01-13 13:07:13 +01:00
log.cc Supplement base/log.h with raw output function 2016-06-22 12:21:42 +02:00
output.cc base: avoid use of deprecated base/printf.h 2016-08-29 17:27:10 +02:00
raw_output.cc remove global namespacing from internal base headers 2016-11-08 15:26:33 +01:00
region_map_client.cc Clean up base-library structure 2016-05-09 13:24:11 +02:00
registry.cc base: new 'Registry' data structure 2016-11-25 15:30:58 +01:00
rm_session_client.cc Clean up base-library structure 2016-05-09 13:24:11 +02:00
root_proxy.cc base: remove Child::heap 2017-02-28 12:59:23 +01:00
rpc_cap_alloc.cc Warn about the use of deprecated env() function 2017-01-13 13:07:13 +01:00
rpc_dispatch_loop.cc base: avoid use of deprecated base/printf.h 2016-08-29 17:27:10 +02:00
rpc_entrypoint.cc base: avoid use of deprecated base/printf.h 2016-08-29 17:27:10 +02:00
session_state.cc base: remove Child::heap 2017-02-28 12:59:23 +01:00
signal_common.cc base: tolerate nested signal handling (but warn) 2017-02-27 15:37:50 +01:00
signal_submit.cc Warn about the use of deprecated env() function 2017-01-13 13:07:13 +01:00
signal.cc base: entrypoint 'wait_and_dispatch_one_signal' 2017-02-27 15:37:50 +01:00
slab.cc Fix clang compile errors 2016-11-30 13:37:07 +01:00
sleep.cc Clean up base-library structure 2016-05-09 13:24:11 +02:00
sliced_heap.cc base: minor style fixes 2016-11-30 13:37:06 +01:00
stack_allocator.cc Thread API cleanup 2016-05-23 15:49:55 +02:00
stack_area.cc Modularize base-internal headers 2016-05-09 13:24:39 +02:00
thread_bootstrap.cc Thread API cleanup 2016-05-23 15:49:55 +02:00
thread_myself.cc Thread API cleanup 2016-05-23 15:49:55 +02:00
thread_start.cc Warn about the use of deprecated env() function 2017-01-13 13:07:13 +01:00
thread.cc Warn about the use of deprecated env() function 2017-01-13 13:07:13 +01:00
trace.cc Warn about the use of deprecated env() function 2017-01-13 13:07:13 +01:00
utcb.cc Thread API cleanup 2016-05-23 15:49:55 +02:00