genode/repos/base/include/base
Norman Feske fa48054959 ldso: Dynamic_linker::respawn mechanism
This patch extends the interface of the dynamic linker with the ability
to replace the running binary executable by another one. It is
designated for the implementation of execve. The interface consists of
two new functions.

'Dynamic_linker::keep' marks the specified shared object as unloadable.
This can be used to pin a set of libraries (i.e., the libc) within the
local address space while replacing the binary and other higher-level
libraries.

'Dynamic_linker::respawn' unloads the current binary, loads the one
specifed as first argument, and looks up the entry point symbol of the
new binary, which would be "main" for POSIX programs.

In addition to implementing the new interface, the patch adjusts the
linker at various places that previously assumed the binary to be
constant over runtime.

Issue #3481
2019-08-28 14:18:45 +02:00
..
trace trace: support more facets of execution time 2019-04-09 12:30:34 +02:00
affinity.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
alarm.h timeout: use uint64_t for all plain time values 2019-05-06 16:15:26 +02:00
allocator_avl.h Refinements for updated "Genode Foundations" book 2019-05-27 14:52:53 +02:00
allocator_guard.h base: remove debug message from Allocator_guard 2018-02-09 13:34:15 +01:00
allocator.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
attached_dataspace.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
attached_io_mem_dataspace.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
attached_ram_dataspace.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
attached_rom_dataspace.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
blocking.h
buffered_output.h base: move 'Buffered_output' class into public header 2019-01-30 13:49:55 +01:00
cache.h
cancelable_lock.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
capability.h
child.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
component.h
connection.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
console.h
debug.h
duration.h timeout: use uint64_t for all plain time values 2019-05-06 16:15:26 +02:00
entrypoint.h Refinements for updated "Genode Foundations" book 2019-05-27 14:52:53 +02:00
env.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
exception.h
heap.h heap: interface for obtaining backing-store info 2019-08-28 14:18:44 +02:00
id_space.h base: add missing include in base/id_space.h 2019-08-28 14:18:44 +02:00
ipc_msgbuf.h base: avoid null pointer reference warning 2019-01-07 12:25:45 +01:00
ipc.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
local_connection.h base: fix quota transfer to async env services 2018-06-12 12:11:47 +02:00
lock_guard.h
lock.h
log.h base: add 'trace' function to base/log.h 2019-07-09 08:55:23 +02:00
native_capability.h core: avoid null pointer reference warning 2019-01-07 12:25:44 +01:00
object_pool.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
output.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
quota_guard.h Remove replenish error message from quota guard 2018-02-28 11:05:04 +01:00
quota_transfer.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
ram_allocator.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
registry.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
rpc_args.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
rpc_client.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
rpc_server.h Add missing override annotations 2019-02-19 11:12:11 +01:00
rpc.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
semaphore.h Remove pointers from Genode::Fifo interface 2019-02-19 11:08:17 +01:00
service.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
session_label.h base: add copy constructor to 'Genode::Session_label' 2019-05-27 14:46:54 +02:00
session_object.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
session_state.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
shared_object.h ldso: Dynamic_linker::respawn mechanism 2019-08-28 14:18:45 +02:00
signal.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
slab.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
sleep.h
snprintf.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
stdint.h
synced_allocator.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
synced_interface.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
thread_state.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
thread.h foc/sel4: place vcpu thread on same cpu as ep 2019-05-06 16:15:27 +02:00
tslab.h
weak_ptr.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00