10 #ifndef MBEDTLS_THREADING_H
11 #define MBEDTLS_THREADING_H
12 #include "mbedtls/private_access.h"
30 #define MBEDTLS_ERR_THREADING_USAGE_ERROR -0x001E
33 #define MBEDTLS_ERR_THREADING_MUTEX_ERROR MBEDTLS_ERR_THREADING_USAGE_ERROR
35 #if defined(MBEDTLS_THREADING_C)
37 #if defined(MBEDTLS_THREADING_PTHREAD)
43 #if defined(MBEDTLS_THREADING_ALT)
110 int (*mutex_init)(mbedtls_platform_mutex_t *),
111 void (*mutex_destroy)(mbedtls_platform_mutex_t *),
112 int (*mutex_lock)(mbedtls_platform_mutex_t *),
113 int (*mutex_unlock)(mbedtls_platform_mutex_t *),
114 int (*cond_init)(mbedtls_platform_condition_variable_t *),
115 void (*cond_destroy)(mbedtls_platform_condition_variable_t *),
116 int (*cond_signal)(mbedtls_platform_condition_variable_t *),
117 int (*cond_broadcast)(mbedtls_platform_condition_variable_t *),
118 int (*cond_wait)(mbedtls_platform_condition_variable_t *,
119 mbedtls_platform_mutex_t *));
128 mbedtls_platform_mutex_t MBEDTLS_PRIVATE(mutex);
141 char MBEDTLS_PRIVATE(initialized);
148 char MBEDTLS_PRIVATE(state);
153 mbedtls_platform_condition_variable_t MBEDTLS_PRIVATE(cond);
392 #if defined(MBEDTLS_FS_IO)
396 #if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_PLATFORM_GMTIME_R_ALT)
mbedtls_threading_mutex_t mbedtls_threading_readdir_mutex
void mbedtls_threading_free_alt(void)
Free global mutexes.
void mbedtls_mutex_init(mbedtls_threading_mutex_t *mutex)
void mbedtls_mutex_free(mbedtls_threading_mutex_t *mutex)
struct mbedtls_threading_mutex_t mbedtls_threading_mutex_t
int mbedtls_mutex_lock(mbedtls_threading_mutex_t *mutex)
void mbedtls_condition_variable_free(mbedtls_threading_condition_variable_t *cond)
int mbedtls_condition_variable_broadcast(mbedtls_threading_condition_variable_t *cond)
int mbedtls_condition_variable_init(mbedtls_threading_condition_variable_t *cond)
struct mbedtls_threading_condition_variable_t mbedtls_threading_condition_variable_t
Compatibility definitions for MbedTLS 3.x code built with MbedTLS 4.x or TF-PSA-Crypto 1...
int mbedtls_condition_variable_wait(mbedtls_threading_condition_variable_t *cond, mbedtls_threading_mutex_t *mutex)
void mbedtls_threading_set_alt(int(*mutex_init)(mbedtls_platform_mutex_t *), void(*mutex_destroy)(mbedtls_platform_mutex_t *), int(*mutex_lock)(mbedtls_platform_mutex_t *), int(*mutex_unlock)(mbedtls_platform_mutex_t *), int(*cond_init)(mbedtls_platform_condition_variable_t *), void(*cond_destroy)(mbedtls_platform_condition_variable_t *), int(*cond_signal)(mbedtls_platform_condition_variable_t *), int(*cond_broadcast)(mbedtls_platform_condition_variable_t *), int(*cond_wait)(mbedtls_platform_condition_variable_t *, mbedtls_platform_mutex_t *))
Set your alternate threading implementation function pointers and initialize global mutexes...
pthread_mutex_t mbedtls_platform_mutex_t
Build-time configuration info.
int mbedtls_mutex_unlock(mbedtls_threading_mutex_t *mutex)
int mbedtls_condition_variable_signal(mbedtls_threading_condition_variable_t *cond)
pthread_cond_t mbedtls_platform_condition_variable_t