summaryrefslogtreecommitdiff
path: root/shared-bindings
diff options
context:
space:
mode:
authorDan Halbert <halbert@halwitz.org>2020-12-11 08:10:26 -0500
committerDan Halbert <halbert@halwitz.org>2020-12-11 08:10:26 -0500
commitcf938983e9c584b0c41a909723dc71e9161cc494 (patch)
tree4fa39e22638ab6617eb5a5c55ca4ccd8b20751de /shared-bindings
parent55f4110983c175fbb70fa15303f686229ae1ed63 (diff)
SleepMemory + set alarm.wake_alarm
Diffstat (limited to 'shared-bindings')
-rw-r--r--shared-bindings/alarm/__init__.c7
-rw-r--r--shared-bindings/alarm/__init__.h5
2 files changed, 10 insertions, 2 deletions
diff --git a/shared-bindings/alarm/__init__.c b/shared-bindings/alarm/__init__.c
index 28e34ad6a..5ef548ef2 100644
--- a/shared-bindings/alarm/__init__.c
+++ b/shared-bindings/alarm/__init__.c
@@ -197,7 +197,7 @@ STATIC mp_map_elem_t alarm_module_globals_table[] = {
};
STATIC MP_DEFINE_MUTABLE_DICT(alarm_module_globals, alarm_module_globals_table);
-void common_hal_alarm_set_wake_alarm(mp_obj_t alarm) {
+STATIC void alarm_set_wake_alarm(mp_obj_t alarm) {
// Equivalent of:
// alarm.wake_alarm = alarm
mp_map_elem_t *elem =
@@ -207,6 +207,11 @@ void common_hal_alarm_set_wake_alarm(mp_obj_t alarm) {
}
}
+// Initialize .wake_alarm value.
+void alarm_save_wakeup_alarm(void) {
+ alarm_set_wake_alarm(common_hal_alarm_get_wake_alarm());
+}
+
const mp_obj_module_t alarm_module = {
.base = { &mp_type_module },
.globals = (mp_obj_dict_t*)&alarm_module_globals,
diff --git a/shared-bindings/alarm/__init__.h b/shared-bindings/alarm/__init__.h
index 5a8c613d9..8c4b6cad9 100644
--- a/shared-bindings/alarm/__init__.h
+++ b/shared-bindings/alarm/__init__.h
@@ -43,8 +43,11 @@ extern void common_hal_alarm_set_deep_sleep_alarms(size_t n_alarms, const mp_obj
// Deep sleep is entered outside of the VM so we omit the `common_hal_` prefix.
extern NORETURN void alarm_enter_deep_sleep(void);
+extern mp_obj_t common_hal_alarm_get_wake_alarm(void);
+
// Used by wake-up code.
-extern void common_hal_alarm_set_wake_alarm(mp_obj_t alarm);
+void alarm_save_wakeup_alarm(void);
+
// True if an alarm is alerting. This is most useful for pretend deep sleep.
extern bool alarm_woken_from_sleep(void);