genode/ports/src/noux
Norman Feske 956cab5fdb noux: Keep track of how dataspaces are used
This patch eliminates the "no attachment at..." warnings, which
were caused by a use-after-free problem of dataspaces. When a
dataspace was destroyed, the users of the dataspace were not
informed and therefore could not revert possible attachments to
RM sessions. The fix introduces a callback mechanism that allows
dataspace users (i.e., RM regions) to register for the event that
a dataspace vanishes.

The following types of dataspaces are handled:
* RAM dataspaces
* ROM dataspaces
* The process binary
* The binary of the dynamic linker
* Args dataspace
* Sysio dataspace
* Env dataspace
* managed RM dataspaces

The handling of ROM dataspaces is still not complete. When forking,
the ROM dataspace of the parent process gets just reused without
creating proper meta data ('Dataspace_info') for the forked process.
Similar issues might arise from other special dataspaces (e.g.,
args, env, sysio).

This patch removes all "no attachment at..." warnings except for
one (an attachment at 0).

Issue #485
2013-08-06 17:40:10 +02:00
..
minimal Merge base libraries into a single library 2013-02-19 14:45:55 +01:00
net Merge base libraries into a single library 2013-02-19 14:45:55 +01:00
args.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
child_env.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
child_policy.h noux: Keep track of how dataspaces are used 2013-08-06 17:40:10 +02:00
child.h noux: Keep track of how dataspaces are used 2013-08-06 17:40:10 +02:00
cpu_session_component.h noux: add local cpu and ram service 2013-07-05 12:37:42 +02:00
dataspace_registry.h noux: Keep track of how dataspaces are used 2013-08-06 17:40:10 +02:00
destruct_dispatcher.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
destruct_queue.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
dir_file_system.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
directory_service.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
dummy_input_io_channel.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
environment.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
family_member.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
file_descriptor_registry.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
file_io_service.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
file_system.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
fs_file_system.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
io_channel.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
io_receptor_registry.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
local_cpu_service.h noux: add local cpu and ram service 2013-07-05 12:37:42 +02:00
local_noux_service.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
local_ram_service.h noux: Keep track of how dataspaces are used 2013-08-06 17:40:10 +02:00
local_rm_service.h noux: Keep track of how dataspaces are used 2013-08-06 17:40:10 +02:00
local_rom_service.h noux: Keep track of how dataspaces are used 2013-08-06 17:40:10 +02:00
main.cc noux: Keep track of how dataspaces are used 2013-08-06 17:40:10 +02:00
null_file_system.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
path.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
pipe_io_channel.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
ram_session_component.h noux: Keep track of how dataspaces are used 2013-08-06 17:40:10 +02:00
random_file_system.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
range_checked_index.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
rm_session_component.h noux: Keep track of how dataspaces are used 2013-08-06 17:40:10 +02:00
rom_session_component.h noux: Keep track of how dataspaces are used 2013-08-06 17:40:10 +02:00
shared_pointer.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
stdio_file_system.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
tar_file_system.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
terminal_connection.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
terminal_file_system.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
terminal_io_channel.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
user_info.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
vfs_handle.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
vfs_io_channel.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
wake_up_notifier.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
zero_file_system.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00