aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2016-06-05 15:07:57 -0400
committerKevin O'Connor <kevin@koconnor.net>2016-06-13 23:18:58 -0400
commit73f3b0636a369f9e89fe44b56825eead5361601c (patch)
tree932a8d71a547f579d78031385020cec786113227
parent9f8817a47e10f35e8008e40576d2bc54157c2767 (diff)
downloadkutter-73f3b0636a369f9e89fe44b56825eead5361601c.tar.gz
kutter-73f3b0636a369f9e89fe44b56825eead5361601c.tar.xz
kutter-73f3b0636a369f9e89fe44b56825eead5361601c.zip
generic: Move simulator/irq.h to new file generic/irq.h
Move the generic irq definitions into generic/irq.h and move the simulator irq code into main.c. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--src/generic/irq.h11
-rw-r--r--src/generic/pgm.h (renamed from src/simulator/pgm.h)6
-rw-r--r--src/simulator/irq.h31
-rw-r--r--src/simulator/main.c32
4 files changed, 46 insertions, 34 deletions
diff --git a/src/generic/irq.h b/src/generic/irq.h
new file mode 100644
index 00000000..597ff96d
--- /dev/null
+++ b/src/generic/irq.h
@@ -0,0 +1,11 @@
+#ifndef __GENERIC_IRQ_H
+#define __GENERIC_IRQ_H
+
+#include <stdint.h>
+
+void irq_disable(void);
+void irq_enable(void);
+uint8_t irq_save(void);
+void irq_restore(uint8_t flag);
+
+#endif // irq.h
diff --git a/src/simulator/pgm.h b/src/generic/pgm.h
index e5f3787d..bbdc0ba3 100644
--- a/src/simulator/pgm.h
+++ b/src/generic/pgm.h
@@ -1,7 +1,7 @@
-#ifndef __SIMU_PGM_H
-#define __SIMU_PGM_H
+#ifndef __GENERIC_PGM_H
+#define __GENERIC_PGM_H
// This header provides wrappers for the AVR specific "PROGMEM"
-// declarations.
+// declarations on non-avr platforms.
#define PROGMEM
#define PSTR(S) S
diff --git a/src/simulator/irq.h b/src/simulator/irq.h
deleted file mode 100644
index 63f51290..00000000
--- a/src/simulator/irq.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef __SIMU_IRQ_H
-#define __SIMU_IRQ_H
-// Definitions for irq enable/disable on host simulator
-
-#include <stdint.h>
-#include "compiler.h" // barrier
-
-extern uint8_t Interrupt_off;
-
-static inline void irq_disable(void) {
- Interrupt_off = 1;
- barrier();
-}
-
-static inline void irq_enable(void) {
- barrier();
- Interrupt_off = 0;
-}
-
-static inline uint8_t irq_save(void) {
- uint8_t flag = Interrupt_off;
- irq_disable();
- return flag;
-}
-
-static inline void irq_restore(uint8_t flag) {
- barrier();
- Interrupt_off = flag;
-}
-
-#endif // irq.h
diff --git a/src/simulator/main.c b/src/simulator/main.c
index e871864a..419fa531 100644
--- a/src/simulator/main.c
+++ b/src/simulator/main.c
@@ -7,10 +7,42 @@
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
+#include "board/misc.h" // timer_from_us
+#include "board/irq.h" // irq_disable
#include "sched.h" // sched_main
+
+/****************************************************************
+ * Interrupts
+ ****************************************************************/
+
uint8_t Interrupt_off;
+void irq_disable(void)
+{
+ Interrupt_off = 1;
+ barrier();
+}
+
+void irq_enable(void)
+{
+ barrier();
+ Interrupt_off = 0;
+}
+
+uint8_t irq_save(void)
+{
+ uint8_t flag = Interrupt_off;
+ irq_disable();
+ return flag;
+}
+
+void irq_restore(uint8_t flag)
+{
+ barrier();
+ Interrupt_off = flag;
+}
+
/****************************************************************
* Timers