base: use 'Ram_allocator' as stack-area back end

The 'Stack_area_ram_session' is now a 'Stack_area_ram_allocator', which
simplifies the code and remove a dependency from the 'Ram_session'
interface, which we want to remove after all.

Issue #2407
This commit is contained in:
Norman Feske
2017-05-11 19:39:46 +02:00
committed by Christian Helmuth
parent d31642e8be
commit 5a3a1c704b
9 changed files with 32 additions and 66 deletions

View File

@@ -78,7 +78,7 @@ class Stack_area_region_map : public Genode::Region_map
};
struct Stack_area_ram_session : Genode::Ram_session
struct Stack_area_ram_allocator : Genode::Ram_allocator
{
Genode::Ram_dataspace_capability alloc(Genode::size_t size,
Genode::Cache_attribute) override {
@@ -87,14 +87,6 @@ struct Stack_area_ram_session : Genode::Ram_session
void free(Genode::Ram_dataspace_capability) override { }
Genode::size_t dataspace_size(Genode::Ram_dataspace_capability) const override { return 0; }
void ref_account(Genode::Ram_session_capability) override { }
void transfer_quota(Genode::Ram_session_capability, Genode::Ram_quota) override { }
Genode::Ram_quota ram_quota() const override { return { 0 }; }
Genode::Ram_quota used_ram() const override { return { 0 }; }
};
@@ -103,16 +95,16 @@ struct Stack_area_ram_session : Genode::Ram_session
*/
namespace Genode {
Region_map *env_stack_area_region_map;
Ram_session *env_stack_area_ram_session;
Region_map *env_stack_area_region_map;
Ram_allocator *env_stack_area_ram_allocator;
void init_stack_area()
{
static Stack_area_region_map rm_inst;
env_stack_area_region_map = &rm_inst;
static Stack_area_ram_session ram_inst;
env_stack_area_ram_session = &ram_inst;
static Stack_area_ram_allocator ram_inst;
env_stack_area_ram_allocator = &ram_inst;
}
}

View File

@@ -163,8 +163,8 @@ Platform_env::Platform_env()
{
_attach_stack_area();
env_stack_area_region_map = &_local_pd_session._stack_area;
env_stack_area_ram_session = ram_session();
env_stack_area_region_map = &_local_pd_session._stack_area;
env_stack_area_ram_allocator = ram_session();
/* register TID and PID of the main thread at core */
Linux_native_cpu_client native_cpu(cpu_session()->native_cpu());