mirror of
https://github.com/genodelabs/genode.git
synced 2025-03-22 12:06:00 +00:00
parent
3b2590b65a
commit
77f55232fd
@ -43,30 +43,29 @@ namespace Kernel
|
||||
START_THREAD = 2,
|
||||
PAUSE_THREAD = 3,
|
||||
RESUME_THREAD = 4,
|
||||
GET_THREAD = 5,
|
||||
CURRENT_THREAD_ID = 6,
|
||||
YIELD_THREAD = 7,
|
||||
ACCESS_THREAD_REGS = 8,
|
||||
ROUTE_THREAD_EVENT = 9,
|
||||
UPDATE_PD = 10,
|
||||
UPDATE_REGION = 11,
|
||||
NEW_PD = 12,
|
||||
KILL_PD = 13,
|
||||
REQUEST_AND_WAIT = 14,
|
||||
REPLY = 15,
|
||||
WAIT_FOR_REQUEST = 16,
|
||||
NEW_SIGNAL_RECEIVER = 17,
|
||||
NEW_SIGNAL_CONTEXT = 18,
|
||||
KILL_SIGNAL_CONTEXT = 19,
|
||||
KILL_SIGNAL_RECEIVER = 20,
|
||||
SUBMIT_SIGNAL = 21,
|
||||
AWAIT_SIGNAL = 22,
|
||||
SIGNAL_PENDING = 23,
|
||||
ACK_SIGNAL = 24,
|
||||
NEW_VM = 25,
|
||||
RUN_VM = 26,
|
||||
PAUSE_VM = 27,
|
||||
PRINT_CHAR = 28,
|
||||
CURRENT_THREAD_ID = 5,
|
||||
YIELD_THREAD = 6,
|
||||
ACCESS_THREAD_REGS = 7,
|
||||
ROUTE_THREAD_EVENT = 8,
|
||||
UPDATE_PD = 9,
|
||||
UPDATE_REGION = 10,
|
||||
NEW_PD = 11,
|
||||
KILL_PD = 12,
|
||||
REQUEST_AND_WAIT = 13,
|
||||
REPLY = 14,
|
||||
WAIT_FOR_REQUEST = 15,
|
||||
NEW_SIGNAL_RECEIVER = 16,
|
||||
NEW_SIGNAL_CONTEXT = 17,
|
||||
KILL_SIGNAL_CONTEXT = 18,
|
||||
KILL_SIGNAL_RECEIVER = 19,
|
||||
SUBMIT_SIGNAL = 20,
|
||||
AWAIT_SIGNAL = 21,
|
||||
SIGNAL_PENDING = 22,
|
||||
ACK_SIGNAL = 23,
|
||||
NEW_VM = 24,
|
||||
RUN_VM = 25,
|
||||
PAUSE_VM = 26,
|
||||
PRINT_CHAR = 27,
|
||||
};
|
||||
};
|
||||
|
||||
@ -309,22 +308,6 @@ namespace Kernel
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get platform thread by the kernel name of a thread
|
||||
*
|
||||
* \param id kernel name of the thread or 0 if the caller targets itself
|
||||
*
|
||||
* \retval 0 thread doesn't exist or has no platform thread
|
||||
* \retval >0 core local address of platform thread
|
||||
*
|
||||
* Restricted to core threads.
|
||||
*/
|
||||
inline Platform_thread * get_thread(unsigned const id)
|
||||
{
|
||||
return (Platform_thread *)call(Call_id::GET_THREAD, id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set or unset the handler of an event a kernel thread-object triggers
|
||||
*
|
||||
|
@ -471,28 +471,6 @@ void Thread::_call_yield_thread()
|
||||
void Thread::_call_current_thread_id() { user_arg_0((Call_ret)id()); }
|
||||
|
||||
|
||||
void Thread::_call_get_thread()
|
||||
{
|
||||
/* check permissions */
|
||||
if (!_core()) {
|
||||
PERR("not entitled to read address of platform thread");
|
||||
user_arg_0(0);
|
||||
return;
|
||||
}
|
||||
/* lookup thread */
|
||||
unsigned const id = user_arg_1();
|
||||
Thread * t;
|
||||
if (id) {
|
||||
t = Thread::pool()->object(id);
|
||||
if (!t) {
|
||||
PERR("unknown thread");
|
||||
user_arg_0(0);
|
||||
}
|
||||
} else { t = this; }
|
||||
user_arg_0((Call_ret)t->platform_thread());
|
||||
}
|
||||
|
||||
|
||||
void Thread::_call_wait_for_request()
|
||||
{
|
||||
void * buf_base;
|
||||
@ -911,7 +889,6 @@ void Thread::_call()
|
||||
case Call_id::START_THREAD: _call_start_thread(); return;
|
||||
case Call_id::PAUSE_THREAD: _call_pause_thread(); return;
|
||||
case Call_id::RESUME_THREAD: _call_resume_thread(); return;
|
||||
case Call_id::GET_THREAD: _call_get_thread(); return;
|
||||
case Call_id::CURRENT_THREAD_ID: _call_current_thread_id(); return;
|
||||
case Call_id::YIELD_THREAD: _call_yield_thread(); return;
|
||||
case Call_id::REQUEST_AND_WAIT: _call_request_and_wait(); return;
|
||||
|
@ -197,7 +197,6 @@ class Kernel::Thread
|
||||
void _call_resume_thread();
|
||||
void _call_yield_thread();
|
||||
void _call_current_thread_id();
|
||||
void _call_get_thread();
|
||||
void _call_wait_for_request();
|
||||
void _call_request_and_wait();
|
||||
void _call_reply();
|
||||
|
Loading…
x
Reference in New Issue
Block a user