From da49f86f5b22104877c8bd5ed7bc631bffffb3d5 Mon Sep 17 00:00:00 2001 From: Martin Stein Date: Thu, 14 Nov 2013 12:07:07 +0100 Subject: [PATCH] hw: provide placement via dedicated header ref #935 --- base-hw/src/base/placement_new.h | 22 ++++++++++++++++++++ base-hw/src/base/singleton.h | 4 ++-- base-hw/src/core/kernel/irq.h | 12 +++-------- base-hw/src/core/kernel/thread.cc | 3 +++ base-hw/src/core/kernel/vm.h | 5 ----- base-hw/src/core/signal_session_component.cc | 9 +++----- base-hw/src/core/tlb/arm.h | 8 +++---- 7 files changed, 36 insertions(+), 27 deletions(-) create mode 100644 base-hw/src/base/placement_new.h diff --git a/base-hw/src/base/placement_new.h b/base-hw/src/base/placement_new.h new file mode 100644 index 0000000000..147dbbb1c2 --- /dev/null +++ b/base-hw/src/base/placement_new.h @@ -0,0 +1,22 @@ +/* + * \brief Placement new operator + * \author Martin Stein + * \date 2013-11-07 + */ + +/* + * Copyright (C) 2013 Genode Labs GmbH + * + * This file is part of the Genode OS framework, which is distributed + * under the terms of the GNU General Public License version 2. + */ + +#ifndef _PLACEMENT_NEW_H_ +#define _PLACEMENT_NEW_H_ + +/** + * Placement new operator + */ +inline void *operator new(Genode::size_t, void *at) { return at; } + +#endif /* _PLACEMENT_NEW_H_ */ diff --git a/base-hw/src/base/singleton.h b/base-hw/src/base/singleton.h index b1968048b2..ad5c4a90aa 100644 --- a/base-hw/src/base/singleton.h +++ b/base-hw/src/base/singleton.h @@ -31,8 +31,8 @@ /* Genode includes */ #include -inline void *operator new(Genode::size_t, void *at) { return at; } - +/* base-hw includes */ +#include template static inline T *unsynchronized_singleton(Args... args) diff --git a/base-hw/src/core/kernel/irq.h b/base-hw/src/core/kernel/irq.h index dd6b760a30..b64d221673 100644 --- a/base-hw/src/core/kernel/irq.h +++ b/base-hw/src/core/kernel/irq.h @@ -18,6 +18,9 @@ #include #include +/* base-hw includes */ +#include + /* core includes */ #include @@ -125,15 +128,6 @@ class Kernel::Irq public: - /** - * Placement-new operator - * - * \param p destination of new object - * - * \return destination of new object - */ - void * operator new (size_t, void * p) { return p; } - /** * Constructor * diff --git a/base-hw/src/core/kernel/thread.cc b/base-hw/src/core/kernel/thread.cc index 7e7d6f8697..7d47bb2b11 100644 --- a/base-hw/src/core/kernel/thread.cc +++ b/base-hw/src/core/kernel/thread.cc @@ -14,6 +14,9 @@ /* Genode includes */ #include +/* base-hw includes */ +#include + /* core includes */ #include #include diff --git a/base-hw/src/core/kernel/vm.h b/base-hw/src/core/kernel/vm.h index b97ad66c23..bfcde76baf 100644 --- a/base-hw/src/core/kernel/vm.h +++ b/base-hw/src/core/kernel/vm.h @@ -47,11 +47,6 @@ class Kernel::Vm : public Object, public: - /** - * Placement new - */ - void * operator new (size_t, void * p) { return p; } - /** * Constructor * diff --git a/base-hw/src/core/signal_session_component.cc b/base-hw/src/core/signal_session_component.cc index 3ac1149605..66785c03f4 100644 --- a/base-hw/src/core/signal_session_component.cc +++ b/base-hw/src/core/signal_session_component.cc @@ -13,7 +13,10 @@ /* Genode includes */ #include + +/* base-hw includes */ #include +#include /* core includes */ #include @@ -21,12 +24,6 @@ using namespace Genode; -/** - * Placement new - */ -void * operator new (size_t, void * p) { return p; } - - Signal_session_component::Signal_session_component(Allocator * const md, size_t const ram_quota) : _md_alloc(md, ram_quota), diff --git a/base-hw/src/core/tlb/arm.h b/base-hw/src/core/tlb/arm.h index 890d3afb3d..011f2298e4 100644 --- a/base-hw/src/core/tlb/arm.h +++ b/base-hw/src/core/tlb/arm.h @@ -18,6 +18,9 @@ #include #include +/* base-hw includes */ +#include + namespace Arm { using namespace Genode; @@ -312,11 +315,6 @@ namespace Arm public: - /** - * Placement new operator - */ - void * operator new (size_t, void * p) { return p; } - /** * Constructor */