From ad059362d2de9997b6bf1560cc76b937f3663e99 Mon Sep 17 00:00:00 2001 From: Martin Stein Date: Mon, 27 Sep 2021 15:55:55 +0200 Subject: [PATCH] base-hw: reduce hardware-specific include paths For base-hw Core, we used to add quite some hardware-specific include paths to 'INC_DIR'. Generic code used to include, for instance, '' and '' using these implicit path resolutions. This commit removes hardware-specific include paths except for 1) the '' include paths (e.g., 'src/core/board/pbxa9'), 2) most architecture-specific include paths (e.g., 'src/core/spec/arm_v7'), 3) include paths that reflect usage of virtualization or ARM Trustzone (e.g., 'src/core/spec/arm/virtualization'). The first category is kept because, in contrast to the former "spec"-mechanism, the board variable used for this type of resolution is not deprecated and the board headers are meant to be the front end of hardware-specific headers towards generic code which is why they must be available generically via ''. The second category is kept because it was suggested by other maintainers that simple arch-dependent headers (like for the declaration of a CPU state) should not imply the inclusion of the whole '' and because the architecture is given also without the former "spec"-mechanism through the type of the build directory. I think this is questionable but am fine with it. The third category is kept because the whole way of saying whether virtualization resp. ARM Trustzone is used is done in an out-dated manner and changing it now would blow up this commit a lot and exceed the time that I'm willing to spend. This category should be subject to a future issue. Ref #4217 --- .../base-hw/lib/mk/spec/arm_v7/core-hw-zynq.inc | 3 --- repos/base-hw/lib/mk/spec/arm_v8/core-hw.inc | 7 ++++++- .../base-hw/lib/mk/spec/cortex_a15/core-hw.inc | 3 --- repos/base-hw/lib/mk/spec/cortex_a8/core-hw.inc | 3 --- repos/base-hw/lib/mk/spec/cortex_a9/core-hw.inc | 3 --- repos/base-hw/src/core/board/imx53_qsb/board.h | 2 ++ .../src/core/board/imx6q_sabrelite/board.h | 2 ++ .../base-hw/src/core/board/imx7d_sabre/board.h | 2 ++ repos/base-hw/src/core/board/imx8q_evk/board.h | 2 ++ repos/base-hw/src/core/board/nit6_solox/board.h | 2 ++ repos/base-hw/src/core/board/pbxa9/board.h | 2 ++ repos/base-hw/src/core/board/pc/board.h | 2 ++ repos/base-hw/src/core/board/riscv_qemu/board.h | 2 ++ repos/base-hw/src/core/board/rpi/board.h | 2 ++ repos/base-hw/src/core/board/rpi3/board.h | 2 ++ repos/base-hw/src/core/board/usb_armory/board.h | 2 ++ repos/base-hw/src/core/board/virt_qemu/board.h | 2 ++ .../base-hw/src/core/board/virt_qemu_64/board.h | 3 ++- repos/base-hw/src/core/board/wand_quad/board.h | 2 ++ repos/base-hw/src/core/board/zynq_qemu/board.h | 2 ++ repos/base-hw/src/core/kernel/pd.h | 6 +++--- repos/base-hw/src/core/kernel/thread.h | 5 ++--- repos/base-hw/src/core/platform.cc | 17 ++++++++++------- repos/base-hw/src/core/platform.h | 9 +++++---- repos/base-hw/src/core/platform_pd.h | 7 ++++--- repos/base-hw/src/core/region_map_support.cc | 5 +---- repos/base-hw/src/core/spec/arm/bcm2837_pic.cc | 2 +- .../src/core/spec/arm/kernel/thread_caches.cc | 2 +- .../src/core/spec/arm/virtualization/board.h | 5 ++++- repos/base-hw/src/core/spec/arm_v8/cpu.cc | 1 - .../src/core/spec/cortex_a8/translation_table.h | 5 +++-- repos/base-hw/src/core/vm_session_component.h | 7 ++++--- 32 files changed, 74 insertions(+), 47 deletions(-) diff --git a/repos/base-hw/lib/mk/spec/arm_v7/core-hw-zynq.inc b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-zynq.inc index efd5c5bfde..ef324c3fd4 100644 --- a/repos/base-hw/lib/mk/spec/arm_v7/core-hw-zynq.inc +++ b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-zynq.inc @@ -4,9 +4,6 @@ # \date 2014-12-15 # -# add include paths -REP_INC_DIR += src/core/spec/zynq - # add C++ sources SRC_CC += platform_services.cc diff --git a/repos/base-hw/lib/mk/spec/arm_v8/core-hw.inc b/repos/base-hw/lib/mk/spec/arm_v8/core-hw.inc index a02afa4d21..ac3e5e4605 100644 --- a/repos/base-hw/lib/mk/spec/arm_v8/core-hw.inc +++ b/repos/base-hw/lib/mk/spec/arm_v8/core-hw.inc @@ -1,5 +1,10 @@ -REP_INC_DIR += src/core/spec/arm_v8 +# +# \brief Build config for Genodes core process +# \author Stefan Kalkowski +# \date 2019-05-21 +# +# add libraries LIBS += syscall-hw # add C++ sources diff --git a/repos/base-hw/lib/mk/spec/cortex_a15/core-hw.inc b/repos/base-hw/lib/mk/spec/cortex_a15/core-hw.inc index c1756f02a2..0970d6bc43 100644 --- a/repos/base-hw/lib/mk/spec/cortex_a15/core-hw.inc +++ b/repos/base-hw/lib/mk/spec/cortex_a15/core-hw.inc @@ -4,9 +4,6 @@ # \date 2014-09-02 # -# add include paths -REP_INC_DIR += src/core/spec/cortex_a15 - # add C++ sources SRC_CC += spec/cortex_a15/cpu.cc SRC_CC += kernel/cpu_mp.cc diff --git a/repos/base-hw/lib/mk/spec/cortex_a8/core-hw.inc b/repos/base-hw/lib/mk/spec/cortex_a8/core-hw.inc index 6a81df4c08..c603384853 100644 --- a/repos/base-hw/lib/mk/spec/cortex_a8/core-hw.inc +++ b/repos/base-hw/lib/mk/spec/cortex_a8/core-hw.inc @@ -4,9 +4,6 @@ # \date 2014-09-02 # -# add include paths -REP_INC_DIR += src/core/spec/cortex_a8 - # add C++ sources SRC_CC += kernel/cpu_up.cc SRC_CC += kernel/lock.cc diff --git a/repos/base-hw/lib/mk/spec/cortex_a9/core-hw.inc b/repos/base-hw/lib/mk/spec/cortex_a9/core-hw.inc index 6bcebca9a1..6939462bd2 100644 --- a/repos/base-hw/lib/mk/spec/cortex_a9/core-hw.inc +++ b/repos/base-hw/lib/mk/spec/cortex_a9/core-hw.inc @@ -4,9 +4,6 @@ # \date 2014-09-02 # -# add include paths -REP_INC_DIR += src/core/spec/cortex_a9 - # add C++ sources SRC_CC += spec/cortex_a9/board.cc SRC_CC += spec/cortex_a9/cpu.cc diff --git a/repos/base-hw/src/core/board/imx53_qsb/board.h b/repos/base-hw/src/core/board/imx53_qsb/board.h index 13f95010e3..a8bf3de8bd 100644 --- a/repos/base-hw/src/core/board/imx53_qsb/board.h +++ b/repos/base-hw/src/core/board/imx53_qsb/board.h @@ -23,6 +23,8 @@ #include #include #include +#include +#include namespace Board { using namespace Hw::Imx53_qsb_board; } diff --git a/repos/base-hw/src/core/board/imx6q_sabrelite/board.h b/repos/base-hw/src/core/board/imx6q_sabrelite/board.h index 3646a09479..ebef3f6d6a 100644 --- a/repos/base-hw/src/core/board/imx6q_sabrelite/board.h +++ b/repos/base-hw/src/core/board/imx6q_sabrelite/board.h @@ -21,6 +21,8 @@ /* base-hw Core includes */ #include #include +#include +#include namespace Board { diff --git a/repos/base-hw/src/core/board/imx7d_sabre/board.h b/repos/base-hw/src/core/board/imx7d_sabre/board.h index b09ac708ae..7b23c299fc 100644 --- a/repos/base-hw/src/core/board/imx7d_sabre/board.h +++ b/repos/base-hw/src/core/board/imx7d_sabre/board.h @@ -23,6 +23,8 @@ #include #include #include +#include +#include namespace Board { diff --git a/repos/base-hw/src/core/board/imx8q_evk/board.h b/repos/base-hw/src/core/board/imx8q_evk/board.h index 5454780433..b1a0db55e5 100644 --- a/repos/base-hw/src/core/board/imx8q_evk/board.h +++ b/repos/base-hw/src/core/board/imx8q_evk/board.h @@ -21,6 +21,8 @@ #include #include #include +#include +#include /* base-hw includes */ #include diff --git a/repos/base-hw/src/core/board/nit6_solox/board.h b/repos/base-hw/src/core/board/nit6_solox/board.h index 7a5d2ea120..881868eb97 100644 --- a/repos/base-hw/src/core/board/nit6_solox/board.h +++ b/repos/base-hw/src/core/board/nit6_solox/board.h @@ -21,6 +21,8 @@ /* base-hw Core includes */ #include #include +#include +#include namespace Board { diff --git a/repos/base-hw/src/core/board/pbxa9/board.h b/repos/base-hw/src/core/board/pbxa9/board.h index 7e6506cc7e..e6aa4fe7f5 100644 --- a/repos/base-hw/src/core/board/pbxa9/board.h +++ b/repos/base-hw/src/core/board/pbxa9/board.h @@ -21,6 +21,8 @@ /* base-hw Core includes */ #include #include +#include +#include namespace Board { diff --git a/repos/base-hw/src/core/board/pc/board.h b/repos/base-hw/src/core/board/pc/board.h index 389a519293..4e419bfaef 100644 --- a/repos/base-hw/src/core/board/pc/board.h +++ b/repos/base-hw/src/core/board/pc/board.h @@ -21,6 +21,8 @@ #include #include #include +#include +#include namespace Board { diff --git a/repos/base-hw/src/core/board/riscv_qemu/board.h b/repos/base-hw/src/core/board/riscv_qemu/board.h index 3dbf6155bb..b6ad816485 100644 --- a/repos/base-hw/src/core/board/riscv_qemu/board.h +++ b/repos/base-hw/src/core/board/riscv_qemu/board.h @@ -20,6 +20,8 @@ /* base-hw Core includes */ #include #include +#include +#include namespace Board { using namespace Hw::Riscv_board; } diff --git a/repos/base-hw/src/core/board/rpi/board.h b/repos/base-hw/src/core/board/rpi/board.h index 71eba74814..c721479d15 100644 --- a/repos/base-hw/src/core/board/rpi/board.h +++ b/repos/base-hw/src/core/board/rpi/board.h @@ -22,6 +22,8 @@ #include #include #include +#include +#include namespace Board { using namespace Hw::Rpi_board; }; diff --git a/repos/base-hw/src/core/board/rpi3/board.h b/repos/base-hw/src/core/board/rpi3/board.h index 270fe341d9..cae7074fe9 100644 --- a/repos/base-hw/src/core/board/rpi3/board.h +++ b/repos/base-hw/src/core/board/rpi3/board.h @@ -21,6 +21,8 @@ #include #include #include +#include +#include namespace Board { diff --git a/repos/base-hw/src/core/board/usb_armory/board.h b/repos/base-hw/src/core/board/usb_armory/board.h index 2de41f70df..fce5932099 100644 --- a/repos/base-hw/src/core/board/usb_armory/board.h +++ b/repos/base-hw/src/core/board/usb_armory/board.h @@ -23,6 +23,8 @@ #include #include #include +#include +#include namespace Board { using namespace Hw::Usb_armory_board; } diff --git a/repos/base-hw/src/core/board/virt_qemu/board.h b/repos/base-hw/src/core/board/virt_qemu/board.h index 359104ef5d..48373f680c 100644 --- a/repos/base-hw/src/core/board/virt_qemu/board.h +++ b/repos/base-hw/src/core/board/virt_qemu/board.h @@ -27,6 +27,8 @@ /* base-hw Core includes */ #include #include +#include +#include namespace Kernel { class Cpu; } diff --git a/repos/base-hw/src/core/board/virt_qemu_64/board.h b/repos/base-hw/src/core/board/virt_qemu_64/board.h index f8856cd0df..1381b555a5 100644 --- a/repos/base-hw/src/core/board/virt_qemu_64/board.h +++ b/repos/base-hw/src/core/board/virt_qemu_64/board.h @@ -25,10 +25,11 @@ #include /* base-hw Core includes */ -#include #include #include #include +#include +#include namespace Board { diff --git a/repos/base-hw/src/core/board/wand_quad/board.h b/repos/base-hw/src/core/board/wand_quad/board.h index 83f90aa83c..a8c71df0fa 100644 --- a/repos/base-hw/src/core/board/wand_quad/board.h +++ b/repos/base-hw/src/core/board/wand_quad/board.h @@ -22,6 +22,8 @@ /* base-hw Core includes */ #include #include +#include +#include namespace Board { diff --git a/repos/base-hw/src/core/board/zynq_qemu/board.h b/repos/base-hw/src/core/board/zynq_qemu/board.h index 81e70fe96f..9e7b76334d 100644 --- a/repos/base-hw/src/core/board/zynq_qemu/board.h +++ b/repos/base-hw/src/core/board/zynq_qemu/board.h @@ -23,6 +23,8 @@ /* base-hw Core includes */ #include #include +#include +#include namespace Board { diff --git a/repos/base-hw/src/core/kernel/pd.h b/repos/base-hw/src/core/kernel/pd.h index e24c9dc630..4192830b91 100644 --- a/repos/base-hw/src/core/kernel/pd.h +++ b/repos/base-hw/src/core/kernel/pd.h @@ -15,13 +15,13 @@ #ifndef _CORE__KERNEL__PD_H_ #define _CORE__KERNEL__PD_H_ -/* core includes */ +/* base-hw Core includes */ #include -#include #include #include -#include +#include +/* base includes */ #include namespace Genode { class Platform_pd; } diff --git a/repos/base-hw/src/core/kernel/thread.h b/repos/base-hw/src/core/kernel/thread.h index 098e8eb63c..a9db6f2228 100644 --- a/repos/base-hw/src/core/kernel/thread.h +++ b/repos/base-hw/src/core/kernel/thread.h @@ -19,8 +19,7 @@ #include #include -/* core includes */ -#include +/* base-hw Core includes */ #include #include #include @@ -29,7 +28,7 @@ #include #include -/* base-local includes */ +/* base internal includes */ #include namespace Kernel { diff --git a/repos/base-hw/src/core/platform.cc b/repos/base-hw/src/core/platform.cc index 6fc763f5a3..e556d3fa3b 100644 --- a/repos/base-hw/src/core/platform.cc +++ b/repos/base-hw/src/core/platform.cc @@ -13,24 +13,27 @@ */ -/* core includes */ +/* base Core includes */ #include #include -#include + +/* base-hw Core includes */ #include #include #include -#include -#include -#include #include -/* base-internal includes */ +/* base-hw internal includes */ +#include +#include +#include + +/* base internal includes */ #include #include #include -/* Genode includes */ +/* base includes */ #include #include diff --git a/repos/base-hw/src/core/platform.h b/repos/base-hw/src/core/platform.h index 49d8477615..44f72754f9 100644 --- a/repos/base-hw/src/core/platform.h +++ b/repos/base-hw/src/core/platform.h @@ -15,24 +15,25 @@ #ifndef _CORE__PLATFORM_H_ #define _CORE__PLATFORM_H_ -/* Genode includes */ +/* base includes */ #include #include #include #include -/* base-hw includes */ +/* base-hw internal includes */ #include #include + +/* base-hw includes */ #include #include #include -/* core includes */ +/* base-hw Core includes */ #include #include #include -#include #include #include diff --git a/repos/base-hw/src/core/platform_pd.h b/repos/base-hw/src/core/platform_pd.h index dab70fe315..979efb857d 100644 --- a/repos/base-hw/src/core/platform_pd.h +++ b/repos/base-hw/src/core/platform_pd.h @@ -15,16 +15,17 @@ #ifndef _CORE__PLATFORM_PD_H_ #define _CORE__PLATFORM_PD_H_ -/* Core includes */ -#include +/* base-hw Core includes */ #include #include -#include #include #include #include #include +/* base-hw internal includes */ +#include + namespace Hw { using namespace Kernel; diff --git a/repos/base-hw/src/core/region_map_support.cc b/repos/base-hw/src/core/region_map_support.cc index e8e6d00e6a..a90926a355 100644 --- a/repos/base-hw/src/core/region_map_support.cc +++ b/repos/base-hw/src/core/region_map_support.cc @@ -12,13 +12,10 @@ * under the terms of the GNU Affero General Public License version 3. */ -/* core includes */ +/* base-hw Core includes */ #include #include #include -#include - -/* base-internal includes */ using namespace Genode; diff --git a/repos/base-hw/src/core/spec/arm/bcm2837_pic.cc b/repos/base-hw/src/core/spec/arm/bcm2837_pic.cc index 81841b0902..87bedca8a2 100644 --- a/repos/base-hw/src/core/spec/arm/bcm2837_pic.cc +++ b/repos/base-hw/src/core/spec/arm/bcm2837_pic.cc @@ -11,8 +11,8 @@ * under the terms of the GNU Affero General Public License version 3. */ +/* base-hw Core includes */ #include -#include #include diff --git a/repos/base-hw/src/core/spec/arm/kernel/thread_caches.cc b/repos/base-hw/src/core/spec/arm/kernel/thread_caches.cc index 273ceace9a..3387f6620b 100644 --- a/repos/base-hw/src/core/spec/arm/kernel/thread_caches.cc +++ b/repos/base-hw/src/core/spec/arm/kernel/thread_caches.cc @@ -11,7 +11,7 @@ * under the terms of the GNU Affero General Public License version 3. */ -#include +/* base-hw Core includes */ #include #include #include diff --git a/repos/base-hw/src/core/spec/arm/virtualization/board.h b/repos/base-hw/src/core/spec/arm/virtualization/board.h index 72db8b2a34..e89c563e6f 100644 --- a/repos/base-hw/src/core/spec/arm/virtualization/board.h +++ b/repos/base-hw/src/core/spec/arm/virtualization/board.h @@ -14,10 +14,13 @@ #ifndef _CORE__SPEC__ARM__VIRTUALIZATION__BOARD_H_ #define _CORE__SPEC__ARM__VIRTUALIZATION__BOARD_H_ -#include +/* base-hw Core includes */ #include #include +/* base-hw internal includes */ +#include + namespace Board { using Vm_page_table = Hw::Level_1_stage_2_translation_table; diff --git a/repos/base-hw/src/core/spec/arm_v8/cpu.cc b/repos/base-hw/src/core/spec/arm_v8/cpu.cc index 45986fb3ad..9586a8dd54 100644 --- a/repos/base-hw/src/core/spec/arm_v8/cpu.cc +++ b/repos/base-hw/src/core/spec/arm_v8/cpu.cc @@ -17,7 +17,6 @@ /* base-hw Core includes */ #include -#include #include diff --git a/repos/base-hw/src/core/spec/cortex_a8/translation_table.h b/repos/base-hw/src/core/spec/cortex_a8/translation_table.h index e78edb99b4..36c0ac9c38 100644 --- a/repos/base-hw/src/core/spec/cortex_a8/translation_table.h +++ b/repos/base-hw/src/core/spec/cortex_a8/translation_table.h @@ -15,10 +15,11 @@ #ifndef _CORE__SPEC__CORTEX_A8__TRANSLATION_TABLE_H_ #define _CORE__SPEC__CORTEX_A8__TRANSLATION_TABLE_H_ +/* base-hw internal includes */ #include -#include -#include +/* base-hw Core includes */ +#include constexpr unsigned Hw::Page_table::Descriptor_base::_device_tex() { diff --git a/repos/base-hw/src/core/vm_session_component.h b/repos/base-hw/src/core/vm_session_component.h index 31c8c95792..09d7206706 100644 --- a/repos/base-hw/src/core/vm_session_component.h +++ b/repos/base-hw/src/core/vm_session_component.h @@ -14,21 +14,22 @@ #ifndef _CORE__VM_SESSION_COMPONENT_H_ #define _CORE__VM_SESSION_COMPONENT_H_ -/* Genode includes */ +/* base includes */ #include #include #include #include #include +/* base-hw includes */ #include -/* Core includes */ +/* base-hw Core includes */ #include #include -#include #include +/* base Core includes */ #include namespace Genode { class Vm_session_component; }