22 #ifndef MBEDTLS_THREADING_H
23 #define MBEDTLS_THREADING_H
25 #if !defined(MBEDTLS_CONFIG_FILE)
28 #include MBEDTLS_CONFIG_FILE
40 #define MBEDTLS_ERR_THREADING_FEATURE_UNAVAILABLE -0x001A
43 #define MBEDTLS_ERR_THREADING_BAD_INPUT_DATA -0x001C
45 #define MBEDTLS_ERR_THREADING_MUTEX_ERROR -0x001E
47 #if defined(MBEDTLS_THREADING_PTHREAD)
49 typedef struct mbedtls_threading_mutex_t {
50 pthread_mutex_t mutex;
55 } mbedtls_threading_mutex_t;
58 #if defined(MBEDTLS_THREADING_ALT)
60 #include "threading_alt.h"
80 void mbedtls_threading_set_alt(
void (*mutex_init)(mbedtls_threading_mutex_t *),
81 void (*mutex_free)(mbedtls_threading_mutex_t *),
82 int (*mutex_lock)(mbedtls_threading_mutex_t *),
83 int (*mutex_unlock)(mbedtls_threading_mutex_t *));
88 void mbedtls_threading_free_alt(
void);
91 #if defined(MBEDTLS_THREADING_C)
97 extern void (*mbedtls_mutex_init)(mbedtls_threading_mutex_t *mutex);
98 extern void (*mbedtls_mutex_free)(mbedtls_threading_mutex_t *mutex);
99 extern int (*mbedtls_mutex_lock)(mbedtls_threading_mutex_t *mutex);
100 extern int (*mbedtls_mutex_unlock)(mbedtls_threading_mutex_t *mutex);
105 #if defined(MBEDTLS_FS_IO)
106 extern mbedtls_threading_mutex_t mbedtls_threading_readdir_mutex;
109 #if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_PLATFORM_GMTIME_R_ALT)
116 extern mbedtls_threading_mutex_t mbedtls_threading_gmtime_mutex;
Configuration options (set of defines)