1 /*
2  * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #include <sys/lock.h>
8 
9 #include <zephyr/kernel.h>
10 #include "esp_crypto_lock.h"
11 
12 /* Single lock for SHA and AES engine which both use the crypto DMA */
13 
14 static int s_crypto_dma_lock;
15 
16 /* Lock for the MPI/RSA peripheral, also used by the DS peripheral */
17 static int s_crypto_mpi_lock;
18 
esp_crypto_dma_lock_acquire(void)19 void esp_crypto_dma_lock_acquire(void)
20 {
21     s_crypto_dma_lock = irq_lock();
22 }
23 
esp_crypto_dma_lock_release(void)24 void esp_crypto_dma_lock_release(void)
25 {
26     irq_unlock(s_crypto_dma_lock);
27 }
28 
esp_crypto_mpi_lock_acquire(void)29 void esp_crypto_mpi_lock_acquire(void)
30 {
31     s_crypto_mpi_lock = irq_lock();
32 }
33 
esp_crypto_mpi_lock_release(void)34 void esp_crypto_mpi_lock_release(void)
35 {
36     irq_unlock(s_crypto_mpi_lock);
37 }
38