diff --git a/repos/base-foc/src/core/spec/x86/platform_services.cc b/repos/base-foc/src/core/spec/x86/platform_services.cc index 8e4888c65a..82db206103 100644 --- a/repos/base-foc/src/core/spec/x86/platform_services.cc +++ b/repos/base-foc/src/core/spec/x86/platform_services.cc @@ -23,7 +23,8 @@ void Core::platform_add_local_services(Rpc_entrypoint &ep, Sliced_heap &heap, Registry &services, - Trace::Source_registry &trace_sources) + Trace::Source_registry &trace_sources, + Ram_allocator &) { static Vm_root vm_root(ep, heap, core_env().ram_allocator(), core_env().local_rm(), trace_sources); diff --git a/repos/base-hw/src/core/spec/arm/virtualization/platform_services.cc b/repos/base-hw/src/core/spec/arm/virtualization/platform_services.cc index 67c15ca117..262d4f2e86 100644 --- a/repos/base-hw/src/core/spec/arm/virtualization/platform_services.cc +++ b/repos/base-hw/src/core/spec/arm/virtualization/platform_services.cc @@ -35,7 +35,8 @@ extern addr_t hypervisor_exception_vector; void Core::platform_add_local_services(Rpc_entrypoint &ep, Sliced_heap &sh, Registry &services, - Core::Trace::Source_registry &trace_sources) + Core::Trace::Source_registry &trace_sources, + Ram_allocator &) { map_local(Platform::core_phys_addr((addr_t)&hypervisor_exception_vector), Hw::Mm::hypervisor_exception_vector().base, diff --git a/repos/base-hw/src/core/spec/arm_v7/trustzone/platform_services.cc b/repos/base-hw/src/core/spec/arm_v7/trustzone/platform_services.cc index 2a3919d40a..7623cc8229 100644 --- a/repos/base-hw/src/core/spec/arm_v7/trustzone/platform_services.cc +++ b/repos/base-hw/src/core/spec/arm_v7/trustzone/platform_services.cc @@ -32,7 +32,8 @@ extern int monitor_mode_exception_vector; void Core::platform_add_local_services(Rpc_entrypoint &ep, Sliced_heap &sliced_heap, Registry &local_services, - Core::Trace::Source_registry &trace_sources) + Core::Trace::Source_registry &trace_sources, + Ram_allocator &) { static addr_t const phys_base = Platform::core_phys_addr((addr_t)&monitor_mode_exception_vector); diff --git a/repos/base-hw/src/core/spec/x86_64/virtualization/platform_services.cc b/repos/base-hw/src/core/spec/x86_64/virtualization/platform_services.cc index 094e10f65f..b5ca2578f4 100644 --- a/repos/base-hw/src/core/spec/x86_64/virtualization/platform_services.cc +++ b/repos/base-hw/src/core/spec/x86_64/virtualization/platform_services.cc @@ -27,9 +27,10 @@ * Add x86 specific ioport and virtualization service */ void Core::platform_add_local_services(Rpc_entrypoint &ep, - Sliced_heap &sliced_heap, - Registry &local_services, - Trace::Source_registry &trace_sources) + Sliced_heap &sliced_heap, + Registry &local_services, + Trace::Source_registry &trace_sources, + Ram_allocator &) { static Io_port_root io_port_root(*core_env().pd_session(), platform().io_port_alloc(), sliced_heap); diff --git a/repos/base-linux/src/core/spec/linux/platform_services.cc b/repos/base-linux/src/core/spec/linux/platform_services.cc index 700f0c1248..25551c35e3 100644 --- a/repos/base-linux/src/core/spec/linux/platform_services.cc +++ b/repos/base-linux/src/core/spec/linux/platform_services.cc @@ -22,5 +22,6 @@ void Core::platform_add_local_services(Rpc_entrypoint &, Sliced_heap &, Registry &, - Trace::Source_registry &) + Trace::Source_registry &, + Ram_allocator &) { } diff --git a/repos/base-linux/src/core/spec/pc/platform_services.cc b/repos/base-linux/src/core/spec/pc/platform_services.cc index 2a9dae0ddd..18c464b04c 100644 --- a/repos/base-linux/src/core/spec/pc/platform_services.cc +++ b/repos/base-linux/src/core/spec/pc/platform_services.cc @@ -28,7 +28,8 @@ using namespace Core; void Core::platform_add_local_services(Rpc_entrypoint &, Sliced_heap &md, Registry ®, - Core::Trace::Source_registry &) + Core::Trace::Source_registry &, + Ram_allocator &) { if (!lx_iopl(3)) { static Io_port_root io_port_root(*core_env().pd_session(), diff --git a/repos/base-nova/src/core/platform_services.cc b/repos/base-nova/src/core/platform_services.cc index f0df7a79a5..740b134097 100644 --- a/repos/base-nova/src/core/platform_services.cc +++ b/repos/base-nova/src/core/platform_services.cc @@ -23,7 +23,8 @@ void Core::platform_add_local_services(Rpc_entrypoint &ep, Sliced_heap &heap, Registry &services, - Trace::Source_registry &trace_sources) + Trace::Source_registry &trace_sources, + Ram_allocator &) { static Vm_root vm_root(ep, heap, core_env().ram_allocator(), core_env().local_rm(), trace_sources); diff --git a/repos/base-sel4/src/core/spec/x86/platform_services.cc b/repos/base-sel4/src/core/spec/x86/platform_services.cc index 2e779a438d..d7fc1f8769 100644 --- a/repos/base-sel4/src/core/spec/x86/platform_services.cc +++ b/repos/base-sel4/src/core/spec/x86/platform_services.cc @@ -23,7 +23,8 @@ void Core::platform_add_local_services(Rpc_entrypoint &ep, Sliced_heap &heap, Registry &services, - Core::Trace::Source_registry &trace_sources) + Core::Trace::Source_registry &trace_sources, + Ram_allocator &) { static Vm_root vm_root(ep, heap, core_env().ram_allocator(), core_env().local_rm(), trace_sources); diff --git a/repos/base/src/core/include/platform_services.h b/repos/base/src/core/include/platform_services.h index 5193f7f892..95e3b8c7de 100644 --- a/repos/base/src/core/include/platform_services.h +++ b/repos/base/src/core/include/platform_services.h @@ -15,6 +15,7 @@ #define _CORE__INCLUDE__PLATFORM_SERVICES_H_ /* core includes */ +#include "base/ram_allocator.h" #include #include @@ -38,7 +39,8 @@ namespace Core { void platform_add_local_services(Rpc_entrypoint &ep, Sliced_heap &md, Registry ®, - Trace::Source_registry &trace); + Trace::Source_registry &trace, + Ram_allocator &core_ram_alloc); } #endif /* _CORE__INCLUDE__PLATFORM_SERVICES_H_ */ diff --git a/repos/base/src/core/main.cc b/repos/base/src/core/main.cc index 861a424847..66064508dd 100644 --- a/repos/base/src/core/main.cc +++ b/repos/base/src/core/main.cc @@ -289,7 +289,7 @@ void Genode::bootstrap_component(Genode::Platform &) static Core_service trace_service (services, trace_root); /* make platform-specific services known to service pool */ - platform_add_local_services(ep, sliced_heap, services, Core::Trace::sources()); + platform_add_local_services(ep, sliced_heap, services, Core::Trace::sources(), core_ram_alloc); size_t const avail_ram_quota = core_pd.avail_ram().value; size_t const avail_cap_quota = core_pd.avail_caps().value; diff --git a/repos/base/src/core/platform_services.cc b/repos/base/src/core/platform_services.cc index f925e1bcb2..ca4c4e98d0 100644 --- a/repos/base/src/core/platform_services.cc +++ b/repos/base/src/core/platform_services.cc @@ -17,4 +17,5 @@ void Core::platform_add_local_services(Rpc_entrypoint &, Sliced_heap &, Registry &, - Trace::Source_registry &) { } + Trace::Source_registry &, + Ram_allocator &) { } diff --git a/repos/base/src/core/spec/x86/platform_services.cc b/repos/base/src/core/spec/x86/platform_services.cc index 1edc5d85e2..47bd233327 100644 --- a/repos/base/src/core/spec/x86/platform_services.cc +++ b/repos/base/src/core/spec/x86/platform_services.cc @@ -27,7 +27,8 @@ void Core::platform_add_local_services(Rpc_entrypoint &, Sliced_heap &sliced_heap, Registry &local_services, - Trace::Source_registry &) + Trace::Source_registry &, + Ram_allocator &) { static Io_port_root io_port_root(*core_env().pd_session(), platform().io_port_alloc(), sliced_heap);