genode/repos/base-hw/src/core/include/signal_source_component.h
Norman Feske b1910cdd54 Integrate SIGNAL session into PD session
This patch removes the SIGNAL service from core and moves its
functionality to the PD session. Furthermore, it unifies the PD service
implementation and terminology across the various base platforms.

Issue #1841
2016-03-07 12:34:44 +01:00

66 lines
1.8 KiB
C++

/*
* \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 <base/object_pool.h>
/* core-local includes */
#include <object.h>
#include <kernel/signal_receiver.h>
#include <assertion.h>
namespace Genode {
class Signal_context_component;
class Signal_source_component;
typedef Object_pool<Signal_context_component> Signal_context_pool;
typedef Object_pool<Signal_source_component> Signal_source_pool;
}
struct Genode::Signal_context_component : Kernel_object<Kernel::Signal_context>,
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<Kernel::Signal_receiver>,
Signal_source_pool::Entry
{
Signal_source_component()
:
Kernel_object<Kernel::Signal_receiver>(true),
Signal_source_pool::Entry(Kernel_object<Kernel::Signal_receiver>::_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<Kernel::Signal_context>(true, s.kernel_object(), imprint),
Signal_context_pool::Entry(Kernel_object<Kernel::Signal_context>::_cap)
{ }
#endif /* _CORE__INCLUDE__SIGNAL_SOURCE_COMPONENT_H_ */