From a911ebb353ead05be37723b7bca8b42857423462 Mon Sep 17 00:00:00 2001 From: hsc <hsc@8c4709b5-6ec9-48aa-a5cd-a96041d1645a> Date: Fri, 19 Oct 2012 09:45:00 +0000 Subject: [PATCH] Revert "explicit aspect activation" Unfortunately, this does not (yet) work as advertised. I need to fight another round of CMake battles before retrying. Reverting to previous state for now. This reverts r1753. git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1767 8c4709b5-6ec9-48aa-a5cd-a96041d1645a --- CMakeLists.txt | 19 ++- cmake/bochs.cmake | 2 +- cmake/compilerconfig.cmake | 8 +- cmake/macros.cmake | 5 - src/CMakeLists.txt | 3 - src/core/sal/CMakeLists.txt | 118 ++++++------------ src/core/sal/bochs/BochsListener.ah | 7 +- src/core/sal/bochs/BochsNoAbort.ah | 6 + src/core/sal/bochs/BochsNonVerbose.ah | 6 + src/core/sal/bochs/Breakpoints.ah | 6 + src/core/sal/bochs/Credits.ah | 8 +- .../sal/bochs/DisableKeyboardInterrupt.ah | 6 + src/core/sal/bochs/DisableLogFunctions.ah | 5 + src/core/sal/bochs/FailBochsInit.ah | 5 + src/core/sal/bochs/FireInterrupt.ah | 7 +- src/core/sal/bochs/GuestSysCom.ah | 6 + src/core/sal/bochs/IOPortCom.ah | 7 ++ src/core/sal/bochs/Interrupt.ah | 6 + src/core/sal/bochs/InterruptSuppression.ah | 6 + src/core/sal/bochs/Jump.ah | 7 ++ src/core/sal/bochs/MemAccess.ah | 6 + src/core/sal/bochs/Reboot.ah | 6 + src/core/sal/bochs/RestoreState.ah | 7 ++ src/core/sal/bochs/SaveState.ah | 6 + src/core/sal/bochs/Trap.ah | 6 + src/core/sal/gem5/Gem5Listener.ah | 6 + src/core/sal/ovp/FailOVPInit.ah | 6 + .../sal/perf/BreakpointControllerSlice.ah | 6 + src/core/sal/perf/BreakpointManagerSlice.ah | 6 + src/core/sal/perf/FastBreakpoints.ah | 4 + src/core/sal/qemu/QEMUListener.ah | 6 + src/core/sal/t32/T32Listener.ah | 6 + src/dummy.ah | 4 - .../checksum-oostubs/CMakeLists.txt | 1 - src/experiments/cool-checksum/CMakeLists.txt | 1 - .../ecos_kernel_test/CMakeLists.txt | 1 - src/experiments/fault-coverage/CMakeLists.txt | 1 - src/experiments/fire-interrupt/CMakeLists.txt | 1 - src/experiments/hsc-simple/CMakeLists.txt | 1 - src/experiments/l4-sys/CMakeLists.txt | 1 - .../mh-test-campaign/CMakeLists.txt | 1 - src/experiments/perf-test/CMakeLists.txt | 1 - src/experiments/rampage/CMakeLists.txt | 1 - .../regression-test/CMakeLists.txt | 1 - src/experiments/tracing-test/CMakeLists.txt | 1 - src/experiments/vezs-example/CMakeLists.txt | 1 - .../weather-monitor/CMakeLists.txt | 1 - 47 files changed, 201 insertions(+), 131 deletions(-) delete mode 100644 cmake/macros.cmake delete mode 100644 src/dummy.ah diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f136110..0f87d994 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,13 +10,6 @@ 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 <your_build_dir>/lib #### SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib) @@ -26,6 +19,13 @@ 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,17 +66,12 @@ 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 3127ddee..a0778c84 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++ ${AGPP_PARAMETERS} -I${PROJECT_SOURCE_DIR}/src/core -I${CMAKE_BINARY_DIR}/src/core --Xcompiler\" LIBTOOL=\"/bin/sh ./libtool --tag=CXX\" 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 COMMENT "[${PROJECT_NAME}] Building libfailbochs" ) diff --git a/cmake/compilerconfig.cmake b/cmake/compilerconfig.cmake index dfa65c3c..c656c54b 100644 --- a/cmake/compilerconfig.cmake +++ b/cmake/compilerconfig.cmake @@ -18,12 +18,8 @@ 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") - 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) + ## Here we add the build dir holding the generated header files (protobuf) + add_definitions("-p ${CMAKE_SOURCE_DIR} ${CMAKE_AGPP_FLAGS} --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 deleted file mode 100644 index 503892b3..00000000 --- a/cmake/macros.cmake +++ /dev/null @@ -1,5 +0,0 @@ -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 33717a8d..bbc85a11 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -29,9 +29,6 @@ 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 797753a3..9c1deb33 100644 --- a/src/core/sal/CMakeLists.txt +++ b/src/core/sal/CMakeLists.txt @@ -1,104 +1,58 @@ -# 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) - list(APPEND SRCS + set(SRCS + Listener.cc + ListenerManager.cc + SALConfig.cc + Register.cc + SimulatorController.cc + perf/BreakpointBuffer.cc 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) - list(APPEND SRCS + set(SRCS + Listener.cc + ListenerManager.cc + SALConfig.cc + Register.cc + SimulatorController.cc + perf/BreakpointBuffer.cc 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) - list(APPEND SRCS + set(SRCS + Listener.cc + ListenerManager.cc + SALConfig.cc + Register.cc + SimulatorController.cc + perf/BreakpointBuffer.cc ${VARIANT}/OVPController.cc ) - add_aspect_headers(${CMAKE_CURRENT_SOURCE_DIR}/ovp/FailOVPInit.ah) elseif(BUILD_QEMU) - list(APPEND SRCS + set(SRCS + Listener.cc + ListenerManager.cc + SALConfig.cc + Register.cc + perf/BreakpointBuffer.cc + SimulatorController.cc 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) - list(APPEND SRCS + set(SRCS + Listener.cc + ListenerManager.cc + SALConfig.cc + Register.cc + perf/BreakpointBuffer.cc + SimulatorController.cc t32/T32Controller.cc t32/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}/t32/T32Listener.ah) -endif() +endif(BUILD_BOCHS) add_library(fail-sal ${SRCS}) diff --git a/src/core/sal/bochs/BochsListener.ah b/src/core/sal/bochs/BochsListener.ah index 37a8f40d..ea290a5e 100644 --- a/src/core/sal/bochs/BochsListener.ah +++ b/src/core/sal/bochs/BochsListener.ah @@ -1,9 +1,13 @@ #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 <cassert> #include "bochs.h" - #include "BochsListener.hpp" /* @@ -47,4 +51,5 @@ 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 fcb9ca61..2f719377 100644 --- a/src/core/sal/bochs/BochsNoAbort.ah +++ b/src/core/sal/bochs/BochsNoAbort.ah @@ -1,6 +1,11 @@ #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 { @@ -32,4 +37,5 @@ 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 172e1a30..a978f6e7 100644 --- a/src/core/sal/bochs/BochsNonVerbose.ah +++ b/src/core/sal/bochs/BochsNonVerbose.ah @@ -1,6 +1,11 @@ #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" /* @@ -52,4 +57,5 @@ 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 32238a80..768a5705 100644 --- a/src/core/sal/bochs/Breakpoints.ah +++ b/src/core/sal/bochs/Breakpoints.ah @@ -1,6 +1,11 @@ #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" @@ -24,4 +29,5 @@ 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 4e9bcd63..0268392c 100644 --- a/src/core/sal/bochs/Credits.ah +++ b/src/core/sal/bochs/Credits.ah @@ -1,11 +1,14 @@ #ifndef __CREDITS_AH__ #define __CREDITS_AH__ +#include "config/VariantConfig.hpp" +#include "config/FailConfig.hpp" + +#ifdef BUILD_BOCHS + #include <string.h> #include <stdio.h> -#include "config/FailConfig.hpp" - aspect Credits { bool first; Credits() : first(true) {} @@ -28,4 +31,5 @@ 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 b0835685..b7010193 100644 --- a/src/core/sal/bochs/DisableKeyboardInterrupt.ah +++ b/src/core/sal/bochs/DisableKeyboardInterrupt.ah @@ -1,6 +1,11 @@ #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" @@ -17,4 +22,5 @@ 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 278c92be..190e32b9 100644 --- a/src/core/sal/bochs/DisableLogFunctions.ah +++ b/src/core/sal/bochs/DisableLogFunctions.ah @@ -1,6 +1,10 @@ #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. * @@ -16,4 +20,5 @@ 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 464e4ed6..42b9fcac 100644 --- a/src/core/sal/bochs/FailBochsInit.ah +++ b/src/core/sal/bochs/FailBochsInit.ah @@ -1,6 +1,10 @@ #ifndef __FAIL_BOCHS_INIT_AH__ #define __FAIL_BOCHS_INIT_AH__ +#include "config/VariantConfig.hpp" + +#ifdef BUILD_BOCHS + #include "../SALInst.hpp" aspect FailBochsInit { @@ -10,4 +14,5 @@ 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 cbd04b66..de31e871 100644 --- a/src/core/sal/bochs/FireInterrupt.ah +++ b/src/core/sal/bochs/FireInterrupt.ah @@ -1,10 +1,14 @@ #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 { @@ -37,4 +41,5 @@ 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 6c4fa5b9..5cf412be 100644 --- a/src/core/sal/bochs/GuestSysCom.ah +++ b/src/core/sal/bochs/GuestSysCom.ah @@ -1,6 +1,11 @@ #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" @@ -24,4 +29,5 @@ 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 411cde86..18fa3722 100644 --- a/src/core/sal/bochs/IOPortCom.ah +++ b/src/core/sal/bochs/IOPortCom.ah @@ -1,10 +1,16 @@ #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) @@ -29,4 +35,5 @@ 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 f1864586..d926ffc8 100644 --- a/src/core/sal/bochs/Interrupt.ah +++ b/src/core/sal/bochs/Interrupt.ah @@ -1,6 +1,11 @@ #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" @@ -30,4 +35,5 @@ 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 b5fda5ba..9500debf 100644 --- a/src/core/sal/bochs/InterruptSuppression.ah +++ b/src/core/sal/bochs/InterruptSuppression.ah @@ -1,6 +1,11 @@ #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" @@ -18,4 +23,5 @@ 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 b5e362b0..bf2920d0 100644 --- a/src/core/sal/bochs/Jump.ah +++ b/src/core/sal/bochs/Jump.ah @@ -1,10 +1,16 @@ #ifndef __JUMP_AH__ #define __JUMP_AH__ +#include "config/VariantConfig.hpp" +#include "config/FailConfig.hpp" + +#if defined(BUILD_BOCHS) && defined(CONFIG_EVENT_JUMP) + #include <iostream> #include <cstdlib> #include <string> #include <ctime> + #include "bochs.h" #include "../SALInst.hpp" @@ -129,4 +135,5 @@ 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 86c0483b..37dbb030 100644 --- a/src/core/sal/bochs/MemAccess.ah +++ b/src/core/sal/bochs/MemAccess.ah @@ -1,8 +1,12 @@ #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 <iostream> #include "bochs.h" @@ -153,4 +157,6 @@ 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 d27f7e41..d530f067 100644 --- a/src/core/sal/bochs/Reboot.ah +++ b/src/core/sal/bochs/Reboot.ah @@ -1,6 +1,11 @@ #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" @@ -20,4 +25,5 @@ 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 c6bf969a..9c9001f6 100644 --- a/src/core/sal/bochs/RestoreState.ah +++ b/src/core/sal/bochs/RestoreState.ah @@ -1,7 +1,13 @@ #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 <iostream> + #include "bochs.h" #include "../SALInst.hpp" @@ -17,4 +23,5 @@ 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 7ca96af1..f0f11699 100644 --- a/src/core/sal/bochs/SaveState.ah +++ b/src/core/sal/bochs/SaveState.ah @@ -1,6 +1,11 @@ #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" @@ -24,4 +29,5 @@ 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 02a58ad3..df427dea 100644 --- a/src/core/sal/bochs/Trap.ah +++ b/src/core/sal/bochs/Trap.ah @@ -1,6 +1,11 @@ #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" @@ -17,4 +22,5 @@ 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 e685eac6..be3e556e 100644 --- a/src/core/sal/gem5/Gem5Listener.ah +++ b/src/core/sal/gem5/Gem5Listener.ah @@ -1,6 +1,11 @@ #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" @@ -30,4 +35,5 @@ 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 d2c8f55c..ca79042f 100644 --- a/src/core/sal/ovp/FailOVPInit.ah +++ b/src/core/sal/ovp/FailOVPInit.ah @@ -1,7 +1,12 @@ #ifndef __OVPINIT_AH__ #define __OVPINIT_AH__ +#include "config/VariantConfig.hpp" + +#ifdef BUILD_OVP + #include <iostream> + #include "../SALInst.hpp" aspect FailOVPInit { @@ -13,4 +18,5 @@ 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 250d579d..c4b8d4cd 100644 --- a/src/core/sal/perf/BreakpointControllerSlice.ah +++ b/src/core/sal/perf/BreakpointControllerSlice.ah @@ -1,6 +1,10 @@ #ifndef __BREAKPOINT_CONTROLLER_SLICE_AH__ #define __BREAKPOINT_CONTROLLER_SLICE_AH__ +#include "config/FailConfig.hpp" + +#ifdef CONFIG_FAST_BREAKPOINTS + #include <iostream> #include "../Listener.hpp" @@ -48,4 +52,6 @@ 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 80954e5a..4d7266b9 100644 --- a/src/core/sal/perf/BreakpointManagerSlice.ah +++ b/src/core/sal/perf/BreakpointManagerSlice.ah @@ -1,6 +1,10 @@ #ifndef __BREAKPOINT_MANAGER_SLICE_AH__ #define __BREAKPOINT_MANAGER_SLICE_AH__ +#include "config/FailConfig.hpp" + +#ifdef CONFIG_FAST_BREAKPOINTS + #include "BreakpointBuffer.hpp" /** @@ -47,4 +51,6 @@ 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 608b408c..f45d38e0 100644 --- a/src/core/sal/perf/FastBreakpoints.ah +++ b/src/core/sal/perf/FastBreakpoints.ah @@ -3,6 +3,8 @@ #include "config/FailConfig.hpp" +#ifdef CONFIG_FAST_BREAKPOINTS + #ifndef CONFIG_EVENT_BREAKPOINTS #error Breakpoint events are required for fast breakpoints! #endif @@ -78,4 +80,6 @@ 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 0ab842f5..1ee027af 100644 --- a/src/core/sal/qemu/QEMUListener.ah +++ b/src/core/sal/qemu/QEMUListener.ah @@ -1,6 +1,11 @@ #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" { @@ -51,4 +56,5 @@ 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 1f0683a2..d7e9e01e 100644 --- a/src/core/sal/t32/T32Listener.ah +++ b/src/core/sal/t32/T32Listener.ah @@ -1,6 +1,11 @@ #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 @@ -26,4 +31,5 @@ aspect T32Listener }; }; +#endif // BUILD_T32 && CONFIG_EVENT_BREAKPOINTS #endif // __T32LISTENER_AH__ diff --git a/src/dummy.ah b/src/dummy.ah deleted file mode 100644 index aa8b24fb..00000000 --- a/src/dummy.ah +++ /dev/null @@ -1,4 +0,0 @@ -// 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 9950f837..5549eeda 100644 --- a/src/experiments/checksum-oostubs/CMakeLists.txt +++ b/src/experiments/checksum-oostubs/CMakeLists.txt @@ -3,7 +3,6 @@ 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 d6dd2d56..1edac21c 100644 --- a/src/experiments/cool-checksum/CMakeLists.txt +++ b/src/experiments/cool-checksum/CMakeLists.txt @@ -3,7 +3,6 @@ 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 c832eb57..be55671c 100644 --- a/src/experiments/ecos_kernel_test/CMakeLists.txt +++ b/src/experiments/ecos_kernel_test/CMakeLists.txt @@ -3,7 +3,6 @@ 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 0058c0a0..b0356a3a 100644 --- a/src/experiments/fault-coverage/CMakeLists.txt +++ b/src/experiments/fault-coverage/CMakeLists.txt @@ -4,7 +4,6 @@ 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 c9df5739..457eb1ef 100644 --- a/src/experiments/fire-interrupt/CMakeLists.txt +++ b/src/experiments/fire-interrupt/CMakeLists.txt @@ -3,7 +3,6 @@ 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 8bdb626d..26450fdb 100644 --- a/src/experiments/hsc-simple/CMakeLists.txt +++ b/src/experiments/hsc-simple/CMakeLists.txt @@ -3,7 +3,6 @@ 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 aa2e7281..61112e19 100644 --- a/src/experiments/l4-sys/CMakeLists.txt +++ b/src/experiments/l4-sys/CMakeLists.txt @@ -3,7 +3,6 @@ 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 19bc80be..19828ffc 100644 --- a/src/experiments/mh-test-campaign/CMakeLists.txt +++ b/src/experiments/mh-test-campaign/CMakeLists.txt @@ -3,7 +3,6 @@ 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 bc98119f..fd32857f 100644 --- a/src/experiments/perf-test/CMakeLists.txt +++ b/src/experiments/perf-test/CMakeLists.txt @@ -3,7 +3,6 @@ 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 fce5377d..4d05b491 100644 --- a/src/experiments/rampage/CMakeLists.txt +++ b/src/experiments/rampage/CMakeLists.txt @@ -3,7 +3,6 @@ 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 d107f4b9..23586b5f 100644 --- a/src/experiments/regression-test/CMakeLists.txt +++ b/src/experiments/regression-test/CMakeLists.txt @@ -3,7 +3,6 @@ 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 94150d69..fe8c210f 100644 --- a/src/experiments/tracing-test/CMakeLists.txt +++ b/src/experiments/tracing-test/CMakeLists.txt @@ -3,7 +3,6 @@ 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 6bddd8a6..72d2938c 100644 --- a/src/experiments/vezs-example/CMakeLists.txt +++ b/src/experiments/vezs-example/CMakeLists.txt @@ -3,7 +3,6 @@ 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 d58c4807..5874abc4 100644 --- a/src/experiments/weather-monitor/CMakeLists.txt +++ b/src/experiments/weather-monitor/CMakeLists.txt @@ -3,7 +3,6 @@ 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 -- GitLab