base: classify signals as I/O and application level

Fixes #2363
This commit is contained in:
Christian Helmuth
2017-04-03 10:45:51 +02:00
parent e33d65aea0
commit 1d99e7ede9
22 changed files with 287 additions and 131 deletions

View File

@ -305,7 +305,7 @@ void *memmove(void *d, const void *s, size_t n)
** linux/sched.h **
*******************/
struct Timeout : Genode::Signal_handler<Timeout>
struct Timeout : Genode::Io_signal_handler<Timeout>
{
Genode::Entrypoint &ep;
Timer::Connection timer;
@ -321,7 +321,7 @@ struct Timeout : Genode::Signal_handler<Timeout>
Timeout(Genode::Env &env, Genode::Entrypoint &ep, void (*ticker)())
:
Signal_handler<Timeout>(ep, *this, &Timeout::handle),
Io_signal_handler<Timeout>(ep, *this, &Timeout::handle),
ep(ep), timer(env), tick(ticker)
{
timer.sigh(*this);
@ -334,7 +334,7 @@ struct Timeout : Genode::Signal_handler<Timeout>
void wait()
{
ep.wait_and_dispatch_one_signal();
ep.wait_and_dispatch_one_io_signal();
}
};

View File

@ -35,10 +35,10 @@ class Nic_client
Nic::Packet_allocator _tx_block_alloc;
Nic::Connection _nic;
Genode::Signal_handler<Nic_client> _sink_ack;
Genode::Signal_handler<Nic_client> _sink_submit;
Genode::Signal_handler<Nic_client> _source_ack;
Genode::Signal_handler<Nic_client> _link_state_change;
Genode::Io_signal_handler<Nic_client> _sink_ack;
Genode::Io_signal_handler<Nic_client> _sink_submit;
Genode::Io_signal_handler<Nic_client> _source_ack;
Genode::Io_signal_handler<Nic_client> _link_state_change;
void (*_tick)();

View File

@ -86,7 +86,7 @@ class Lx::Timer
::Timer::Connection _timer_conn;
Lx_kit::List<Context> _list;
Genode::Signal_handler<Lx::Timer> _handler;
Genode::Io_signal_handler<Lx::Timer> _handler;
Genode::Tslab<Context, 32 * sizeof(Context)> _timer_alloc;
void (*_tick)();

View File

@ -533,8 +533,8 @@ class Usb::Session_component : public Session_rpc_object,
long _dev = 0;
Device *_device = nullptr;
Signal_context_capability _sigh_state_change;
Signal_handler<Session_component> _packet_avail;
Signal_handler<Session_component> _ready_ack;
Io_signal_handler<Session_component> _packet_avail;
Io_signal_handler<Session_component> _ready_ack;
Worker _worker;
Ram_dataspace_capability _tx_ds;