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
*/