summaryrefslogtreecommitdiff
path: root/interrupt
diff options
context:
space:
mode:
authorVegard Storheil Eriksen <zyp@jvnv.net>2021-01-15 13:04:35 +0100
committerVegard Storheil Eriksen <zyp@jvnv.net>2021-01-15 13:04:35 +0100
commitd834303f5e642266874b1c99be04dcb9149fefb1 (patch)
treeb27d485646e983ea579cee6a5ce46ad76d824c46 /interrupt
parent082db0c6b5b70df45ef16b7124a982df3054e3c8 (diff)
interrupt: Removed mf_vectors.
Diffstat (limited to 'interrupt')
-rw-r--r--interrupt/interrupt.cpp12
-rw-r--r--interrupt/interrupt.h20
2 files changed, 0 insertions, 32 deletions
diff --git a/interrupt/interrupt.cpp b/interrupt/interrupt.cpp
index ebda829..b50c01e 100644
--- a/interrupt/interrupt.cpp
+++ b/interrupt/interrupt.cpp
@@ -1,20 +1,8 @@
#include "interrupt.h"
-namespace Interrupt {
- MFP mf_vectors[16 + NUM_IRQs];
-};
-
void entry();
-void member_function_interrupt_gate() {
- uint32_t interrupt_num;
- asm ("mrs %0, ipsr" : "=r" (interrupt_num));
-
- Interrupt::mf_vectors[interrupt_num].func_p(Interrupt::mf_vectors[interrupt_num].instance_p);
-}
-
extern "C" void unused_interrupt() {
- member_function_interrupt_gate();
//while(1);
}
diff --git a/interrupt/interrupt.h b/interrupt/interrupt.h
index 80ccb76..0851c87 100644
--- a/interrupt/interrupt.h
+++ b/interrupt/interrupt.h
@@ -120,26 +120,6 @@ namespace Interrupt {
inline void set_priority(IRQ n, uint8_t priority) {
NVIC.IPR[n] = priority;
}
-
- struct MFP {
- void (*func_p)(void*);
- void* instance_p;
- };
-
- extern MFP mf_vectors[];
-
- template<class T>
- inline void set_handler(IRQ n, void (T::*f)(), T* i) {
- MFP& mfp = mf_vectors[16 + n];
- mfp.func_p = reinterpret_cast<void (*)(void*)>(f);
- mfp.instance_p = i;
- }
-
- template<class T>
- inline void enable(IRQ n, void (T::*f)(), T* i) {
- set_handler(n, f, i);
- enable(n);
- }
};
template<Interrupt::Exception>