From 3f9698a292f6299d308a2b9523b3db4be5860c67 Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Wed, 21 Jun 2023 15:52:11 +0200 Subject: [PATCH] base: remove component.cc from core Issue #4784 --- repos/base/lib/mk/base-common.inc | 1 - repos/base/lib/mk/base.inc | 1 + repos/base/src/core/main.cc | 18 +++++++++++------- .../base/src/core/signal_transmitter_proxy.cc | 15 +++------------ repos/base/src/include/base/internal/globals.h | 1 + 5 files changed, 16 insertions(+), 20 deletions(-) diff --git a/repos/base/lib/mk/base-common.inc b/repos/base/lib/mk/base-common.inc index 7f5f1d6dd8..28da804027 100644 --- a/repos/base/lib/mk/base-common.inc +++ b/repos/base/lib/mk/base-common.inc @@ -23,7 +23,6 @@ SRC_CC += rpc_entrypoint.cc SRC_CC += signal_common.cc SRC_CC += sleep.cc SRC_CC += entrypoint.cc -SRC_CC += component.cc SRC_CC += region_map_client.cc SRC_CC += rm_session_client.cc SRC_CC += stack_allocator.cc diff --git a/repos/base/lib/mk/base.inc b/repos/base/lib/mk/base.inc index 9a42798af0..d81658b6b7 100644 --- a/repos/base/lib/mk/base.inc +++ b/repos/base/lib/mk/base.inc @@ -1,3 +1,4 @@ +SRC_CC += component.cc SRC_CC += default_log.cc SRC_CC += platform.cc stack_area.cc SRC_CC += rpc_cap_alloc.cc heartbeat.cc diff --git a/repos/base/src/core/main.cc b/repos/base/src/core/main.cc index 8852f14386..a03b68f955 100644 --- a/repos/base/src/core/main.cc +++ b/repos/base/src/core/main.cc @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -216,11 +217,15 @@ namespace Genode { } -int main() +/* expected by entrypoint.cc */ +Genode::size_t Component::stack_size() { return 64*1024; } + + +void Genode::bootstrap_component() { - /** - * Disable tracing within core because it is currently not fully implemented. - */ + init_exception_handling(*core_env().pd_session(), core_env().local_rm()); + + /* disable tracing within core because it is not fully implemented */ inhibit_tracing = true; log("Genode ", Genode::version_string); @@ -287,12 +292,12 @@ int main() if (avail_ram_quota < preserved_ram_quota) { error("core preservation exceeds platform RAM limit"); - return -1; + return; } if (avail_cap_quota < preserved_cap_quota) { error("core preservation exceeds platform cap quota limit"); - return -1; + return; } Ram_quota const init_ram_quota { avail_ram_quota - preserved_ram_quota }; @@ -319,5 +324,4 @@ int main() platform().wait_for_exit(); init.destruct(); - return 0; } diff --git a/repos/base/src/core/signal_transmitter_proxy.cc b/repos/base/src/core/signal_transmitter_proxy.cc index 722dc496c2..9e9a0f3f79 100644 --- a/repos/base/src/core/signal_transmitter_proxy.cc +++ b/repos/base/src/core/signal_transmitter_proxy.cc @@ -30,19 +30,10 @@ using namespace Core; static Constructible delivery_proxy; -/* - * Entrypoint that serves the 'Signal_source' RPC objects - */ -static Rpc_entrypoint *_ep; - - -void Core::init_core_signal_transmitter(Rpc_entrypoint &ep) { _ep = &ep; } - - -void Genode::init_signal_transmitter(Env &) +void Core::init_core_signal_transmitter(Rpc_entrypoint &ep) { - if (!delivery_proxy.constructed() && _ep) - delivery_proxy.construct(*_ep); + if (!delivery_proxy.constructed()) + delivery_proxy.construct(ep); } diff --git a/repos/base/src/include/base/internal/globals.h b/repos/base/src/include/base/internal/globals.h index a9a30add48..618a6183b4 100644 --- a/repos/base/src/include/base/internal/globals.h +++ b/repos/base/src/include/base/internal/globals.h @@ -57,6 +57,7 @@ namespace Genode { Id_space &env_session_id_space(); Env &internal_env(); + void bootstrap_component(); void binary_ready_hook_for_platform(); }