base: restructure signal-submit initialization
This patch allows core's 'Signal_transmitter' implementation to sidestep the 'Env::Pd' interface and thereby adhere to a stricter layering within core. The 'Signal_transmitter' now uses - on kernels that depend on it - a dedicated (and fairly freestanding) RPC proxy mechanism for signal deliver, instead of channeling signals through the 'Pd_session::submit' RPC function.
This commit is contained in:
committed by
Christian Helmuth
parent
71efb59873
commit
a1df4fee44
@@ -8,8 +8,8 @@ include $(BASE_DIR)/lib/mk/base-common.inc
|
||||
|
||||
LIBS += startup-nova
|
||||
|
||||
SRC_CC += signal_submit.cc
|
||||
SRC_CC += thread.cc thread_myself.cc
|
||||
SRC_CC += stack.cc
|
||||
SRC_CC += cap_map.cc
|
||||
SRC_CC += capability.cc
|
||||
SRC_CC += signal_transmitter.cc
|
||||
|
||||
@@ -3,3 +3,4 @@ include $(BASE_DIR)/lib/mk/base.inc
|
||||
LIBS += base-nova-common cxx timeout
|
||||
SRC_CC += thread_start.cc
|
||||
SRC_CC += cache.cc
|
||||
SRC_CC += signal.cc
|
||||
|
||||
@@ -39,7 +39,9 @@ SRC_CC += stack_area.cc \
|
||||
rom_session_component.cc \
|
||||
thread_start.cc \
|
||||
bios_data_area.cc \
|
||||
trace_session_component.cc
|
||||
trace_session_component.cc \
|
||||
signal_transmitter_noinit.cc \
|
||||
signal_receiver.cc
|
||||
|
||||
INC_DIR = $(REP_DIR)/src/core/include \
|
||||
$(REP_DIR)/src/include \
|
||||
@@ -58,6 +60,8 @@ vpath pd_session_component.cc $(GEN_CORE_DIR)
|
||||
vpath pd_upgrade_ram_quota.cc $(GEN_CORE_DIR)
|
||||
vpath region_map_component.cc $(GEN_CORE_DIR)
|
||||
vpath trace_session_component.cc $(GEN_CORE_DIR)
|
||||
vpath signal_transmitter_noinit.cc $(GEN_CORE_DIR)
|
||||
vpath signal_receiver.cc $(GEN_CORE_DIR)
|
||||
vpath io_port_session_component.cc $(GEN_CORE_DIR)/spec/x86
|
||||
vpath io_port_session_support.cc $(GEN_CORE_DIR)/spec/x86
|
||||
vpath io_mem_session_component.cc $(GEN_CORE_DIR)
|
||||
|
||||
@@ -11,18 +11,23 @@
|
||||
* under the terms of the GNU Affero General Public License version 3.
|
||||
*/
|
||||
|
||||
|
||||
/* Genode includes */
|
||||
#include <base/signal.h>
|
||||
#include <base/log.h>
|
||||
#include <base/trace/events.h>
|
||||
|
||||
/* base-internal includes */
|
||||
#include <base/internal/globals.h>
|
||||
|
||||
/* NOVA includes */
|
||||
#include <nova/syscalls.h>
|
||||
|
||||
using namespace Genode;
|
||||
|
||||
|
||||
void Genode::init_signal_transmitter(Env &) { }
|
||||
|
||||
|
||||
void Signal_transmitter::submit(unsigned cnt)
|
||||
{
|
||||
{
|
||||
Reference in New Issue
Block a user