From 99ec536c5310b746c73a18cede89494fda2820d9 Mon Sep 17 00:00:00 2001 From: Martin Stein Date: Fri, 21 Feb 2014 17:57:59 +0100 Subject: [PATCH] thread: init thread cap for non-core main threads ref #989 --- base-hw/src/base/thread/thread_bootstrap.cc | 1 + base-okl4/src/base/thread/thread_bootstrap.cc | 2 ++ base-pistachio/src/base/thread/thread_bootstrap.cc | 4 +++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/base-hw/src/base/thread/thread_bootstrap.cc b/base-hw/src/base/thread/thread_bootstrap.cc index 2642874f4d..999cdb9375 100644 --- a/base-hw/src/base/thread/thread_bootstrap.cc +++ b/base-hw/src/base/thread/thread_bootstrap.cc @@ -91,4 +91,5 @@ void Thread_base::_init_platform_thread(Type type) } /* adjust initial object state in case of a main thread */ tid().thread_id = _main_thread_id; + _thread_cap = env()->parent()->main_thread_cap(); } diff --git a/base-okl4/src/base/thread/thread_bootstrap.cc b/base-okl4/src/base/thread/thread_bootstrap.cc index e0cdb88d1c..b9996f9366 100644 --- a/base-okl4/src/base/thread/thread_bootstrap.cc +++ b/base-okl4/src/base/thread/thread_bootstrap.cc @@ -14,6 +14,7 @@ /* Genode includes */ #include +#include /* OKL4 includes */ namespace Okl4 @@ -82,4 +83,5 @@ void Genode::Thread_base::_init_platform_thread(Type type) { if (type == NORMAL) { return; } _tid.l4id.raw = main_thread_tid.raw; + _thread_cap = env()->parent()->main_thread_cap(); } diff --git a/base-pistachio/src/base/thread/thread_bootstrap.cc b/base-pistachio/src/base/thread/thread_bootstrap.cc index f6941728f2..f7da3caaeb 100644 --- a/base-pistachio/src/base/thread/thread_bootstrap.cc +++ b/base-pistachio/src/base/thread/thread_bootstrap.cc @@ -13,6 +13,7 @@ /* Genode includes */ #include +#include /* Pistachio includes */ namespace Pistachio @@ -48,5 +49,6 @@ void Genode::Thread_base::_thread_bootstrap() void Genode::Thread_base::_init_platform_thread(Type type) { if (type == NORMAL) { return; } - _tid.l4id = main_thread_tid; + _tid.l4id = main_thread_tid; + _thread_cap = env()->parent()->main_thread_cap(); }