mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-25 22:00:32 +00:00
Adapt GDB monitor and Noux to CPU session changes
This commit is contained in:
parent
9369057f90
commit
d079ef51ae
@ -25,8 +25,11 @@ namespace Genode {
|
|||||||
explicit Foc_cpu_session_client(Cpu_session_capability session)
|
explicit Foc_cpu_session_client(Cpu_session_capability session)
|
||||||
: Rpc_client<Foc_cpu_session>(static_cap_cast<Foc_cpu_session>(session)) { }
|
: Rpc_client<Foc_cpu_session>(static_cap_cast<Foc_cpu_session>(session)) { }
|
||||||
|
|
||||||
Thread_capability create_thread(Name const &name) {
|
Thread_capability create_thread(Name const &name, addr_t utcb = 0) {
|
||||||
return call<Rpc_create_thread>(name); }
|
return call<Rpc_create_thread>(name, utcb); }
|
||||||
|
|
||||||
|
Ram_dataspace_capability utcb(Thread_capability thread) {
|
||||||
|
return call<Rpc_utcb>(thread); }
|
||||||
|
|
||||||
void kill_thread(Thread_capability thread) {
|
void kill_thread(Thread_capability thread) {
|
||||||
call<Rpc_kill_thread>(thread); }
|
call<Rpc_kill_thread>(thread); }
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
#include <thread/capability.h>
|
#include <thread/capability.h>
|
||||||
#include <pager/capability.h>
|
#include <pager/capability.h>
|
||||||
#include <session/session.h>
|
#include <session/session.h>
|
||||||
|
#include <ram_session/ram_session.h>
|
||||||
|
|
||||||
namespace Genode {
|
namespace Genode {
|
||||||
|
|
||||||
@ -72,8 +73,7 @@ namespace Genode {
|
|||||||
/**
|
/**
|
||||||
* Get dataspace of the UTCB that is used by the specified thread
|
* Get dataspace of the UTCB that is used by the specified thread
|
||||||
*/
|
*/
|
||||||
virtual Ram_dataspace_capability
|
virtual Ram_dataspace_capability utcb(Thread_capability thread) = 0;
|
||||||
utcb(Thread_capability thread) = 0;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Kill an existing thread
|
* Kill an existing thread
|
||||||
|
@ -63,10 +63,10 @@ Thread_capability Cpu_session_component::thread_cap(unsigned long lwpid)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Thread_capability Cpu_session_component::create_thread(Cpu_session::Name const &name)
|
Thread_capability Cpu_session_component::create_thread(Cpu_session::Name const &name, addr_t utcb)
|
||||||
{
|
{
|
||||||
Thread_capability thread_cap =
|
Thread_capability thread_cap =
|
||||||
_parent_cpu_session.create_thread(name.string());
|
_parent_cpu_session.create_thread(name.string(), utcb);
|
||||||
|
|
||||||
if (thread_cap.valid()) {
|
if (thread_cap.valid()) {
|
||||||
Thread_info *thread_info = new (env()->heap()) Thread_info(thread_cap, new_lwpid++);
|
Thread_info *thread_info = new (env()->heap()) Thread_info(thread_cap, new_lwpid++);
|
||||||
@ -77,6 +77,12 @@ Thread_capability Cpu_session_component::create_thread(Cpu_session::Name const &
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Ram_dataspace_capability Cpu_session_component::utcb(Thread_capability thread)
|
||||||
|
{
|
||||||
|
return _parent_cpu_session.utcb(thread);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Cpu_session_component::kill_thread(Thread_capability thread_cap)
|
void Cpu_session_component::kill_thread(Thread_capability thread_cap)
|
||||||
{
|
{
|
||||||
Thread_info *thread_info = _thread_info(thread_cap);
|
Thread_info *thread_info = _thread_info(thread_cap);
|
||||||
|
@ -54,7 +54,8 @@ class Cpu_session_component : public Rpc_object<Cpu_session>
|
|||||||
** CPU session interface **
|
** CPU session interface **
|
||||||
***************************/
|
***************************/
|
||||||
|
|
||||||
Thread_capability create_thread(Name const &);
|
Thread_capability create_thread(Name const &, addr_t);
|
||||||
|
Ram_dataspace_capability utcb(Thread_capability thread);
|
||||||
void kill_thread(Thread_capability);
|
void kill_thread(Thread_capability);
|
||||||
Thread_capability first();
|
Thread_capability first();
|
||||||
Thread_capability next(Thread_capability);
|
Thread_capability next(Thread_capability);
|
||||||
|
@ -70,7 +70,7 @@ namespace Noux {
|
|||||||
** Cpu_session interface **
|
** Cpu_session interface **
|
||||||
***************************/
|
***************************/
|
||||||
|
|
||||||
Thread_capability create_thread(Name const &name)
|
Thread_capability create_thread(Name const &name, addr_t utcb)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Prevent any attempt to create more than the main
|
* Prevent any attempt to create more than the main
|
||||||
@ -81,12 +81,15 @@ namespace Noux {
|
|||||||
while (1);
|
while (1);
|
||||||
return Thread_capability();
|
return Thread_capability();
|
||||||
}
|
}
|
||||||
_main_thread = _cpu.create_thread(name);
|
_main_thread = _cpu.create_thread(name, utcb);
|
||||||
|
|
||||||
PINF("created main thread");
|
PINF("created main thread");
|
||||||
return _main_thread;
|
return _main_thread;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ram_dataspace_capability utcb(Thread_capability thread) {
|
||||||
|
return _cpu.utcb(thread); }
|
||||||
|
|
||||||
void kill_thread(Thread_capability thread) {
|
void kill_thread(Thread_capability thread) {
|
||||||
_cpu.kill_thread(thread); }
|
_cpu.kill_thread(thread); }
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user