aboutsummaryrefslogtreecommitdiff
path: root/projects/hsm/hsm.c
diff options
context:
space:
mode:
Diffstat (limited to 'projects/hsm/hsm.c')
-rw-r--r--projects/hsm/hsm.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/projects/hsm/hsm.c b/projects/hsm/hsm.c
index 971d460..c2f6e0e 100644
--- a/projects/hsm/hsm.c
+++ b/projects/hsm/hsm.c
@@ -103,6 +103,15 @@ osMutexId uart_mutex;
osMutexDef(uart_mutex);
#endif
+#if NUM_RPC_TASK > 1
+/* A mutex to arbitrate concurrent access to the keystore.
+ */
+osMutexId ks_mutex;
+osMutexDef(ks_mutex);
+void hal_ks_lock(void) { osMutexWait(ks_mutex, osWaitForever); }
+void hal_ks_unlock(void) { osMutexRelease(ks_mutex); }
+#endif
+
static uint8_t uart_rx[2]; /* current character received from UART */
/* Callback for HAL_UART_Receive_DMA().
@@ -261,6 +270,8 @@ int main()
#if NUM_RPC_TASK > 1
if ((uart_mutex = osMutexCreate(osMutex(uart_mutex))) == NULL)
Error_Handler();
+ if ((ks_mutex = osMutexCreate(osMutex(ks_mutex))) == NULL)
+ Error_Handler();
#endif
if (hal_rpc_server_init() != LIBHAL_OK)