From b6641eaa250559504d1c6cd1e1f5c9213b6cea99 Mon Sep 17 00:00:00 2001 From: Martin Stein Date: Fri, 16 Jul 2021 16:35:54 +0200 Subject: [PATCH] base-hw: Core PD as Main member Let the Core protection-domain object be a member of the one Kernel::Main object instead of having it as global static variable. Ref #4217 --- repos/base-hw/lib/mk/core-hw.inc | 1 - repos/base-hw/src/core/kernel/cpu.cc | 18 ++++--- repos/base-hw/src/core/kernel/cpu.h | 9 ++-- repos/base-hw/src/core/kernel/init.cc | 30 ----------- repos/base-hw/src/core/kernel/ipc_node.cc | 1 - repos/base-hw/src/core/kernel/irq.cc | 1 - repos/base-hw/src/core/kernel/kernel.h | 25 ---------- repos/base-hw/src/core/kernel/main.cc | 50 ++++++++++++++++++- repos/base-hw/src/core/kernel/object.cc | 1 - repos/base-hw/src/core/kernel/object.h | 41 +++++++++++++-- repos/base-hw/src/core/kernel/pd.h | 8 --- repos/base-hw/src/core/kernel/thread.cc | 20 +++++--- repos/base-hw/src/core/kernel/thread.h | 12 +++-- repos/base-hw/src/core/kernel/vm.h | 1 - repos/base-hw/src/core/platform.cc | 17 ------- repos/base-hw/src/core/platform_pd.h | 8 +-- repos/base-hw/src/core/platform_thread.cc | 4 +- repos/base-hw/src/core/platform_thread.h | 2 + repos/base-hw/src/core/spec/arm/cpu_support.h | 1 - .../base-hw/src/core/spec/arm/kernel/panic.cc | 2 +- .../src/core/spec/arm/kernel/thread.cc | 3 +- .../src/core/spec/arm_v8/kernel/thread.cc | 1 - .../src/core/spec/x86_64/kernel/cpu.cc | 1 - repos/base-hw/src/core/thread_start.cc | 1 - 24 files changed, 132 insertions(+), 126 deletions(-) delete mode 100644 repos/base-hw/src/core/kernel/init.cc delete mode 100644 repos/base-hw/src/core/kernel/kernel.h diff --git a/repos/base-hw/lib/mk/core-hw.inc b/repos/base-hw/lib/mk/core-hw.inc index 9991c2c9be..0620bda505 100644 --- a/repos/base-hw/lib/mk/core-hw.inc +++ b/repos/base-hw/lib/mk/core-hw.inc @@ -51,7 +51,6 @@ SRC_CC += pager.cc SRC_CC += _main.cc SRC_CC += kernel/cpu.cc SRC_CC += kernel/cpu_scheduler.cc -SRC_CC += kernel/init.cc SRC_CC += kernel/ipc_node.cc SRC_CC += kernel/irq.cc SRC_CC += kernel/main.cc diff --git a/repos/base-hw/src/core/kernel/cpu.cc b/repos/base-hw/src/core/kernel/cpu.cc index b87d98e9e8..cfb4c7b67d 100644 --- a/repos/base-hw/src/core/kernel/cpu.cc +++ b/repos/base-hw/src/core/kernel/cpu.cc @@ -14,7 +14,6 @@ /* core includes */ #include -#include #include #include #include @@ -106,14 +105,15 @@ extern "C" void idle_thread_main(void); Cpu::Idle_thread::Idle_thread(Irq::Pool &user_irq_pool, Cpu_pool &cpu_pool, - Cpu &cpu) + Cpu &cpu, + Pd &core_pd) : - Thread { user_irq_pool, cpu_pool, "idle" } + Thread { user_irq_pool, cpu_pool, core_pd, "idle" } { regs->ip = (addr_t)&idle_thread_main; affinity(cpu); - Thread::_pd = &core_pd(); + Thread::_pd = &core_pd; } @@ -175,12 +175,13 @@ addr_t Cpu::stack_start() Cpu::Cpu(unsigned const id, Irq::Pool &user_irq_pool, - Cpu_pool &cpu_pool) + Cpu_pool &cpu_pool, + Pd &core_pd) : _id { id }, _timer { *this }, _scheduler { _idle, _quota(), _fill() }, - _idle { user_irq_pool, cpu_pool, *this }, + _idle { user_irq_pool, cpu_pool, *this, core_pd }, _ipi_irq { *this }, _global_work_list { cpu_pool.work_list() } { @@ -192,10 +193,11 @@ Cpu::Cpu(unsigned const id, ** Cpu_pool ** **************/ -void Cpu_pool::initialize_executing_cpu(Irq::Pool &user_irq_pool) +void Cpu_pool::initialize_executing_cpu(Irq::Pool &user_irq_pool, + Pd &core_pd) { unsigned id = Cpu::executing_id(); - _cpus[id].construct(id, user_irq_pool, *this); + _cpus[id].construct(id, user_irq_pool, *this, core_pd); } diff --git a/repos/base-hw/src/core/kernel/cpu.h b/repos/base-hw/src/core/kernel/cpu.h index 468ee47102..2caa472ead 100644 --- a/repos/base-hw/src/core/kernel/cpu.h +++ b/repos/base-hw/src/core/kernel/cpu.h @@ -104,7 +104,8 @@ class Kernel::Cpu : public Genode::Cpu, private Irq::Pool, private Timeout */ Idle_thread(Irq::Pool &user_irq_pool, Cpu_pool &cpu_pool, - Cpu &cpu); + Cpu &cpu, + Pd &core_pd); }; @@ -131,7 +132,8 @@ class Kernel::Cpu : public Genode::Cpu, private Irq::Pool, private Timeout */ Cpu(unsigned const id, Irq::Pool &user_irq_pool, - Cpu_pool &cpu_pool); + Cpu_pool &cpu_pool, + Pd &core_pd); static inline unsigned primary_id() { return 0; } @@ -202,7 +204,8 @@ class Kernel::Cpu_pool Cpu_pool(unsigned nr_of_cpus); - void initialize_executing_cpu(Irq::Pool &user_irq_pool); + void initialize_executing_cpu(Irq::Pool &user_irq_pool, + Pd &core_pd); /** * Return object of CPU 'id' diff --git a/repos/base-hw/src/core/kernel/init.cc b/repos/base-hw/src/core/kernel/init.cc deleted file mode 100644 index 0ffea4e574..0000000000 --- a/repos/base-hw/src/core/kernel/init.cc +++ /dev/null @@ -1,30 +0,0 @@ -/* - * \brief Common kernel initialization - * \author Martin Stein - * \author Stefan Kalkowski - * \date 2015-12-20 - */ - -/* - * Copyright (C) 2015-2017 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. - */ - -/* core includes */ -#include -#include - -/* base includes */ -#include - -using namespace Kernel; - - -static_assert(sizeof(Genode::sizet_arithm_t) >= 2 * sizeof(size_t), - "Bad result type for size_t arithmetics."); - - -Pd &Kernel::core_pd() { - return unmanaged_singleton()->kernel_pd(); } diff --git a/repos/base-hw/src/core/kernel/ipc_node.cc b/repos/base-hw/src/core/kernel/ipc_node.cc index 29d06ce0d5..ffa2e3abdf 100644 --- a/repos/base-hw/src/core/kernel/ipc_node.cc +++ b/repos/base-hw/src/core/kernel/ipc_node.cc @@ -20,7 +20,6 @@ /* core includes */ #include -#include #include using namespace Kernel; diff --git a/repos/base-hw/src/core/kernel/irq.cc b/repos/base-hw/src/core/kernel/irq.cc index c1147a0f52..b2597c36c7 100644 --- a/repos/base-hw/src/core/kernel/irq.cc +++ b/repos/base-hw/src/core/kernel/irq.cc @@ -12,7 +12,6 @@ */ /* core includes */ -#include #include #include diff --git a/repos/base-hw/src/core/kernel/kernel.h b/repos/base-hw/src/core/kernel/kernel.h deleted file mode 100644 index 92d6f79f15..0000000000 --- a/repos/base-hw/src/core/kernel/kernel.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * \brief Singlethreaded minimalistic kernel - * \author Martin Stein - * \author Stefan Kalkowski - * \date 2013-09-30 - */ - -/* - * Copyright (C) 2013-2017 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 _CORE__KERNEL__KERNEL_H_ -#define _CORE__KERNEL__KERNEL_H_ - -namespace Kernel { - - class Pd; - - Pd &core_pd(); -} - -#endif /* _CORE__KERNEL__KERNEL_H_ */ diff --git a/repos/base-hw/src/core/kernel/main.cc b/repos/base-hw/src/core/kernel/main.cc index f1f6f8fc25..e18d1e5aff 100644 --- a/repos/base-hw/src/core/kernel/main.cc +++ b/repos/base-hw/src/core/kernel/main.cc @@ -15,10 +15,15 @@ /* base includes */ #include +/* base Core includes */ +#include + /* base-hw Core includes */ #include #include #include +#include +#include /* base-hw-internal includes */ #include @@ -43,11 +48,16 @@ class Kernel::Main Lock _data_lock { }; Cpu_pool _cpu_pool; Irq::Pool _user_irq_pool { }; + Genode::Core_platform_pd _core_platform_pd { }; Genode::Constructible _core_main_thread { }; void _handle_kernel_entry(); Main(unsigned nr_of_cpus); + + public: + + static Genode::Platform_pd &core_platform_pd(); }; @@ -83,6 +93,9 @@ void Kernel::main_handle_kernel_entry() void Kernel::main_initialize_and_handle_kernel_entry() { + static_assert(sizeof(Genode::sizet_arithm_t) >= 2 * sizeof(size_t), + "Bad result type for size_t arithmetics."); + using Boot_info = Hw::Boot_info; static volatile bool instance_initialized { false }; @@ -121,7 +134,8 @@ void Kernel::main_initialize_and_handle_kernel_entry() Lock::Guard guard(Main::_instance->_data_lock); instance_initialized = true; Main::_instance->_cpu_pool.initialize_executing_cpu( - Main::_instance->_user_irq_pool); + Main::_instance->_user_irq_pool, + Main::_instance->_core_platform_pd.kernel_pd()); nr_of_initialized_cpus++; }; @@ -148,7 +162,8 @@ void Kernel::main_initialize_and_handle_kernel_entry() Main::_instance->_core_main_thread.construct( Main::_instance->_user_irq_pool, - Main::_instance->_cpu_pool); + Main::_instance->_cpu_pool, + Main::_instance->_core_platform_pd.kernel_pd()); boot_info.core_main_thread_utcb = (addr_t)Main::_instance->_core_main_thread->utcb(); @@ -170,7 +185,38 @@ void Kernel::main_initialize_and_handle_kernel_entry() } +Genode::Platform_pd &Kernel::Main::core_platform_pd() +{ + return _instance->_core_platform_pd; +} + + Kernel::time_t Kernel::main_read_idle_thread_execution_time(unsigned cpu_idx) { return Main::_instance->_cpu_pool.cpu(cpu_idx).idle_thread().execution_time(); } + + +Genode::Platform_pd & +Genode::Platform_thread::_kernel_main_get_core_platform_pd() +{ + return Kernel::Main::core_platform_pd(); +} + + +bool Genode::map_local(addr_t from_phys, addr_t to_virt, size_t num_pages, + Page_flags flags) +{ + return + Kernel::Main::core_platform_pd().insert_translation( + to_virt, from_phys, num_pages * get_page_size(), flags); +} + + +bool Genode::unmap_local(addr_t virt_addr, size_t num_pages) +{ + Kernel::Main::core_platform_pd().flush( + virt_addr, num_pages * get_page_size()); + + return true; +} diff --git a/repos/base-hw/src/core/kernel/object.cc b/repos/base-hw/src/core/kernel/object.cc index 4f5da18b88..b1e278260f 100644 --- a/repos/base-hw/src/core/kernel/object.cc +++ b/repos/base-hw/src/core/kernel/object.cc @@ -1,6 +1,5 @@ #include #include -#include #include diff --git a/repos/base-hw/src/core/kernel/object.h b/repos/base-hw/src/core/kernel/object.h index 4f7b231558..e6407e63df 100644 --- a/repos/base-hw/src/core/kernel/object.h +++ b/repos/base-hw/src/core/kernel/object.h @@ -23,7 +23,6 @@ /* core includes */ #include #include -#include namespace Kernel { @@ -228,9 +227,24 @@ class Kernel::Core_object_identity : public Object_identity, { public: - Core_object_identity(T & object) - : Object_identity(object.kernel_object()), - Object_identity_reference(this, core_pd()) { } + /** + * Constructor used for objects other than the Core PD + */ + Core_object_identity(Pd &core_pd, + T &object) + : + Object_identity(object.kernel_object()), + Object_identity_reference(this, core_pd) + { } + + /** + * Constructor used for Core PD object + */ + Core_object_identity(T &core_pd) + : + Object_identity(core_pd.kernel_object()), + Object_identity_reference(this, core_pd) + { } capid_t core_capid() { return capid(); } @@ -248,9 +262,26 @@ class Kernel::Core_object : public T, Kernel::Core_object_identity { public: + /** + * Constructor used for objects other than the Core PD + */ + template + Core_object(Pd &core_pd, + ARGS &&... args) + : + T(args...), + Core_object_identity(core_pd, *static_cast(this)) + { } + + /** + * Constructor used for Core PD object + */ template Core_object(ARGS &&... args) - : T(args...), Core_object_identity(*static_cast(this)) { } + : + T(args...), + Core_object_identity(*static_cast(this)) + { } using Kernel::Core_object_identity::core_capid; using Kernel::Core_object_identity::capid; diff --git a/repos/base-hw/src/core/kernel/pd.h b/repos/base-hw/src/core/kernel/pd.h index 8755754fe2..6b287b275e 100644 --- a/repos/base-hw/src/core/kernel/pd.h +++ b/repos/base-hw/src/core/kernel/pd.h @@ -116,12 +116,4 @@ class Kernel::Pd bool core_pd() const { return _core_pd; } }; - -template<> -inline Kernel::Core_object_identity::Core_object_identity(Kernel::Pd & pd) -: - Object_identity(pd.kernel_object()), - Object_identity_reference(this, pd.core_pd() ? pd : core_pd()) -{ } - #endif /* _CORE__KERNEL__PD_H_ */ diff --git a/repos/base-hw/src/core/kernel/thread.cc b/repos/base-hw/src/core/kernel/thread.cc index 0da012948c..da0412ab1c 100644 --- a/repos/base-hw/src/core/kernel/thread.cc +++ b/repos/base-hw/src/core/kernel/thread.cc @@ -24,7 +24,6 @@ /* core includes */ #include #include -#include #include #include #include @@ -98,7 +97,7 @@ void Thread::ipc_copy_msg(Thread &sender) Reference *dst_oir = oir->find(pd()); /* if it is not found, and the target is not core, create a reference */ - if (!dst_oir && (&pd() != &core_pd())) { + if (!dst_oir && (&pd() != &_core_pd)) { dst_oir = oir->factory(_obj_id_ref_ptr[i], pd()); if (dst_oir) _obj_id_ref_ptr[i] = nullptr; } @@ -683,7 +682,7 @@ void Thread::_call_new_obj() using Thread_identity = Genode::Constructible>; Thread_identity & coi = *(Thread_identity*)user_arg_1(); - coi.construct(*thread); + coi.construct(_core_pd, *thread); user_arg_0(coi->core_capid()); } @@ -774,12 +773,13 @@ void Thread::_call() /* switch over kernel calls that are restricted to core */ switch (call_id) { case call_id_new_thread(): - _call_new(_user_irq_pool, _cpu_pool, (unsigned) user_arg_2(), + _call_new(_user_irq_pool, _cpu_pool, _core_pd, + (unsigned) user_arg_2(), (unsigned) _core_to_kernel_quota(user_arg_3()), (char const *) user_arg_4()); return; case call_id_new_core_thread(): - _call_new(_user_irq_pool, _cpu_pool, + _call_new(_user_irq_pool, _cpu_pool, _core_pd, (char const *) user_arg_2()); return; case call_id_thread_quota(): _call_thread_quota(); return; @@ -839,6 +839,7 @@ void Thread::_mmu_exception() Thread::Thread(Irq::Pool &user_irq_pool, Cpu_pool &cpu_pool, + Pd &core_pd, unsigned const priority, unsigned const quota, char const *const label, @@ -848,6 +849,7 @@ Thread::Thread(Irq::Pool &user_irq_pool, Cpu_job { priority, quota }, _user_irq_pool { user_irq_pool }, _cpu_pool { cpu_pool }, + _core_pd { core_pd }, _ipc_node { *this }, _state { AWAITS_START }, _label { label }, @@ -874,9 +876,11 @@ Genode::uint8_t __initial_stack_base[DEFAULT_STACK_SIZE]; ** Core_main_thread ** **********************/ -Core_main_thread::Core_main_thread(Irq::Pool &user_irq_pool, Cpu_pool &cpu_pool) +Core_main_thread::Core_main_thread(Irq::Pool &user_irq_pool, + Cpu_pool &cpu_pool, + Pd &core_pd) : - Core_object(user_irq_pool, cpu_pool, "core") + Core_object(core_pd, user_irq_pool, cpu_pool, core_pd, "core") { using namespace Genode; @@ -898,6 +902,6 @@ Core_main_thread::Core_main_thread(Irq::Pool &user_irq_pool, Cpu_pool &cpu_pool) affinity(_cpu_pool.primary_cpu()); _utcb = utcb; - Thread::_pd = &core_pd(); + Thread::_pd = &core_pd; _become_active(); } diff --git a/repos/base-hw/src/core/kernel/thread.h b/repos/base-hw/src/core/kernel/thread.h index fa1f49ad8c..495daa7272 100644 --- a/repos/base-hw/src/core/kernel/thread.h +++ b/repos/base-hw/src/core/kernel/thread.h @@ -133,6 +133,7 @@ class Kernel::Thread : private Kernel::Object, public Cpu_job, private Timeout Irq::Pool &_user_irq_pool; Cpu_pool &_cpu_pool; + Pd &_core_pd; void *_obj_id_ref_ptr[MAX_RCV_CAPS] { nullptr }; Ipc_node _ipc_node; capid_t _ipc_capid { cap_id_invalid() }; @@ -264,7 +265,7 @@ class Kernel::Thread : private Kernel::Object, public Cpu_job, private Timeout { Genode::Kernel_object & kobj = *(Genode::Kernel_object*)user_arg_1(); - kobj.construct(args...); + kobj.construct(_core_pd, args...); user_arg_0(kobj->core_capid()); } @@ -295,6 +296,7 @@ class Kernel::Thread : private Kernel::Object, public Cpu_job, private Timeout */ Thread(Irq::Pool &user_irq_pool, Cpu_pool &cpu_pool, + Pd &core_pd, unsigned const priority, unsigned const quota, char const *const label, @@ -307,9 +309,11 @@ class Kernel::Thread : private Kernel::Object, public Cpu_job, private Timeout */ Thread(Irq::Pool &user_irq_pool, Cpu_pool &cpu_pool, + Pd &core_pd, char const *const label) : - Thread(user_irq_pool, cpu_pool, Cpu_priority::min(), 0, label, true) + Thread(user_irq_pool, cpu_pool, core_pd, Cpu_priority::min(), 0, + label, true) { } ~Thread(); @@ -443,7 +447,9 @@ class Kernel::Core_main_thread : public Core_object { public: - Core_main_thread(Irq::Pool &user_irq_pool, Cpu_pool &cpu_pool); + Core_main_thread(Irq::Pool &user_irq_pool, + Cpu_pool &cpu_pool, + Pd &core_pd); }; #endif /* _CORE__KERNEL__THREAD_H_ */ diff --git a/repos/base-hw/src/core/kernel/vm.h b/repos/base-hw/src/core/kernel/vm.h index 99c54f8f69..ca202e0511 100644 --- a/repos/base-hw/src/core/kernel/vm.h +++ b/repos/base-hw/src/core/kernel/vm.h @@ -18,7 +18,6 @@ namespace Genode { class Vm_state; } /* core includes */ #include -#include #include #include diff --git a/repos/base-hw/src/core/platform.cc b/repos/base-hw/src/core/platform.cc index 3f8dc39a56..6fc763f5a3 100644 --- a/repos/base-hw/src/core/platform.cc +++ b/repos/base-hw/src/core/platform.cc @@ -271,23 +271,6 @@ Platform::Platform() ** Support for core memory management ** ****************************************/ -bool Genode::map_local(addr_t from_phys, addr_t to_virt, size_t num_pages, - Page_flags flags) -{ - Platform_pd &pd = Kernel::core_pd().platform_pd(); - return pd.insert_translation(to_virt, from_phys, - num_pages * get_page_size(), flags); -} - - -bool Genode::unmap_local(addr_t virt_addr, size_t num_pages) -{ - Platform_pd &pd = Kernel::core_pd().platform_pd(); - pd.flush(virt_addr, num_pages * get_page_size()); - return true; -} - - bool Mapped_mem_allocator::_map_local(addr_t virt_addr, addr_t phys_addr, unsigned size) { return ::map_local(phys_addr, virt_addr, size / get_page_size()); } diff --git a/repos/base-hw/src/core/platform_pd.h b/repos/base-hw/src/core/platform_pd.h index d15e869761..881342c2bf 100644 --- a/repos/base-hw/src/core/platform_pd.h +++ b/repos/base-hw/src/core/platform_pd.h @@ -88,7 +88,7 @@ class Hw::Address_space : public Genode::Address_space Kernel_object _kobj; /** - * Core-specific constructor + * Constructor used for the Core PD object * * \param tt reference to translation table * \param tt_alloc reference to translation table allocator @@ -101,7 +101,7 @@ class Hw::Address_space : public Genode::Address_space public: /** - * Constructor + * Constructor used for objects other than the Core PD * * \param pd reference to platform pd object */ @@ -182,7 +182,7 @@ class Genode::Platform_pd : public Hw::Address_space, protected: /** - * Constructor for core pd + * Constructor used for the Core PD object * * \param tt translation table address * \param tt_alloc translation table allocator @@ -193,7 +193,7 @@ class Genode::Platform_pd : public Hw::Address_space, public: /** - * Constructor for non-core pd + * Constructor used for objects other than the Core PD * * \param label name of protection domain */ diff --git a/repos/base-hw/src/core/platform_thread.cc b/repos/base-hw/src/core/platform_thread.cc index 4c844fa48b..1b2384715f 100644 --- a/repos/base-hw/src/core/platform_thread.cc +++ b/repos/base-hw/src/core/platform_thread.cc @@ -25,7 +25,7 @@ /* kernel includes */ #include -#include +#include using namespace Genode; @@ -62,7 +62,7 @@ void Platform_thread::quota(size_t const quota) Platform_thread::Platform_thread(Label const &label, Native_utcb &utcb) : _label(label), - _pd(&Kernel::core_pd().platform_pd()), + _pd(&_kernel_main_get_core_platform_pd()), _pager(nullptr), _utcb_core_addr(&utcb), _utcb_pd_addr(&utcb), diff --git a/repos/base-hw/src/core/platform_thread.h b/repos/base-hw/src/core/platform_thread.h index 75018fed14..e7e5b5e259 100644 --- a/repos/base-hw/src/core/platform_thread.h +++ b/repos/base-hw/src/core/platform_thread.h @@ -93,6 +93,8 @@ class Genode::Platform_thread : Noncopyable virt_prio); } + Platform_pd &_kernel_main_get_core_platform_pd(); + public: /** diff --git a/repos/base-hw/src/core/spec/arm/cpu_support.h b/repos/base-hw/src/core/spec/arm/cpu_support.h index 40ff67788b..b9b09bbee0 100644 --- a/repos/base-hw/src/core/spec/arm/cpu_support.h +++ b/repos/base-hw/src/core/spec/arm/cpu_support.h @@ -24,7 +24,6 @@ /* local includes */ #include -#include #include #include diff --git a/repos/base-hw/src/core/spec/arm/kernel/panic.cc b/repos/base-hw/src/core/spec/arm/kernel/panic.cc index f8fe047ec4..95da36f159 100644 --- a/repos/base-hw/src/core/spec/arm/kernel/panic.cc +++ b/repos/base-hw/src/core/spec/arm/kernel/panic.cc @@ -11,8 +11,8 @@ * under the terms of the GNU Affero General Public License version 3. */ +/* base-hw Core includes */ #include -#include void Kernel::panic(Genode::Cpu_state * state) { diff --git a/repos/base-hw/src/core/spec/arm/kernel/thread.cc b/repos/base-hw/src/core/spec/arm/kernel/thread.cc index 6dc5560dc9..efc67e510a 100644 --- a/repos/base-hw/src/core/spec/arm/kernel/thread.cc +++ b/repos/base-hw/src/core/spec/arm/kernel/thread.cc @@ -12,11 +12,12 @@ * under the terms of the GNU Affero General Public License version 3. */ +/* base includes */ #include +/* base-hw Core includes */ #include #include -#include #include #include diff --git a/repos/base-hw/src/core/spec/arm_v8/kernel/thread.cc b/repos/base-hw/src/core/spec/arm_v8/kernel/thread.cc index 9faf8f099c..e3bb8df148 100644 --- a/repos/base-hw/src/core/spec/arm_v8/kernel/thread.cc +++ b/repos/base-hw/src/core/spec/arm_v8/kernel/thread.cc @@ -14,7 +14,6 @@ #include #include -#include #include #include diff --git a/repos/base-hw/src/core/spec/x86_64/kernel/cpu.cc b/repos/base-hw/src/core/spec/x86_64/kernel/cpu.cc index 1aa3681990..7c1798df62 100644 --- a/repos/base-hw/src/core/spec/x86_64/kernel/cpu.cc +++ b/repos/base-hw/src/core/spec/x86_64/kernel/cpu.cc @@ -14,7 +14,6 @@ /* core includes */ #include -#include void Kernel::Cpu::_arch_init() diff --git a/repos/base-hw/src/core/thread_start.cc b/repos/base-hw/src/core/thread_start.cc index c057c44b7a..0246501d6c 100644 --- a/repos/base-hw/src/core/thread_start.cc +++ b/repos/base-hw/src/core/thread_start.cc @@ -23,7 +23,6 @@ /* core includes */ #include -#include #include #include #include