/*
* \brief Generic implementation parts of the signaling framework
* \author Norman Feske
* \date 2017-05-10
*/
/*
* Copyright (C) 2017 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU Affero General Public License version 3.
*/
/* Genode includes */
#include
#include
#include
/* core-local includes */
#include
#include
#include
/* base-internal includes */
#include
using namespace Genode;
static Constructible delivery_proxy;
/*
* Entrypoint that serves the 'Signal_source' RPC objects
*/
static Rpc_entrypoint *_ep;
void Genode::init_core_signal_transmitter(Rpc_entrypoint &ep) { _ep = &ep; }
void Genode::init_signal_transmitter(Env &)
{
if (!delivery_proxy.constructed() && _ep)
delivery_proxy.construct(*_ep);
}
void Signal_transmitter::submit(unsigned cnt)
{
{
Trace::Signal_submit trace_event(cnt);
}
delivery_proxy->submit(_context, cnt);
}
Rpc_entrypoint &Core_env::signal_ep()
{
static Rpc_entrypoint ep(nullptr, ENTRYPOINT_STACK_SIZE,
"signal_entrypoint");
return ep;
}