diff --git a/repos/base-hw/src/lib/base/signal_receiver.cc b/repos/base-hw/src/lib/base/signal_receiver.cc
index 55c1e609a7..aa2bb0095e 100644
--- a/repos/base-hw/src/lib/base/signal_receiver.cc
+++ b/repos/base-hw/src/lib/base/signal_receiver.cc
@@ -28,11 +28,11 @@
using namespace Genode;
-static Pd_session *_pd_ptr;
-static Pd_session &pd()
+static Env *_env_ptr;
+static Env &env()
{
- if (_pd_ptr)
- return *_pd_ptr;
+ if (_env_ptr)
+ return *_env_ptr;
class Missing_init_signal_thread { };
throw Missing_init_signal_thread();
@@ -43,14 +43,16 @@ static Pd_session &pd()
* On base-hw, we don't use a signal thread. We mereely save the PD session
* pointer of the passed 'env' argument.
*/
-void Genode::init_signal_thread(Env &env) { _pd_ptr = &env.pd(); }
+void Genode::init_signal_thread(Env &env) { _env_ptr = &env; }
+
+
void Genode::destroy_signal_thread() { }
void Genode::init_signal_receiver(Pd_session &, Parent &) { }
-Signal_receiver::Signal_receiver() : _pd(pd())
+Signal_receiver::Signal_receiver() : _pd(env().pd())
{
for (;;) {
@@ -58,15 +60,15 @@ Signal_receiver::Signal_receiver() : _pd(pd())
Cap_quota cap_upgrade { 0 };
try {
- _cap = pd().alloc_signal_source();
+ _cap = env().pd().alloc_signal_source();
break;
}
catch (Out_of_ram) { ram_upgrade = Ram_quota { 2*1024*sizeof(long) }; }
catch (Out_of_caps) { cap_upgrade = Cap_quota { 4 }; }
- internal_env().upgrade(Parent::Env::pd(),
- String<100>("ram_quota=", ram_upgrade, ", "
- "cap_quota=", cap_upgrade).string());
+ env().upgrade(Parent::Env::pd(),
+ String<100>("ram_quota=", ram_upgrade, ", "
+ "cap_quota=", cap_upgrade).string());
}
}
@@ -74,7 +76,7 @@ Signal_receiver::Signal_receiver() : _pd(pd())
void Signal_receiver::_platform_destructor()
{
/* release server resources of receiver */
- pd().free_signal_source(_cap);
+ env().pd().free_signal_source(_cap);
}
@@ -112,7 +114,7 @@ Signal_context_capability Signal_receiver::manage(Signal_context * const c)
try {
/* use signal context as imprint */
- c->_cap = pd().alloc_context(_cap, (unsigned long)c);
+ c->_cap = env().pd().alloc_context(_cap, (unsigned long)c);
c->_receiver = this;
_contexts.insert_as_tail(c);
return c->_cap;
@@ -120,9 +122,9 @@ Signal_context_capability Signal_receiver::manage(Signal_context * const c)
catch (Out_of_ram) { ram_upgrade = Ram_quota { 1024*sizeof(long) }; }
catch (Out_of_caps) { cap_upgrade = Cap_quota { 4 }; }
- internal_env().upgrade(Parent::Env::pd(),
- String<100>("ram_quota=", ram_upgrade, ", "
- "cap_quota=", cap_upgrade).string());
+ env().upgrade(Parent::Env::pd(),
+ String<100>("ram_quota=", ram_upgrade, ", "
+ "cap_quota=", cap_upgrade).string());
}
}
diff --git a/repos/base-linux/src/lib/base/platform.cc b/repos/base-linux/src/lib/base/platform.cc
index f5aa741822..3f72a96351 100644
--- a/repos/base-linux/src/lib/base/platform.cc
+++ b/repos/base-linux/src/lib/base/platform.cc
@@ -24,8 +24,6 @@
#include
#include
-#include
-
using namespace Genode;
@@ -134,36 +132,6 @@ static unsigned long get_env_ulong(const char *key)
}
-static Platform *_platform_ptr;
-
-
-Env_deprecated *Genode::env_deprecated()
-{
- if (!_platform_ptr) {
- error("missing call of init_platform");
- for (;;);
- }
-
- struct Impl : Env_deprecated, Noncopyable
- {
- Platform &_pf;
-
- Impl(Platform &pf) : _pf(pf) { }
-
- Parent *parent() override { return &_pf.parent; }
- Cpu_session *cpu_session() override { return &_pf.cpu; }
- Cpu_session_capability cpu_session_cap() override { return _pf.cpu.rpc_cap(); }
- Region_map *rm_session() override { return &_pf.rm; }
- Pd_session *pd_session() override { return &_pf.pd; }
- Pd_session_capability pd_session_cap() override { return _pf.pd.rpc_cap(); }
- };
-
- static Impl impl { *_platform_ptr };
-
- return &impl;
-}
-
-
Capability Platform::_obtain_parent_cap()
{
long const local_name = get_env_ulong("parent_local_name");
@@ -196,8 +164,6 @@ Platform &Genode::init_platform()
init_exception_handling(platform.pd, platform.rm);
init_signal_receiver(platform.pd, platform.parent);
- _platform_ptr = &platform;
-
return platform;
}
diff --git a/repos/base/include/deprecated/env.h b/repos/base/include/deprecated/env.h
deleted file mode 100644
index b96f55cdb9..0000000000
--- a/repos/base/include/deprecated/env.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * \brief Environment of a component
- * \author Norman Feske
- * \date 2006-07-01
- *
- * \deprecated This interface will be removed once all components are
- * adjusted to the new API of base/component.h
- */
-
-/*
- * Copyright (C) 2006-2017 Genode Labs GmbH
- *
- * This file is part of the Genode OS framework, which is distributed
- * under the terms of the GNU Affero General Public License version 3.
- */
-
-#ifndef _INCLUDE__DEPRECATED__ENV_H_
-#define _INCLUDE__DEPRECATED__ENV_H_
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-namespace Genode {
-
- struct Env_deprecated;
-
- /**
- * Return the interface to the component's environment
- *
- * \noapi
- * \deprecated
- */
- extern Env_deprecated *env_deprecated();
-
- /**
- * Return the interface to the component's environment
- *
- * \deprecated
- */
- static inline Env_deprecated *env() __attribute__((deprecated));
- static inline Env_deprecated *env()
- {
- return env_deprecated();
- }
-}
-
-
-/**
- * Component runtime environment
- *
- * The environment of a Genode component is defined by its parent. The 'Env'
- * class allows the component to interact with its environment. It is
- * initialized at the startup of the component.
- */
-struct Genode::Env_deprecated : Interface
-{
- /**
- * Communication channel to our parent
- */
- virtual Parent *parent() = 0;
-
- /**
- * CPU session of the component
- *
- * This session is used to create the threads of the component.
- */
- virtual Cpu_session *cpu_session() = 0;
- virtual Cpu_session_capability cpu_session_cap() = 0;
-
- /**
- * Region-manager session of the component as created by the parent
- *
- * \deprecated This function exists for API compatibility only.
- * The functionality of the former RM service is now
- * provided by the 'Region_map' interface.
- */
- virtual Region_map *rm_session() = 0;
-
- /**
- * PD session of the component as created by the parent
- */
- virtual Pd_session *pd_session() = 0;
- virtual Pd_session_capability pd_session_cap() = 0;
-};
-
-#endif /* _INCLUDE__DEPRECATED__ENV_H_ */
diff --git a/repos/base/lib/symbols/ld b/repos/base/lib/symbols/ld
index 48703f93f0..d19a069fb0 100644
--- a/repos/base/lib/symbols/ld
+++ b/repos/base/lib/symbols/ld
@@ -122,7 +122,6 @@ _ZN6Genode14Signal_contextD0Ev T
_ZN6Genode14Signal_contextD1Ev T
_ZN6Genode14Signal_contextD2Ev T
_ZN6Genode14cache_coherentEmm T
-_ZN6Genode14env_deprecatedEv T
_ZN6Genode14ipc_reply_waitERKNS_17Native_capabilityENS_18Rpc_exception_codeERNS_11Msgbuf_baseES5_ T
_ZN6Genode15Signal_receiver12local_submitENS_6Signal4DataE T
_ZN6Genode15Signal_receiver14pending_signalEv T
diff --git a/repos/base/src/core/include/core_env.h b/repos/base/src/core/include/core_env.h
index 8db02b38a9..a2436f6262 100644
--- a/repos/base/src/core/include/core_env.h
+++ b/repos/base/src/core/include/core_env.h
@@ -17,7 +17,6 @@
/* Genode includes */
#include
-#include
/* base-internal includes */
#include
@@ -36,7 +35,7 @@ namespace Core {
}
-class Core::Core_env : public Env_deprecated, Noncopyable
+class Core::Core_env : public Noncopyable
{
private:
@@ -87,16 +86,12 @@ class Core::Core_env : public Env_deprecated, Noncopyable
Rpc_entrypoint &signal_ep();
- /******************************
- ** Env_deprecated interface **
- ******************************/
-
- Parent *parent() override { return nullptr; }
- Region_map *rm_session() override { return &_region_map; }
- Pd_session *pd_session() override { return &_pd_session; }
- Cpu_session *cpu_session() override { ASSERT_NEVER_CALLED; }
- Cpu_session_capability cpu_session_cap() override { ASSERT_NEVER_CALLED; }
- Pd_session_capability pd_session_cap() override { return _pd_session.cap(); }
+ Parent *parent() { return nullptr; }
+ Region_map *rm_session() { return &_region_map; }
+ Pd_session *pd_session() { return &_pd_session; }
+ Cpu_session *cpu_session() { ASSERT_NEVER_CALLED; }
+ Cpu_session_capability cpu_session_cap() { ASSERT_NEVER_CALLED; }
+ Pd_session_capability pd_session_cap() { return _pd_session.cap(); }
};
#endif /* _CORE__INCLUDE__CORE_ENV_H_ */
diff --git a/repos/base/src/core/main.cc b/repos/base/src/core/main.cc
index 7b56385acd..f505113fe8 100644
--- a/repos/base/src/core/main.cc
+++ b/repos/base/src/core/main.cc
@@ -74,10 +74,6 @@ Core_env &Core::core_env()
}
-Env_deprecated *Genode::env_deprecated() {
- return &core_env(); }
-
-
Core::Platform &Core::platform_specific()
{
static Platform _platform;
diff --git a/repos/base/src/include/base/internal/globals.h b/repos/base/src/include/base/internal/globals.h
index f2b4b3e648..b01dd407b0 100644
--- a/repos/base/src/include/base/internal/globals.h
+++ b/repos/base/src/include/base/internal/globals.h
@@ -57,7 +57,6 @@ namespace Genode {
void cxx_free_tls(void *thread);
Id_space &env_session_id_space();
- Env &internal_env();
void prepare_init_main_thread();
void bootstrap_component(Platform &);
diff --git a/repos/base/src/lib/base/component.cc b/repos/base/src/lib/base/component.cc
index b1493f8e00..5903126c0b 100644
--- a/repos/base/src/lib/base/component.cc
+++ b/repos/base/src/lib/base/component.cc
@@ -18,18 +18,11 @@
#include
#include
#include
-#include
/* base-internal includes */
#include
#include
-
-/*
- * XXX remove this pointer once 'Env_deprecated' is removed
- */
-static Genode::Env *env_ptr = nullptr;
-
namespace Genode { struct Component_env; }
using namespace Genode;
@@ -86,9 +79,7 @@ struct Genode::Component_env : Env
Component_env(Platform &platform, Entrypoint &ep)
:
_platform(platform), _ep(ep)
- {
- env_ptr = this;
- }
+ { }
Parent &parent() override { return _parent; }
Cpu_session &cpu() override { return _cpu; }
@@ -222,23 +213,6 @@ struct Genode::Component_env : Env
};
-namespace Genode {
-
- struct Startup;
-
- extern void bootstrap_component();
-
- Env &internal_env()
- {
- class Env_ptr_not_initialized { };
- if (!env_ptr)
- throw Env_ptr_not_initialized();
-
- return *env_ptr;
- }
-}
-
-
size_t Component::stack_size() __attribute__((weak));
size_t Component::stack_size() { return 64*1024; }
@@ -259,6 +233,9 @@ void Genode::init_ldso_phdr(Env &) { }
* We need to execute the constructor of the main entrypoint from a
* class called 'Startup' as 'Startup' is a friend of 'Entrypoint'.
*/
+namespace Genode { struct Startup; }
+
+
struct Genode::Startup
{
Component_env env;
diff --git a/repos/base/src/lib/base/platform.cc b/repos/base/src/lib/base/platform.cc
index 35c01b6fe2..dd7cf1d1c2 100644
--- a/repos/base/src/lib/base/platform.cc
+++ b/repos/base/src/lib/base/platform.cc
@@ -12,42 +12,10 @@
* under the terms of the GNU Affero General Public License version 3.
*/
-#include
#include
-#include
-#include
using namespace Genode;
-static Platform *_platform_ptr;
-
-
-Env_deprecated *Genode::env_deprecated()
-{
- if (!_platform_ptr) {
- error("missing call of init_platform");
- for (;;);
- }
-
- struct Impl : Env_deprecated, Noncopyable
- {
- Platform &_pf;
-
- Impl(Platform &pf) : _pf(pf) { }
-
- Parent *parent() override { return &_pf.parent; }
- Cpu_session *cpu_session() override { return &_pf.cpu; }
- Cpu_session_capability cpu_session_cap() override { return _pf.cpu.rpc_cap(); }
- Region_map *rm_session() override { return &_pf.rm; }
- Pd_session *pd_session() override { return &_pf.pd; }
- Pd_session_capability pd_session_cap() override { return _pf.pd.rpc_cap(); }
- };
-
- static Impl impl { *_platform_ptr };
-
- return &impl;
-}
-
void Genode::init_parent_resource_requests(Genode::Env &env)
{
@@ -68,8 +36,6 @@ Platform &Genode::init_platform()
init_thread_bootstrap(platform.cpu, platform.parent.main_thread_cap());
init_signal_receiver(platform.pd, platform.parent);
- _platform_ptr = &platform;
-
return platform;
}