10#ifndef MBEDTLS_THREADING_H
11#define MBEDTLS_THREADING_H
23#define MBEDTLS_ERR_THREADING_BAD_INPUT_DATA -0x001C
25#define MBEDTLS_ERR_THREADING_MUTEX_ERROR -0x001E
27#if defined(MBEDTLS_THREADING_PTHREAD)
29typedef struct mbedtls_threading_mutex_t {
39} mbedtls_threading_mutex_t;
42#if defined(MBEDTLS_THREADING_ALT)
44#include "threading_alt.h"
64void mbedtls_threading_set_alt(
void (*
mutex_init)(mbedtls_threading_mutex_t *),
65 void (*mutex_free)(mbedtls_threading_mutex_t *),
66 int (*
mutex_lock)(mbedtls_threading_mutex_t *),
72void mbedtls_threading_free_alt(
void);
75#if defined(MBEDTLS_THREADING_C)
81extern void (*mbedtls_mutex_init)(mbedtls_threading_mutex_t *
mutex);
82extern void (*mbedtls_mutex_free)(mbedtls_threading_mutex_t *
mutex);
83extern int (*mbedtls_mutex_lock)(mbedtls_threading_mutex_t *
mutex);
84extern int (*mbedtls_mutex_unlock)(mbedtls_threading_mutex_t *
mutex);
89#if defined(MBEDTLS_FS_IO)
90extern mbedtls_threading_mutex_t mbedtls_threading_readdir_mutex;
93#if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_PLATFORM_GMTIME_R_ALT)
100extern mbedtls_threading_mutex_t mbedtls_threading_gmtime_mutex;
103#if defined(MBEDTLS_PSA_CRYPTO_C)
114extern mbedtls_threading_mutex_t mbedtls_threading_key_slot_mutex;
121extern mbedtls_threading_mutex_t mbedtls_threading_psa_globaldata_mutex;
128extern mbedtls_threading_mutex_t mbedtls_threading_psa_rngdata_mutex;
int volatile pthread_mutex_t
Definition pthread.h:62
#define mutex_lock(m)
Definition kernel.h:229
#define mutex_unlock(m)
Definition kernel.h:230
#define mutex_init(m)
Definition kernel.h:228
Build-time configuration info.
Macro wrapper for struct's members.
#define MBEDTLS_PRIVATE(member)
Definition private_access.h:15