hw: remove Ipc_node::_await_ipc

ref #1108
This commit is contained in:
Martin Stein 2014-03-27 12:20:55 +01:00 committed by Norman Feske
parent ebfd6a55b3
commit 8d1e40eb5b
3 changed files with 9 additions and 26 deletions

View File

@ -186,11 +186,6 @@ class Kernel::Ipc_node
*/
virtual void _received_ipc_request(size_t const s) = 0;
/**
* IPC node started waiting for message receipt
*/
virtual void _await_ipc() = 0;
/**
* IPC node returned from waiting due to message receipt
*
@ -256,7 +251,6 @@ class Kernel::Ipc_node
/* update state */
if (_state != PREPARE_REPLY) { _state = AWAIT_REPLY; }
else { _state = PREPARE_AND_AWAIT_REPLY; }
_await_ipc();
/* announce request */
dst->_announce_request(&_outbuf);
@ -267,8 +261,10 @@ class Kernel::Ipc_node
*
* \param inbuf_base base of the request buffer
* \param inbuf_size size of the request buffer
*
* \return wether a request could be received already
*/
void await_request(void * const inbuf_base,
bool await_request(void * const inbuf_base,
size_t const inbuf_size)
{
/* assertions */
@ -283,11 +279,11 @@ class Kernel::Ipc_node
if (!_request_queue.empty()) {
_receive_request(_request_queue.dequeue());
_received_ipc_request(_inbuf.size);
return;
return true;
}
/* no request announced, so wait */
_state = AWAIT_REQUEST;
_await_ipc();
return false;
}
/**

View File

@ -85,20 +85,6 @@ void Thread::_received_ipc_request(size_t const s)
}
void Thread::_await_ipc()
{
switch (_state) {
case SCHEDULED:
_unschedule(AWAITS_IPC);
return;
default:
PWRN("wrong thread state to await IPC");
_stop();
return;
}
}
void Thread::_await_ipc_succeeded(size_t const s)
{
switch (_state) {
@ -432,7 +418,8 @@ void Thread::_call_await_request_msg()
void * buf_base;
size_t buf_size;
_utcb_phys->message()->info_about_await_request(buf_base, buf_size);
Ipc_node::await_request(buf_base, buf_size);
if (Ipc_node::await_request(buf_base, buf_size)) { return; }
_unschedule(AWAITS_IPC);
}
@ -441,7 +428,7 @@ void Thread::_call_send_request_msg()
Thread * const dst = Thread::pool()->object(user_arg_1());
if (!dst) {
PWRN("unknown recipient");
_await_ipc();
_unschedule(AWAITS_IPC);
return;
}
void * msg_base;
@ -452,6 +439,7 @@ void Thread::_call_send_request_msg()
buf_base, buf_size);
Ipc_node::send_request_await_reply(dst, msg_base, msg_size,
buf_base, buf_size);
_unschedule(AWAITS_IPC);
}

View File

@ -281,7 +281,6 @@ class Kernel::Thread
**************/
void _received_ipc_request(size_t const s);
void _await_ipc();
void _await_ipc_succeeded(size_t const s);
void _await_ipc_failed();