Moved deprecated files/folders to temp-folder, FI-stuff removed, cleaned up aspect (file-)names and code (-> coding-style).
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1320 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
45
core/SAL/bochs/FireInterrupt.ah
Normal file
45
core/SAL/bochs/FireInterrupt.ah
Normal file
@ -0,0 +1,45 @@
|
||||
#ifndef __FIREINTERRUPT_AH__
|
||||
#define __FIREINTERRUPT_AH__
|
||||
|
||||
#include "config/FailConfig.hpp"
|
||||
|
||||
#ifdef CONFIG_FIRE_INTERRUPTS
|
||||
|
||||
#include "../../../bochs/bochs.h"
|
||||
#include "../../../bochs/cpu/cpu.h"
|
||||
#include "../../../bochs/iodev/iodev.h"
|
||||
#include "../SALInst.hpp"
|
||||
|
||||
aspect FireInterrupt {
|
||||
pointcut cpuLoop() = "void defineCPULoopJoinPoint(...)";
|
||||
|
||||
advice execution (cpuLoop()) : before ()
|
||||
{
|
||||
if (!fail::interrupt_injection_request) {
|
||||
return;
|
||||
} else {
|
||||
BX_SET_INTR(fail::interrupt_to_fire);
|
||||
DEV_pic_raise_irq(fail::interrupt_to_fire);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
aspect InterruptDone {
|
||||
pointcut interrupt_method() = "void bx_cpu_c::interrupt(...)";
|
||||
|
||||
advice execution (interrupt_method()) : before ()
|
||||
{
|
||||
if (!fail::interrupt_injection_request) {
|
||||
return;
|
||||
} else {
|
||||
if (*(tjp->arg<0>()) == 32 + fail::interrupt_to_fire) {
|
||||
DEV_pic_lower_irq(fail::interrupt_to_fire);
|
||||
fail::simulator.fireInterruptDone();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
#endif // CONFIG_FIRE_INTERRUPTS
|
||||
|
||||
#endif // __FIREINTERRUPT_AH__
|
||||
Reference in New Issue
Block a user