diff --git a/repos/base-foc/src/core/include/platform_pd.h b/repos/base-foc/src/core/include/platform_pd.h index 67754eb082..e15496c4fc 100644 --- a/repos/base-foc/src/core/include/platform_pd.h +++ b/repos/base-foc/src/core/include/platform_pd.h @@ -31,6 +31,7 @@ /* base-internal includes */ #include +#include /* Fiasco.OC includes */ namespace Fiasco { @@ -57,7 +58,7 @@ namespace Genode { addr_t utcb_area_start() { - return stack_area_virtual_base() + + return NON_CORE_STACK_AREA_ADDR + THREAD_MAX*stack_virtual_size(); } diff --git a/repos/base/src/include/base/internal/non_core_stack_area_addr.h b/repos/base/src/include/base/internal/non_core_stack_area_addr.h new file mode 100644 index 0000000000..1cd52f6a3e --- /dev/null +++ b/repos/base/src/include/base/internal/non_core_stack_area_addr.h @@ -0,0 +1,23 @@ +/* + * \brief Definition of the stack area outside of core + * \author Norman Feske + * \date 2019-01-09 + */ + +/* + * Copyright (C) 2019 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. + */ + +#ifndef _INCLUDE__BASE__INTERNAL__NON_CORE_STACK_AREA_ADDR_H_ +#define _INCLUDE__BASE__INTERNAL__NON_CORE_STACK_AREA_ADDR_H_ + +namespace Genode +{ + static constexpr addr_t NON_CORE_STACK_AREA_ADDR = 0x40000000UL; +} + +#endif /* _INCLUDE__BASE__INTERNAL__NON_CORE_STACK_AREA_ADDR_H_ */ + diff --git a/repos/base/src/lib/base/stack_area_addr.cc b/repos/base/src/lib/base/stack_area_addr.cc index 11f7333e71..f919db92fb 100644 --- a/repos/base/src/lib/base/stack_area_addr.cc +++ b/repos/base/src/lib/base/stack_area_addr.cc @@ -13,5 +13,6 @@ /* base-internal includes */ #include +#include -Genode::addr_t Genode::stack_area_virtual_base() { return 0x40000000UL; } +Genode::addr_t Genode::stack_area_virtual_base() { return NON_CORE_STACK_AREA_ADDR; }