diff options
Diffstat (limited to 'supervisor')
| -rw-r--r-- | supervisor/shared/safe_mode.c | 6 | ||||
| -rw-r--r-- | supervisor/shared/safe_mode.h | 1 |
2 files changed, 6 insertions, 1 deletions
diff --git a/supervisor/shared/safe_mode.c b/supervisor/shared/safe_mode.c index bb4b99f84..d8d3ab379 100644 --- a/supervisor/shared/safe_mode.c +++ b/supervisor/shared/safe_mode.c @@ -76,6 +76,10 @@ safe_mode_t wait_for_safe_mode_reset(void) { return NO_SAFE_MODE; } +void safe_mode_on_next_reset(safe_mode_t reason) { + port_set_saved_word(SAFE_MODE_DATA_GUARD | (reason << 8)); +} + // Don't inline this so it's easy to break on it from GDB. void __attribute__((noinline,)) reset_into_safe_mode(safe_mode_t reason) { if (current_safe_mode > BROWNOUT && reason > BROWNOUT) { @@ -85,7 +89,7 @@ void __attribute__((noinline,)) reset_into_safe_mode(safe_mode_t reason) { } } - port_set_saved_word(SAFE_MODE_DATA_GUARD | (reason << 8)); + safe_mode_on_next_reset(reason); reset_cpu(); } diff --git a/supervisor/shared/safe_mode.h b/supervisor/shared/safe_mode.h index b4ff1aa33..ee0723cff 100644 --- a/supervisor/shared/safe_mode.h +++ b/supervisor/shared/safe_mode.h @@ -42,6 +42,7 @@ typedef enum { safe_mode_t wait_for_safe_mode_reset(void); +void safe_mode_on_next_reset(safe_mode_t reason); void reset_into_safe_mode(safe_mode_t reason); void print_safe_mode_message(safe_mode_t reason); |
