/*
* \brief Signal-delivery mechanism
* \author Norman Feske
* \date 2009-08-05
*/
/*
* Copyright (C) 2009-2013 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU General Public License version 2.
*/
#ifndef _CORE__INCLUDE__SIGNAL_SOURCE_COMPONENT_H_
#define _CORE__INCLUDE__SIGNAL_SOURCE_COMPONENT_H_
/* Genode includes */
#include
/* core-local includes */
#include
#include
#include
namespace Genode {
class Signal_context_component;
class Signal_source_component;
typedef Object_pool Signal_context_pool;
typedef Object_pool Signal_source_pool;
}
struct Genode::Signal_context_component : Kernel_object,
Signal_context_pool::Entry
{
inline Signal_context_component(Signal_source_component &s,
unsigned long const imprint);
Signal_source_component *source() { ASSERT_NEVER_CALLED; }
};
struct Genode::Signal_source_component : Kernel_object,
Signal_source_pool::Entry
{
Signal_source_component()
:
Kernel_object(true),
Signal_source_pool::Entry(Kernel_object::_cap)
{ }
void submit(Signal_context_component *, unsigned long) { ASSERT_NEVER_CALLED; }
};
Genode::Signal_context_component::Signal_context_component(Signal_source_component &s,
unsigned long const imprint)
:
Kernel_object(true, s.kernel_object(), imprint),
Signal_context_pool::Entry(Kernel_object::_cap)
{ }
#endif /* _CORE__INCLUDE__SIGNAL_SOURCE_COMPONENT_H_ */