diff --git a/base-hw/src/base/placement_new.h b/base-hw/src/base/placement_new.h new file mode 100644 index 000000000..147dbbb1c --- /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 b1968048b..ad5c4a90a 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 dd6b760a3..b64d22167 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 7e7d6f869..7d47bb2b1 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 b97ad66c2..bfcde76ba 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 3ac114960..66785c03f 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 890d3afb3..011f2298e 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 */