diff options
| author | Drashna Jaelre <drashna@live.com> | 2022-05-14 15:07:08 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-14 23:07:08 +0100 |
| commit | db887e63d708925ad759e3504a6bc9ceef4aeb8f (patch) | |
| tree | 7366242dc8834ff5ddb761ff162fa444bf64653f /quantum/secure.c | |
| parent | baa8d07fdb32a35f9ff5020d655271b01e057ddc (diff) | |
Enhancement and fixes of "Secure" feature (#16958)
Diffstat (limited to 'quantum/secure.c')
| -rw-r--r-- | quantum/secure.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/quantum/secure.c b/quantum/secure.c index 00048bd6dd..f07f6af2cb 100644 --- a/quantum/secure.c +++ b/quantum/secure.c | |||
| @@ -23,17 +23,24 @@ static secure_status_t secure_status = SECURE_LOCKED; | |||
| 23 | static uint32_t unlock_time = 0; | 23 | static uint32_t unlock_time = 0; |
| 24 | static uint32_t idle_time = 0; | 24 | static uint32_t idle_time = 0; |
| 25 | 25 | ||
| 26 | static void secure_hook(secure_status_t secure_status) { | ||
| 27 | secure_hook_quantum(secure_status); | ||
| 28 | secure_hook_kb(secure_status); | ||
| 29 | } | ||
| 30 | |||
| 26 | secure_status_t secure_get_status(void) { | 31 | secure_status_t secure_get_status(void) { |
| 27 | return secure_status; | 32 | return secure_status; |
| 28 | } | 33 | } |
| 29 | 34 | ||
| 30 | void secure_lock(void) { | 35 | void secure_lock(void) { |
| 31 | secure_status = SECURE_LOCKED; | 36 | secure_status = SECURE_LOCKED; |
| 37 | secure_hook(secure_status); | ||
| 32 | } | 38 | } |
| 33 | 39 | ||
| 34 | void secure_unlock(void) { | 40 | void secure_unlock(void) { |
| 35 | secure_status = SECURE_UNLOCKED; | 41 | secure_status = SECURE_UNLOCKED; |
| 36 | idle_time = timer_read32(); | 42 | idle_time = timer_read32(); |
| 43 | secure_hook(secure_status); | ||
| 37 | } | 44 | } |
| 38 | 45 | ||
| 39 | void secure_request_unlock(void) { | 46 | void secure_request_unlock(void) { |
| @@ -41,6 +48,7 @@ void secure_request_unlock(void) { | |||
| 41 | secure_status = SECURE_PENDING; | 48 | secure_status = SECURE_PENDING; |
| 42 | unlock_time = timer_read32(); | 49 | unlock_time = timer_read32(); |
| 43 | } | 50 | } |
| 51 | secure_hook(secure_status); | ||
| 44 | } | 52 | } |
| 45 | 53 | ||
| 46 | void secure_activity_event(void) { | 54 | void secure_activity_event(void) { |
| @@ -85,3 +93,10 @@ void secure_task(void) { | |||
| 85 | } | 93 | } |
| 86 | #endif | 94 | #endif |
| 87 | } | 95 | } |
| 96 | |||
| 97 | __attribute__((weak)) bool secure_hook_user(secure_status_t secure_status) { | ||
| 98 | return true; | ||
| 99 | } | ||
| 100 | __attribute__((weak)) bool secure_hook_kb(secure_status_t secure_status) { | ||
| 101 | return secure_hook_user(secure_status); | ||
| 102 | } | ||
