From d8bbc1e3f3f5430e22e9535b0b5b910dae0b7df7 Mon Sep 17 00:00:00 2001 From: hellwig Date: Thu, 5 Apr 2012 11:45:39 +0000 Subject: [PATCH] fireinterrupt example experiment git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1031 8c4709b5-6ec9-48aa-a5cd-a96041d1645a --- core/experiments/fireinterrupt/CMakeLists.txt | 17 +++++++ core/experiments/fireinterrupt/bootdisk.img | Bin 0 -> 31052 bytes core/experiments/fireinterrupt/experiment.cc | 46 ++++++++++++++++++ core/experiments/fireinterrupt/experiment.hpp | 14 ++++++ 4 files changed, 77 insertions(+) create mode 100644 core/experiments/fireinterrupt/CMakeLists.txt create mode 100644 core/experiments/fireinterrupt/bootdisk.img create mode 100644 core/experiments/fireinterrupt/experiment.cc create mode 100644 core/experiments/fireinterrupt/experiment.hpp diff --git a/core/experiments/fireinterrupt/CMakeLists.txt b/core/experiments/fireinterrupt/CMakeLists.txt new file mode 100644 index 00000000..50a65a8b --- /dev/null +++ b/core/experiments/fireinterrupt/CMakeLists.txt @@ -0,0 +1,17 @@ +set(EXPERIMENT_NAME fireinterrupt) +set(EXPERIMENT_TYPE fireinterruptExperiment) +configure_file(../instantiate-experiment.ah.in + ${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah @ONLY +) + +#experiment sources +set(MY_EXPERIMENT_SRCS + experiment.hpp + experiment.cc +) + +#### include directories #### +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +## build library +add_library(${EXPERIMENT_NAME} ${MY_EXPERIMENT_SRCS}) diff --git a/core/experiments/fireinterrupt/bootdisk.img b/core/experiments/fireinterrupt/bootdisk.img new file mode 100644 index 0000000000000000000000000000000000000000..65e2069463360af0be36b941c1d401824d3343f8 GIT binary patch literal 31052 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 YxQyo}x{Ob;=Fgd@#|Y&SO@BZC0|grz(*OVf literal 0 HcmV?d00001 diff --git a/core/experiments/fireinterrupt/experiment.cc b/core/experiments/fireinterrupt/experiment.cc new file mode 100644 index 00000000..a6f2ddc9 --- /dev/null +++ b/core/experiments/fireinterrupt/experiment.cc @@ -0,0 +1,46 @@ +#include +#include + +#include "experiment.hpp" +#include "SAL/SALInst.hpp" +#include "SAL/bochs/BochsRegister.hpp" +#include "controller/Event.hpp" +#include "util/Logger.hpp" +#include "config/AspectConfig.hpp" + +// Check if configuration dependencies are satisfied: +#if !defined(CONFIG_EVENT_BREAKPOINTS) || !defined(CONFIG_DISABLE_KEYB_INTERRUPTS) || !defined(CONFIG_FIRE_INTERRUPTS) + #error This experiment needs: breakpoints, disabled keyboard interrupts and fire interrupts. Enable these in the configuration. +#endif + +/* This experiment demonstrates the fireInterrupt feature. + * The keyboard-interrupts are disabled. So nothing happens if you press a button on keyboard. + * Only the pressed button will be stored in keyboard-buffer. + * With the fireInterrupt feature keyboard-interrupts are generated manually. + * The result is that the keyboard interrupts will be compensated manually. + * bootdisk.img can be used as example image. (turbo-pacman :) ) + */ + +using std::endl; + +bool fireinterruptExperiment::run() +{ + Logger log("FireInterrupt", false); + log << "experiment start" << endl; +#if 1 + while(1){ + int j = 0; + for(j=0 ; j<=100 ; j++){ + fi::BPEvent mainbp(0x1045f5); + sal::simulator.addEventAndWait(&mainbp); + } + sal::simulator.fireInterrupt(1); + } +#elif 1 + + sal::simulator.dbgEnableInstrPtrOutput(500); + +#endif + + return true; +} diff --git a/core/experiments/fireinterrupt/experiment.hpp b/core/experiments/fireinterrupt/experiment.hpp new file mode 100644 index 00000000..2bf149f5 --- /dev/null +++ b/core/experiments/fireinterrupt/experiment.hpp @@ -0,0 +1,14 @@ +#ifndef __FIREINTERRUPT_EXPERIMENT_HPP__ + #define __FIREINTERRUPT_EXPERIMENT_HPP__ + +#include "controller/ExperimentFlow.hpp" + +class fireinterruptExperiment : public fi::ExperimentFlow +{ + public: + fireinterruptExperiment() { } + + bool run(); +}; + +#endif // __FIREINTERRUPT_EXPERIMENT_HPP__