Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Klipper3d/klipper.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/simulator/irq.h')
-rw-r--r--src/simulator/irq.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/simulator/irq.h b/src/simulator/irq.h
new file mode 100644
index 000000000..63f512908
--- /dev/null
+++ b/src/simulator/irq.h
@@ -0,0 +1,31 @@
+#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