diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f87d994..7f136110 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,13 @@ PROJECT(Fail*) set(PROJECT_VERSION "0.0.1" CACHE STRING "Fail* version number") +#### Setup search path for custom cmake scripts #### +SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) + +# initialize list of active aspect headers +set(CMAKE_ASPECT_HEADERS "" CACHE INTERNAL "List of active aspect headers" FORCE) +include(macros) + #### Put all resulting library files in /lib #### SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib) @@ -19,13 +26,6 @@ SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) ## (The autoconf'd Bochs instance is placed in the auto-configured path, ## as we still just call Bochs' Makefile's make install) - -#### Setup search path for custom cmake scipts #### -SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) - -#### Compiler configuration, see cmake/compilerconfig.cmake -include(compilerconfig) - #### Backend selection #### OPTION( BUILD_BOCHS "Build Bochs Variant?" ON) OPTION( BUILD_GEM5 "Build gem5 Variant?" OFF) @@ -66,12 +66,17 @@ include_directories(${CMAKE_BINARY_DIR}/src/core) ## Add CMakeLists from subdirectories: add_subdirectory(src) +#### Compiler configuration, see cmake/compilerconfig.cmake +# Needs to come after source subdirectories, as we only now know all active .ah files. +include(compilerconfig) + #### Backend-related build system stuff include(bochs) include(gem5) include(ovp) include(qemu) include(t32) + ## Just for testing: ## Invoking bochs build via external project # Setup configure call for bochs (-> make ebochs) diff --git a/cmake/bochs.cmake b/cmake/bochs.cmake index a0778c84..3127ddee 100644 --- a/cmake/bochs.cmake +++ b/cmake/bochs.cmake @@ -71,7 +71,7 @@ if(BUILD_BOCHS) set(bochs_src_dir ${PROJECT_SOURCE_DIR}/simulators/bochs) add_custom_command(OUTPUT "${bochs_src_dir}/libfailbochs.a" - COMMAND +make -C ${bochs_src_dir} CXX=\"ag++ -p ${PROJECT_SOURCE_DIR} -I${PROJECT_SOURCE_DIR}/src/core -I${CMAKE_BINARY_DIR}/src/core ${CMAKE_AGPP_FLAGS} --Xcompiler\" LIBTOOL=\"/bin/sh ./libtool --tag=CXX\" libfailbochs.a + COMMAND +make -C ${bochs_src_dir} CXX=\"ag++ ${AGPP_PARAMETERS} -I${PROJECT_SOURCE_DIR}/src/core -I${CMAKE_BINARY_DIR}/src/core --Xcompiler\" LIBTOOL=\"/bin/sh ./libtool --tag=CXX\" libfailbochs.a COMMENT "[${PROJECT_NAME}] Building libfailbochs" ) diff --git a/cmake/compilerconfig.cmake b/cmake/compilerconfig.cmake index c656c54b..dfa65c3c 100644 --- a/cmake/compilerconfig.cmake +++ b/cmake/compilerconfig.cmake @@ -18,8 +18,12 @@ elseif(${COMPILER} STREQUAL "ag++") set(CMAKE_C_COMPILER "ag++") set(CMAKE_CXX_COMPILER "ag++") set(CMAKE_AGPP_FLAGS "--real-instances" CACHE STRING "Additional ag++ flags, e.g. --real-instances --keep_woven") - ## Here we add the build dir holding the generated header files (protobuf) - add_definitions("-p ${CMAKE_SOURCE_DIR} ${CMAKE_AGPP_FLAGS} --Xcompiler") + foreach(aspect_header ${CMAKE_ASPECT_HEADERS}) + list(APPEND AGPP_ASPECTLIST -a ${aspect_header}) + endforeach(aspect_header) + set(AGPP_PARAMETERS ${AGPP_ASPECTLIST} -p ${CMAKE_SOURCE_DIR} ${CMAKE_AGPP_FLAGS}) + unset(AGPP_ASPECTLIST) + add_definitions(${AGPP_PARAMETERS} --Xcompiler) else(${COMPILER} STREQUAL "clang") message(FATAL_ERROR "COMPILER must be exactly one of clang/gcc/ag++. If unsure, use 'ag++'.") diff --git a/cmake/macros.cmake b/cmake/macros.cmake new file mode 100644 index 00000000..503892b3 --- /dev/null +++ b/cmake/macros.cmake @@ -0,0 +1,5 @@ +macro(add_aspect_headers) + foreach(ah_path ${ARGN}) + set(CMAKE_ASPECT_HEADERS ${CMAKE_ASPECT_HEADERS} ${ah_path} CACHE INTERNAL "List of active aspect headers") + endforeach() +endmacro() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bbc85a11..33717a8d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -29,6 +29,9 @@ endforeach(plugin_name) # (probably there's a smarter way to do that with cmake?) add_library(fail dummy.cc) +# dummy .ah file to keep the aspect-header list non-empty +add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/dummy.ah) + ## Setup build dependencies of the Fail* lib ## -> the Fail* targets and user defined experiment targets # start/end-group: ld must iterate over these archives more than once to figure diff --git a/src/core/sal/CMakeLists.txt b/src/core/sal/CMakeLists.txt index 9c1deb33..797753a3 100644 --- a/src/core/sal/CMakeLists.txt +++ b/src/core/sal/CMakeLists.txt @@ -1,58 +1,104 @@ +# common: +set(SRCS + Listener.cc + ListenerManager.cc + SALConfig.cc + Register.cc + SimulatorController.cc + perf/BreakpointBuffer.cc +) +if(CONFIG_FAST_BREAKPOINTS) + add_aspect_headers( + ${CMAKE_CURRENT_SOURCE_DIR}/perf/BreakpointControllerSlice.ah + ${CMAKE_CURRENT_SOURCE_DIR}/perf/BreakpointManagerSlice.ah + ${CMAKE_CURRENT_SOURCE_DIR}/perf/FastBreakpoints.ah) +endif() + if(BUILD_BOCHS) - set(SRCS - Listener.cc - ListenerManager.cc - SALConfig.cc - Register.cc - SimulatorController.cc - perf/BreakpointBuffer.cc + list(APPEND SRCS bochs/BochsController.cc bochs/BochsListener.cc ) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/BochsListener.ah) + if(CONFIG_BOCHS_NO_ABORT) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/BochsNoAbort.ah) + endif() + if(CONFIG_BOCHS_NON_VERBOSE) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/BochsNonVerbose.ah) + endif() + if(CONFIG_EVENT_BREAKPOINTS) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/Breakpoints.ah) + endif() + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/Credits.ah) + if(CONFIG_DISABLE_KEYB_INTERRUPTS) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/DisableKeyboardInterrupt.ah) + endif() + add_aspect_headers( + ${CMAKE_CURRENT_SOURCE_DIR}/bochs/DisableLogFunctions.ah + ${CMAKE_CURRENT_SOURCE_DIR}/bochs/FailBochsInit.ah) + if(CONFIG_FIRE_INTERRUPTS) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/FireInterrupt.ah) + endif() + if(CONFIG_EVENT_GUESTSYS) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/GuestSysCom.ah) + endif() + if(CONFIG_EVENT_INTERRUPT) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/Interrupt.ah) + endif() + if(CONFIG_SUPPRESS_INTERRUPTS) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/InterruptSuppression.ah) + endif() + if(CONFIG_EVENT_IOPORT) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/IOPortCom.ah) + endif() + if(CONFIG_EVENT_JUMP) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/Jump.ah) + endif() + if(CONFIG_EVENT_MEMREAD OR CONFIG_EVENT_MEMWRITE) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/MemAccess.ah) + endif() + if(CONFIG_SR_REBOOT) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/Reboot.ah) + endif() + if(CONFIG_SR_RESTORE) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/RestoreState.ah) + endif() + if(CONFIG_SR_SAVE) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/SaveState.ah) + endif() + if(CONFIG_EVENT_TRAP) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/bochs/Trap.ah) + endif() elseif(BUILD_GEM5) - set(SRCS - Listener.cc - ListenerManager.cc - SALConfig.cc - Register.cc - SimulatorController.cc - perf/BreakpointBuffer.cc + list(APPEND SRCS gem5/Gem5Controller.cc gem5/Gem5PCEvents.cc ) + # note: contrary to the original preprocessor conditional we do not + # depend on CONFIG_EVENT_BREAKPOINTS here (not necessary) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/gem5/Gem5Listener.ah) elseif(BUILD_OVP) - set(SRCS - Listener.cc - ListenerManager.cc - SALConfig.cc - Register.cc - SimulatorController.cc - perf/BreakpointBuffer.cc + list(APPEND SRCS ${VARIANT}/OVPController.cc ) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/ovp/FailOVPInit.ah) elseif(BUILD_QEMU) - set(SRCS - Listener.cc - ListenerManager.cc - SALConfig.cc - Register.cc - perf/BreakpointBuffer.cc - SimulatorController.cc + list(APPEND SRCS qemu/QEMUController.cc qemu/wrappers.cc ) + # note: contrary to the original preprocessor conditional we do not + # depend on CONFIG_EVENT_BREAKPOINTS here (not necessary) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/qemu/QEMUListener.ah) elseif(BUILD_T32) - set(SRCS - Listener.cc - ListenerManager.cc - SALConfig.cc - Register.cc - perf/BreakpointBuffer.cc - SimulatorController.cc + list(APPEND SRCS t32/T32Controller.cc t32/wrappers.cc ) -endif(BUILD_BOCHS) + # note: contrary to the original preprocessor conditional we do not + # depend on CONFIG_EVENT_BREAKPOINTS here (not necessary) + add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/t32/T32Listener.ah) +endif() add_library(fail-sal ${SRCS}) diff --git a/src/core/sal/bochs/BochsListener.ah b/src/core/sal/bochs/BochsListener.ah index ea290a5e..37a8f40d 100644 --- a/src/core/sal/bochs/BochsListener.ah +++ b/src/core/sal/bochs/BochsListener.ah @@ -1,13 +1,9 @@ #ifndef __BOCHS_LISTENER_AH__ #define __BOCHS_LISTENER_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_BOCHS) && defined(CONFIG_EVENT_BREAKPOINTS) - #include #include "bochs.h" + #include "BochsListener.hpp" /* @@ -51,5 +47,4 @@ aspect BochsListener { }; }; -#endif // BUILD_BOCHS && CONFIG_EVENT_BREAKPOINTS #endif // __BOCHS_LISTENER_AH__ diff --git a/src/core/sal/bochs/BochsNoAbort.ah b/src/core/sal/bochs/BochsNoAbort.ah index 2f719377..fcb9ca61 100644 --- a/src/core/sal/bochs/BochsNoAbort.ah +++ b/src/core/sal/bochs/BochsNoAbort.ah @@ -1,11 +1,6 @@ #ifndef __BOCHS_NO_ABORT_AH__ #define __BOCHS_NO_ABORT_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_BOCHS) && defined(CONFIG_BOCHS_NO_ABORT) - #include "bochs.h" aspect BochsNoAbort { @@ -37,5 +32,4 @@ aspect BochsNoAbort { } }; -#endif // CONFIG_BOCHS_NO_ABORT #endif // __BOCHS_NO_ABORT_AH__ diff --git a/src/core/sal/bochs/BochsNonVerbose.ah b/src/core/sal/bochs/BochsNonVerbose.ah index a978f6e7..172e1a30 100644 --- a/src/core/sal/bochs/BochsNonVerbose.ah +++ b/src/core/sal/bochs/BochsNonVerbose.ah @@ -1,11 +1,6 @@ #ifndef __BOCHS_NON_VERBOSE_AH__ #define __BOCHS_NON_VERBOSE_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_BOCHS) && defined(CONFIG_BOCHS_NON_VERBOSE) - #include "bochs.h" /* @@ -57,5 +52,4 @@ aspect BochsNonVerbose { : around () { } }; -#endif // CONFIG_BOCHS_NON_VERBOSE #endif // __BOCHS_NON_VERBOSE_AH__ diff --git a/src/core/sal/bochs/Breakpoints.ah b/src/core/sal/bochs/Breakpoints.ah index 768a5705..32238a80 100644 --- a/src/core/sal/bochs/Breakpoints.ah +++ b/src/core/sal/bochs/Breakpoints.ah @@ -1,11 +1,6 @@ #ifndef __BREAKPOINTS_AH__ #define __BREAKPOINTS_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_BOCHS) && defined(CONFIG_EVENT_BREAKPOINTS) - #include "bochs.h" #include "cpu/cpu.h" @@ -29,5 +24,4 @@ aspect Breakpoints { } }; -#endif // CONFIG_EVENT_BREAKPOINTS #endif // __BREAKPOINTS_AH__ diff --git a/src/core/sal/bochs/Credits.ah b/src/core/sal/bochs/Credits.ah index 0268392c..4e9bcd63 100644 --- a/src/core/sal/bochs/Credits.ah +++ b/src/core/sal/bochs/Credits.ah @@ -1,14 +1,11 @@ #ifndef __CREDITS_AH__ #define __CREDITS_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#ifdef BUILD_BOCHS - #include #include +#include "config/FailConfig.hpp" + aspect Credits { bool first; Credits() : first(true) {} @@ -31,5 +28,4 @@ aspect Credits { } }; -#endif // BUILD_BOCHS #endif // __CREDITS_AH__ diff --git a/src/core/sal/bochs/DisableKeyboardInterrupt.ah b/src/core/sal/bochs/DisableKeyboardInterrupt.ah index b7010193..b0835685 100644 --- a/src/core/sal/bochs/DisableKeyboardInterrupt.ah +++ b/src/core/sal/bochs/DisableKeyboardInterrupt.ah @@ -1,11 +1,6 @@ #ifndef __DISABLE_KEYBOARD_INTERRUPT_AH__ #define __DISABLE_KEYBOARD_INTERRUPT_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_BOCHS) && defined(CONFIG_DISABLE_KEYB_INTERRUPTS) - #include "iodev/iodev.h" #include "iodev/keyboard.h" @@ -22,5 +17,4 @@ aspect DisableKeyboardInterrupt { } }; -#endif // CONFIG_DISABLE_KEYB_INTERRUPTS #endif // __DISABLE_KEYBOARD_INTERRUPT_AH__ diff --git a/src/core/sal/bochs/DisableLogFunctions.ah b/src/core/sal/bochs/DisableLogFunctions.ah index 190e32b9..278c92be 100644 --- a/src/core/sal/bochs/DisableLogFunctions.ah +++ b/src/core/sal/bochs/DisableLogFunctions.ah @@ -1,10 +1,6 @@ #ifndef __DISABLE_ADD_REMOVE_LOGFN_AH__ #define __DISABLE_ADD_REMOVE_LOGFN_AH__ -#include "config/VariantConfig.hpp" - -#ifdef BUILD_BOCHS - /* Hack to prevent Bochs' logfunctions list (bochs.h) to overflow if the * experiment restores simulator state more than ~1000 times. * @@ -20,5 +16,4 @@ aspect DisableLogFunctions { advice execution (add_remove_logfn()) : around () { } }; -#endif // BUILD_BOCHS #endif // __DISABLE_ADD_REMOVE_LOGFN_AH__ diff --git a/src/core/sal/bochs/FailBochsInit.ah b/src/core/sal/bochs/FailBochsInit.ah index 42b9fcac..464e4ed6 100644 --- a/src/core/sal/bochs/FailBochsInit.ah +++ b/src/core/sal/bochs/FailBochsInit.ah @@ -1,10 +1,6 @@ #ifndef __FAIL_BOCHS_INIT_AH__ #define __FAIL_BOCHS_INIT_AH__ -#include "config/VariantConfig.hpp" - -#ifdef BUILD_BOCHS - #include "../SALInst.hpp" aspect FailBochsInit { @@ -14,5 +10,4 @@ aspect FailBochsInit { } }; -#endif #endif // __FAIL_BOCHS_INIT_AH__ diff --git a/src/core/sal/bochs/FireInterrupt.ah b/src/core/sal/bochs/FireInterrupt.ah index de31e871..cbd04b66 100644 --- a/src/core/sal/bochs/FireInterrupt.ah +++ b/src/core/sal/bochs/FireInterrupt.ah @@ -1,14 +1,10 @@ #ifndef __FIREINTERRUPT_AH__ #define __FIREINTERRUPT_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_BOCHS) && defined(CONFIG_FIRE_INTERRUPTS) - #include "bochs.h" #include "cpu/cpu.h" #include "iodev/iodev.h" + #include "../SALInst.hpp" aspect FireInterrupt { @@ -41,5 +37,4 @@ aspect InterruptDone { } }; -#endif // CONFIG_FIRE_INTERRUPTS #endif // __FIREINTERRUPT_AH__ diff --git a/src/core/sal/bochs/GuestSysCom.ah b/src/core/sal/bochs/GuestSysCom.ah index 5cf412be..6c4fa5b9 100644 --- a/src/core/sal/bochs/GuestSysCom.ah +++ b/src/core/sal/bochs/GuestSysCom.ah @@ -1,11 +1,6 @@ #ifndef __GUEST_SYS_COM_AH__ #define __GUEST_SYS_COM_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_BOCHS) && defined(CONFIG_EVENT_GUESTSYS) - #include "bochs.h" #include "cpu/cpu.h" @@ -29,5 +24,4 @@ aspect GuestSysCom { } }; -#endif // CONFIG_EVENT_GUESTSYS #endif // __GUEST_SYS_COM_AH__ diff --git a/src/core/sal/bochs/IOPortCom.ah b/src/core/sal/bochs/IOPortCom.ah index 18fa3722..411cde86 100644 --- a/src/core/sal/bochs/IOPortCom.ah +++ b/src/core/sal/bochs/IOPortCom.ah @@ -1,16 +1,10 @@ #ifndef __IOPORT_COM_AH__ #define __IOPORT_COM_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_BOCHS) && defined(CONFIG_EVENT_IOPORT) - #include "bochs.h" #include "cpu/cpu.h" #include "../SALInst.hpp" - #include "BochsHelpers.hpp" // TODO: ATM only capturing bytewise output (most common, I suppose) @@ -35,5 +29,4 @@ aspect IOPortCom { } }; -#endif // CONFIG_EVENT_IOPORT #endif // __IOPORT_COM_AH__ diff --git a/src/core/sal/bochs/Interrupt.ah b/src/core/sal/bochs/Interrupt.ah index d926ffc8..f1864586 100644 --- a/src/core/sal/bochs/Interrupt.ah +++ b/src/core/sal/bochs/Interrupt.ah @@ -1,11 +1,6 @@ #ifndef __INTERRUPT_AH__ #define __INTERRUPT_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_BOCHS) && defined(CONFIG_EVENT_INTERRUPT) - #include "bochs.h" #include "cpu/cpu.h" @@ -35,5 +30,4 @@ aspect Interrupt { } }; -#endif // CONFIG_EVENT_INTERRUPT #endif // __INTERRUPT_AH__ diff --git a/src/core/sal/bochs/InterruptSuppression.ah b/src/core/sal/bochs/InterruptSuppression.ah index 9500debf..b5fda5ba 100644 --- a/src/core/sal/bochs/InterruptSuppression.ah +++ b/src/core/sal/bochs/InterruptSuppression.ah @@ -1,11 +1,6 @@ #ifndef __INTERRUPT_SUPPRESSION_AH__ #define __INTERRUPT_SUPPRESSION_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_BOCHS) && defined(CONFIG_SUPPRESS_INTERRUPTS) - #include "bochs.h" #include "cpu/cpu.h" @@ -23,5 +18,4 @@ aspect InterruptSuppression { } }; -#endif // CONFIG_SUPPRESS_INTERRUPTS #endif // __INTERRUPT_SUPPRESSION_AH__ diff --git a/src/core/sal/bochs/Jump.ah b/src/core/sal/bochs/Jump.ah index bf2920d0..b5e362b0 100644 --- a/src/core/sal/bochs/Jump.ah +++ b/src/core/sal/bochs/Jump.ah @@ -1,16 +1,10 @@ #ifndef __JUMP_AH__ #define __JUMP_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_BOCHS) && defined(CONFIG_EVENT_JUMP) - #include #include #include #include - #include "bochs.h" #include "../SALInst.hpp" @@ -135,5 +129,4 @@ aspect Jump { } }; -#endif // CONFIG_EVENT_JUMP #endif // __JUMP_AH__ diff --git a/src/core/sal/bochs/MemAccess.ah b/src/core/sal/bochs/MemAccess.ah index 37dbb030..86c0483b 100644 --- a/src/core/sal/bochs/MemAccess.ah +++ b/src/core/sal/bochs/MemAccess.ah @@ -1,12 +1,8 @@ #ifndef __MEM_ACCESS_AH__ #define __MEM_ACCESS_AH__ -#include "config/VariantConfig.hpp" #include "config/FailConfig.hpp" -#ifdef BUILD_BOCHS -#if defined(CONFIG_EVENT_MEMREAD) || defined(CONFIG_EVENT_MEMWRITE) - #include #include "bochs.h" @@ -157,6 +153,4 @@ aspect MemAccess { #endif }; -#endif // CONFIG_EVENT_MEMACCESS -#endif // BUILD_BOCHS #endif // __MEM_ACCESS_AH__ diff --git a/src/core/sal/bochs/Reboot.ah b/src/core/sal/bochs/Reboot.ah index d530f067..d27f7e41 100644 --- a/src/core/sal/bochs/Reboot.ah +++ b/src/core/sal/bochs/Reboot.ah @@ -1,11 +1,6 @@ #ifndef __REBOOT_AH__ #define __REBOOT_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_BOCHS) && defined(CONFIG_SR_REBOOT) - #include "bochs.h" #include "../SALInst.hpp" @@ -25,5 +20,4 @@ aspect Reboot { } }; -#endif // CONFIG_SR_REBOOT #endif // __REBOOT_AH__ diff --git a/src/core/sal/bochs/RestoreState.ah b/src/core/sal/bochs/RestoreState.ah index 9c9001f6..c6bf969a 100644 --- a/src/core/sal/bochs/RestoreState.ah +++ b/src/core/sal/bochs/RestoreState.ah @@ -1,13 +1,7 @@ #ifndef __RESTORE_STATE_AH__ #define __RESTORE_STATE_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_BOCHS) && defined(CONFIG_SR_RESTORE) - #include - #include "bochs.h" #include "../SALInst.hpp" @@ -23,5 +17,4 @@ aspect RestoreState { } }; -#endif // CONFIG_SR_RESTORE #endif // __RESTORE_STATE_AH__ diff --git a/src/core/sal/bochs/SaveState.ah b/src/core/sal/bochs/SaveState.ah index f0f11699..7ca96af1 100644 --- a/src/core/sal/bochs/SaveState.ah +++ b/src/core/sal/bochs/SaveState.ah @@ -1,11 +1,6 @@ #ifndef _SAVE_STATE_AH__ #define _SAVE_STATE_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_BOCHS) && defined(CONFIG_SR_SAVE) - #include "bochs.h" #include "../SALInst.hpp" @@ -29,5 +24,4 @@ aspect SaveState { } }; -#endif // CONFIG_SR_SAVE #endif // _SAVE_STATE_AH__ diff --git a/src/core/sal/bochs/Trap.ah b/src/core/sal/bochs/Trap.ah index df427dea..02a58ad3 100644 --- a/src/core/sal/bochs/Trap.ah +++ b/src/core/sal/bochs/Trap.ah @@ -1,11 +1,6 @@ #ifndef __TRAP_AH__ #define __TRAP_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_BOCHS) && defined(CONFIG_EVENT_TRAP) - #include "bochs.h" #include "cpu/cpu.h" @@ -22,5 +17,4 @@ aspect Trap { } }; -#endif // CONFIG_EVENT_TRAP #endif // __TRAP_AH__ diff --git a/src/core/sal/gem5/Gem5Listener.ah b/src/core/sal/gem5/Gem5Listener.ah index be3e556e..e685eac6 100644 --- a/src/core/sal/gem5/Gem5Listener.ah +++ b/src/core/sal/gem5/Gem5Listener.ah @@ -1,11 +1,6 @@ #ifndef __GEM5LISTENER_AH__ #define __GEM5LISTENER_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_GEM5) && defined(CONFIG_EVENT_BREAKPOINTS) - #include "Gem5PCEvents.hpp" #include "sim/system.hh" @@ -35,5 +30,4 @@ aspect Gem5Listener }; }; -#endif // BUILD_GEM5 && CONFIG_EVENT_BREAKPOINTS #endif // __GEM5LISTENER_AH__ diff --git a/src/core/sal/ovp/FailOVPInit.ah b/src/core/sal/ovp/FailOVPInit.ah index ca79042f..d2c8f55c 100644 --- a/src/core/sal/ovp/FailOVPInit.ah +++ b/src/core/sal/ovp/FailOVPInit.ah @@ -1,12 +1,7 @@ #ifndef __OVPINIT_AH__ #define __OVPINIT_AH__ -#include "config/VariantConfig.hpp" - -#ifdef BUILD_OVP - #include - #include "../SALInst.hpp" aspect FailOVPInit { @@ -18,5 +13,4 @@ aspect FailOVPInit { } }; -#endif // BUILD_OVP #endif // __OVPINIT_AH__ diff --git a/src/core/sal/perf/BreakpointControllerSlice.ah b/src/core/sal/perf/BreakpointControllerSlice.ah index c4b8d4cd..250d579d 100644 --- a/src/core/sal/perf/BreakpointControllerSlice.ah +++ b/src/core/sal/perf/BreakpointControllerSlice.ah @@ -1,10 +1,6 @@ #ifndef __BREAKPOINT_CONTROLLER_SLICE_AH__ #define __BREAKPOINT_CONTROLLER_SLICE_AH__ -#include "config/FailConfig.hpp" - -#ifdef CONFIG_FAST_BREAKPOINTS - #include #include "../Listener.hpp" @@ -52,6 +48,4 @@ public: { addListener(rli); return resume(); } }; -#endif // CONFIG_FAST_BREAKPOINTS - #endif // __BREAKPOINT_CONTROLLER_SLICE_AH__ diff --git a/src/core/sal/perf/BreakpointManagerSlice.ah b/src/core/sal/perf/BreakpointManagerSlice.ah index 4d7266b9..80954e5a 100644 --- a/src/core/sal/perf/BreakpointManagerSlice.ah +++ b/src/core/sal/perf/BreakpointManagerSlice.ah @@ -1,10 +1,6 @@ #ifndef __BREAKPOINT_MANAGER_SLICE_AH__ #define __BREAKPOINT_MANAGER_SLICE_AH__ -#include "config/FailConfig.hpp" - -#ifdef CONFIG_FAST_BREAKPOINTS - #include "BreakpointBuffer.hpp" /** @@ -51,6 +47,4 @@ public: } }; -#endif // CONFIG_FAST_BREAKPOINTS - #endif // __BREAKPOINT_MANAGER_SLICE_AH__ diff --git a/src/core/sal/perf/FastBreakpoints.ah b/src/core/sal/perf/FastBreakpoints.ah index f45d38e0..608b408c 100644 --- a/src/core/sal/perf/FastBreakpoints.ah +++ b/src/core/sal/perf/FastBreakpoints.ah @@ -3,8 +3,6 @@ #include "config/FailConfig.hpp" -#ifdef CONFIG_FAST_BREAKPOINTS - #ifndef CONFIG_EVENT_BREAKPOINTS #error Breakpoint events are required for fast breakpoints! #endif @@ -80,6 +78,4 @@ aspect FastBreakpoints { } }; -#endif // CONFIG_FAST_BREAKPOINTS // see above - #endif // __FAST_BREAKPOINTS_AH__ diff --git a/src/core/sal/qemu/QEMUListener.ah b/src/core/sal/qemu/QEMUListener.ah index 1ee027af..0ab842f5 100644 --- a/src/core/sal/qemu/QEMUListener.ah +++ b/src/core/sal/qemu/QEMUListener.ah @@ -1,11 +1,6 @@ #ifndef __QEMULISTENER_AH__ #define __QEMULISTENER_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_QEMU) && defined(CONFIG_EVENT_BREAKPOINTS) - #include "../SALInst.hpp" extern "C" { @@ -56,5 +51,4 @@ aspect QEMUListener }; }; -#endif // BUILD_QEMU && CONFIG_EVENT_BREAKPOINTS #endif // __QEMULISTENER_AH__ diff --git a/src/core/sal/t32/T32Listener.ah b/src/core/sal/t32/T32Listener.ah index d7e9e01e..1f0683a2 100644 --- a/src/core/sal/t32/T32Listener.ah +++ b/src/core/sal/t32/T32Listener.ah @@ -1,11 +1,6 @@ #ifndef __T32LISTENER_AH__ #define __T32LISTENER_AH__ -#include "config/VariantConfig.hpp" -#include "config/FailConfig.hpp" - -#if defined(BUILD_T32) && defined(CONFIG_EVENT_BREAKPOINTS) - #include "../SALInst.hpp" aspect T32Listener @@ -31,5 +26,4 @@ aspect T32Listener }; }; -#endif // BUILD_T32 && CONFIG_EVENT_BREAKPOINTS #endif // __T32LISTENER_AH__ diff --git a/src/dummy.ah b/src/dummy.ah new file mode 100644 index 00000000..aa8b24fb --- /dev/null +++ b/src/dummy.ah @@ -0,0 +1,4 @@ +// dummy aspect header: +// Makes sure at least *one* .ah file is active, and ag++ is called with at +// least *one* -a parameter. Otherwise ag++ would take *all* .ah files in the +// project tree into account. diff --git a/src/experiments/checksum-oostubs/CMakeLists.txt b/src/experiments/checksum-oostubs/CMakeLists.txt index 5549eeda..9950f837 100644 --- a/src/experiments/checksum-oostubs/CMakeLists.txt +++ b/src/experiments/checksum-oostubs/CMakeLists.txt @@ -3,6 +3,7 @@ set(EXPERIMENT_TYPE ChecksumOOStuBSExperiment) configure_file(../instantiate-experiment.ah.in ${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah @ONLY ) +add_aspect_headers(${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah) ## Setup desired protobuf descriptions HERE ## set(MY_PROTOS diff --git a/src/experiments/cool-checksum/CMakeLists.txt b/src/experiments/cool-checksum/CMakeLists.txt index 1edac21c..d6dd2d56 100644 --- a/src/experiments/cool-checksum/CMakeLists.txt +++ b/src/experiments/cool-checksum/CMakeLists.txt @@ -3,6 +3,7 @@ set(EXPERIMENT_TYPE CoolChecksumExperiment) configure_file(../instantiate-experiment.ah.in ${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah @ONLY ) +add_aspect_headers(${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah) ## Setup desired protobuf descriptions HERE ## set(MY_PROTOS diff --git a/src/experiments/ecos_kernel_test/CMakeLists.txt b/src/experiments/ecos_kernel_test/CMakeLists.txt index be55671c..c832eb57 100644 --- a/src/experiments/ecos_kernel_test/CMakeLists.txt +++ b/src/experiments/ecos_kernel_test/CMakeLists.txt @@ -3,6 +3,7 @@ set(EXPERIMENT_TYPE EcosKernelTestExperiment) configure_file(../instantiate-experiment.ah.in ${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah @ONLY ) +add_aspect_headers(${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah) ## Setup desired protobuf descriptions HERE ## set(MY_PROTOS diff --git a/src/experiments/fault-coverage/CMakeLists.txt b/src/experiments/fault-coverage/CMakeLists.txt index b0356a3a..0058c0a0 100644 --- a/src/experiments/fault-coverage/CMakeLists.txt +++ b/src/experiments/fault-coverage/CMakeLists.txt @@ -4,6 +4,7 @@ set(EXPERIMENT_TYPE FaultCoverageExperiment) configure_file(../instantiate-experiment.ah.in ${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah @ONLY ) +add_aspect_headers(${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah) #experiment sources set(MY_EXPERIMENT_SRCS diff --git a/src/experiments/fire-interrupt/CMakeLists.txt b/src/experiments/fire-interrupt/CMakeLists.txt index 457eb1ef..c9df5739 100644 --- a/src/experiments/fire-interrupt/CMakeLists.txt +++ b/src/experiments/fire-interrupt/CMakeLists.txt @@ -3,6 +3,7 @@ set(EXPERIMENT_TYPE FireInterruptExperiment) configure_file(../instantiate-experiment.ah.in ${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah @ONLY ) +add_aspect_headers(${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah) #experiment sources set(MY_EXPERIMENT_SRCS diff --git a/src/experiments/hsc-simple/CMakeLists.txt b/src/experiments/hsc-simple/CMakeLists.txt index 26450fdb..8bdb626d 100644 --- a/src/experiments/hsc-simple/CMakeLists.txt +++ b/src/experiments/hsc-simple/CMakeLists.txt @@ -3,6 +3,7 @@ set(EXPERIMENT_TYPE HSCSimpleExperiment) configure_file(../instantiate-experiment.ah.in ${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah @ONLY ) +add_aspect_headers(${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah) #experiment sources set(MY_EXPERIMENT_SRCS diff --git a/src/experiments/l4-sys/CMakeLists.txt b/src/experiments/l4-sys/CMakeLists.txt index 61112e19..aa2e7281 100644 --- a/src/experiments/l4-sys/CMakeLists.txt +++ b/src/experiments/l4-sys/CMakeLists.txt @@ -3,6 +3,7 @@ set(EXPERIMENT_TYPE L4SysExperiment) configure_file(../instantiate-experiment.ah.in ${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah @ONLY ) +add_aspect_headers(${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah) ## Setup desired protobuf descriptions HERE ## set(MY_PROTOS diff --git a/src/experiments/mh-test-campaign/CMakeLists.txt b/src/experiments/mh-test-campaign/CMakeLists.txt index 19828ffc..19bc80be 100644 --- a/src/experiments/mh-test-campaign/CMakeLists.txt +++ b/src/experiments/mh-test-campaign/CMakeLists.txt @@ -3,6 +3,7 @@ set(EXPERIMENT_TYPE MHTestExperiment) configure_file(../instantiate-experiment.ah.in ${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah @ONLY ) +add_aspect_headers(${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah) ## Setup desired protobuf descriptions HERE ## set(MY_PROTOS diff --git a/src/experiments/perf-test/CMakeLists.txt b/src/experiments/perf-test/CMakeLists.txt index fd32857f..bc98119f 100644 --- a/src/experiments/perf-test/CMakeLists.txt +++ b/src/experiments/perf-test/CMakeLists.txt @@ -3,6 +3,7 @@ set(EXPERIMENT_TYPE PerfTestExperiment) configure_file(../instantiate-experiment.ah.in ${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah @ONLY ) +add_aspect_headers(${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah) #experiment sources set(MY_EXPERIMENT_SRCS diff --git a/src/experiments/rampage/CMakeLists.txt b/src/experiments/rampage/CMakeLists.txt index 4d05b491..fce5377d 100644 --- a/src/experiments/rampage/CMakeLists.txt +++ b/src/experiments/rampage/CMakeLists.txt @@ -3,6 +3,7 @@ set(EXPERIMENT_TYPE RAMpageExperiment) configure_file(../instantiate-experiment-indirect.ah.in ${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah @ONLY ) +add_aspect_headers(${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah) set(MY_PROTOS rampage.proto diff --git a/src/experiments/regression-test/CMakeLists.txt b/src/experiments/regression-test/CMakeLists.txt index 23586b5f..d107f4b9 100644 --- a/src/experiments/regression-test/CMakeLists.txt +++ b/src/experiments/regression-test/CMakeLists.txt @@ -3,6 +3,7 @@ set(EXPERIMENT_TYPE RegressionTest) configure_file(../instantiate-experiment.ah.in ${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah @ONLY ) +add_aspect_headers(${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah) #experiment sources set(MY_EXPERIMENT_SRCS diff --git a/src/experiments/tracing-test/CMakeLists.txt b/src/experiments/tracing-test/CMakeLists.txt index fe8c210f..94150d69 100644 --- a/src/experiments/tracing-test/CMakeLists.txt +++ b/src/experiments/tracing-test/CMakeLists.txt @@ -3,6 +3,7 @@ set(EXPERIMENT_TYPE TracingTest) configure_file(../instantiate-experiment.ah.in ${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah @ONLY ) +add_aspect_headers(${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah) set(MY_CAMPAIGN_SRCS experiment.hpp diff --git a/src/experiments/vezs-example/CMakeLists.txt b/src/experiments/vezs-example/CMakeLists.txt index 72d2938c..6bddd8a6 100644 --- a/src/experiments/vezs-example/CMakeLists.txt +++ b/src/experiments/vezs-example/CMakeLists.txt @@ -3,6 +3,7 @@ set(EXPERIMENT_TYPE VEZSExperiment) configure_file(../instantiate-experiment.ah.in ${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah @ONLY ) +add_aspect_headers(${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah) ## Setup desired protobuf descriptions HERE ## set(MY_PROTOS diff --git a/src/experiments/weather-monitor/CMakeLists.txt b/src/experiments/weather-monitor/CMakeLists.txt index 5874abc4..d58c4807 100644 --- a/src/experiments/weather-monitor/CMakeLists.txt +++ b/src/experiments/weather-monitor/CMakeLists.txt @@ -3,6 +3,7 @@ set(EXPERIMENT_TYPE WeatherMonitorExperiment) configure_file(../instantiate-experiment.ah.in ${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah @ONLY ) +add_aspect_headers(${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah) ## Setup desired protobuf descriptions HERE ## set(MY_PROTOS