safeguard the synchronized allocator template

* Move the Synced_interface from os -> base
* Align the naming of "synchronized" helpers to "Synced_*"
* Move Synced_range_allocator to core's private headers
* Remove the raw() and lock() members from Synced_allocator and
  Synced_range_allocator, and re-use the Synced_interface for them
* Make core's Mapped_mem_allocator a friend class of Synced_range_allocator
  to enable the needed "unsafe" access of its physical and virtual allocators

Fix #1697
This commit is contained in:
Stefan Kalkowski
2015-09-17 14:16:59 +02:00
committed by Christian Helmuth
parent 53eb666ed0
commit ccb968ff7d
35 changed files with 432 additions and 519 deletions

View File

@ -15,13 +15,13 @@
#ifndef _CORE__INCLUDE__LINUX__PLATFORM_H_
#define _CORE__INCLUDE__LINUX__PLATFORM_H_
#include <base/sync_allocator.h>
#include <base/allocator_avl.h>
#include <base/lock_guard.h>
#include <platform_generic.h>
#include <platform_pd.h>
#include <platform_thread.h>
#include <synced_range_allocator.h>
namespace Genode {
@ -34,7 +34,7 @@ namespace Genode {
/**
* Allocator for core-internal meta data
*/
Synchronized_range_allocator<Allocator_avl> _core_mem_alloc;
Synced_range_allocator<Allocator_avl> _core_mem_alloc;
/**
* Allocator for pseudo physical memory

View File

@ -84,7 +84,7 @@ static void sigchld_handler(int signnum)
Platform::Platform()
: _core_mem_alloc(0)
: _core_mem_alloc(nullptr)
{
/* catch control-c */
lx_sigaction(LX_SIGINT, sigint_handler);