mirror of
https://github.com/genodelabs/genode.git
synced 2025-06-05 00:50:54 +00:00
hw: remove unused object pool of pager ojects
Fix genodelabs/genode#5417
This commit is contained in:
parent
0d648eae62
commit
b0052a71be
@ -75,11 +75,7 @@ void Pager_object::wake_up()
|
|||||||
void Pager_object::start_paging(Kernel_object<Kernel::Signal_receiver> &receiver,
|
void Pager_object::start_paging(Kernel_object<Kernel::Signal_receiver> &receiver,
|
||||||
Platform_thread &pager_thread)
|
Platform_thread &pager_thread)
|
||||||
{
|
{
|
||||||
using Object = Kernel_object<Kernel::Signal_context>;
|
|
||||||
using Entry = Object_pool<Pager_object>::Entry;
|
|
||||||
|
|
||||||
create(*receiver, (unsigned long)this);
|
create(*receiver, (unsigned long)this);
|
||||||
Entry::cap(Object::_cap);
|
|
||||||
_pager_thread = &pager_thread;
|
_pager_thread = &pager_thread;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,7 +97,6 @@ Pager_object::Pager_object(Cpu_session_capability cpu_session_cap,
|
|||||||
Affinity::Location location, Session_label const &,
|
Affinity::Location location, Session_label const &,
|
||||||
Cpu_session::Name const &)
|
Cpu_session::Name const &)
|
||||||
:
|
:
|
||||||
Object_pool<Pager_object>::Entry(Kernel_object<Kernel::Signal_context>::_cap),
|
|
||||||
_badge(badge), _location(location),
|
_badge(badge), _location(location),
|
||||||
_cpu_session_cap(cpu_session_cap), _thread_cap(thread_cap)
|
_cpu_session_cap(cpu_session_cap), _thread_cap(thread_cap)
|
||||||
{ }
|
{ }
|
||||||
@ -198,12 +193,6 @@ Pager_entrypoint::Thread::Thread(Affinity::Location cpu)
|
|||||||
void Pager_entrypoint::dissolve(Pager_object &o)
|
void Pager_entrypoint::dissolve(Pager_object &o)
|
||||||
{
|
{
|
||||||
Kernel::kill_signal_context(Capability_space::capid(o.cap()));
|
Kernel::kill_signal_context(Capability_space::capid(o.cap()));
|
||||||
|
|
||||||
unsigned const cpu = o.location().xpos();
|
|
||||||
if (cpu >= _cpus)
|
|
||||||
error("Invalid location of pager object ", cpu);
|
|
||||||
else
|
|
||||||
_threads[cpu].remove(&o);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -215,7 +204,6 @@ Pager_capability Pager_entrypoint::manage(Pager_object &o)
|
|||||||
} else {
|
} else {
|
||||||
o.start_paging(_threads[cpu]._kobj,
|
o.start_paging(_threads[cpu]._kobj,
|
||||||
*_threads[cpu].native_thread().platform_thread);
|
*_threads[cpu].native_thread().platform_thread);
|
||||||
_threads[cpu].insert(&o);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return reinterpret_cap_cast<Pager_object>(o.cap());
|
return reinterpret_cap_cast<Pager_object>(o.cap());
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
/* Genode includes */
|
/* Genode includes */
|
||||||
#include <base/session_label.h>
|
#include <base/session_label.h>
|
||||||
#include <base/thread.h>
|
#include <base/thread.h>
|
||||||
#include <base/object_pool.h>
|
|
||||||
#include <base/signal.h>
|
#include <base/signal.h>
|
||||||
#include <pager/capability.h>
|
#include <pager/capability.h>
|
||||||
|
|
||||||
@ -100,11 +99,9 @@ class Core::Ipc_pager
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class Core::Pager_object : private Object_pool<Pager_object>::Entry,
|
class Core::Pager_object : private Kernel_object<Kernel::Signal_context>
|
||||||
private Kernel_object<Kernel::Signal_context>
|
|
||||||
{
|
{
|
||||||
friend class Pager_entrypoint;
|
friend class Pager_entrypoint;
|
||||||
friend class Object_pool<Pager_object>;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@ -138,6 +135,8 @@ class Core::Pager_object : private Object_pool<Pager_object>::Entry,
|
|||||||
Affinity::Location, Session_label const&,
|
Affinity::Location, Session_label const&,
|
||||||
Cpu_session::Name const&);
|
Cpu_session::Name const&);
|
||||||
|
|
||||||
|
virtual ~Pager_object() {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* User identification of pager object
|
* User identification of pager object
|
||||||
*/
|
*/
|
||||||
@ -215,7 +214,8 @@ class Core::Pager_object : private Object_pool<Pager_object>::Entry,
|
|||||||
Cpu_session_capability cpu_session_cap() const { return _cpu_session_cap; }
|
Cpu_session_capability cpu_session_cap() const { return _cpu_session_cap; }
|
||||||
Thread_capability thread_cap() const { return _thread_cap; }
|
Thread_capability thread_cap() const { return _thread_cap; }
|
||||||
|
|
||||||
using Object_pool<Pager_object>::Entry::cap;
|
Untyped_capability cap() {
|
||||||
|
return Kernel_object<Kernel::Signal_context>::_cap; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -225,8 +225,7 @@ class Core::Pager_entrypoint
|
|||||||
|
|
||||||
friend class Platform;
|
friend class Platform;
|
||||||
|
|
||||||
class Thread : public Object_pool<Pager_object>,
|
class Thread : public Genode::Thread,
|
||||||
public Genode::Thread,
|
|
||||||
private Ipc_pager
|
private Ipc_pager
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user