summaryrefslogtreecommitdiff
path: root/py
diff options
context:
space:
mode:
Diffstat (limited to 'py')
-rw-r--r--py/py.mk1
-rw-r--r--py/reload.c16
-rw-r--r--py/reload.h10
3 files changed, 27 insertions, 0 deletions
diff --git a/py/py.mk b/py/py.mk
index 21f81c35d..e934c3a83 100644
--- a/py/py.mk
+++ b/py/py.mk
@@ -188,6 +188,7 @@ PY_O_BASENAME = \
objtype.o \
objzip.o \
opmethods.o \
+ reload.o \
sequence.o \
stream.o \
binary.o \
diff --git a/py/reload.c b/py/reload.c
new file mode 100644
index 000000000..95305f2c9
--- /dev/null
+++ b/py/reload.c
@@ -0,0 +1,16 @@
+//
+// Created by Roy Hooper on 2018-05-14.
+//
+
+#include "reload.h"
+#include "py/mpstate.h"
+
+void mp_raise_reload_exception(void) {
+ MP_STATE_VM(mp_pending_exception) = MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_reload_exception));
+#if MICROPY_ENABLE_SCHEDULER
+ if (MP_STATE_VM(sched_state) == MP_SCHED_IDLE) {
+ MP_STATE_VM(sched_state) = MP_SCHED_PENDING;
+ }
+#endif
+
+}
diff --git a/py/reload.h b/py/reload.h
new file mode 100644
index 000000000..72e84e5ca
--- /dev/null
+++ b/py/reload.h
@@ -0,0 +1,10 @@
+//
+// Created by Roy Hooper on 2018-05-14.
+//
+
+#ifndef CIRCUITPYTHON_RELOAD_H
+#define CIRCUITPYTHON_RELOAD_H
+
+void mp_raise_reload_exception(void);
+
+#endif //CIRCUITPYTHON_RELOAD_H