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)
49typedef struct mbedtls_threading_mutex_t
51 pthread_mutex_t mutex;
56} mbedtls_threading_mutex_t;
59#if defined(MBEDTLS_THREADING_ALT)
61#include "threading_alt.h"
81void mbedtls_threading_set_alt(
void (*mutex_init)( mbedtls_threading_mutex_t * ),
82 void (*mutex_free)( mbedtls_threading_mutex_t * ),
83 int (*mutex_lock)( mbedtls_threading_mutex_t * ),
84 int (*mutex_unlock)( mbedtls_threading_mutex_t * ) );
89void mbedtls_threading_free_alt(
void );
92#if defined(MBEDTLS_THREADING_C)
98extern void (*mbedtls_mutex_init)( mbedtls_threading_mutex_t *mutex );
99extern void (*mbedtls_mutex_free)( mbedtls_threading_mutex_t *mutex );
100extern int (*mbedtls_mutex_lock)( mbedtls_threading_mutex_t *mutex );
101extern int (*mbedtls_mutex_unlock)( mbedtls_threading_mutex_t *mutex );
106#if defined(MBEDTLS_FS_IO)
107extern mbedtls_threading_mutex_t mbedtls_threading_readdir_mutex;
110#if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_PLATFORM_GMTIME_R_ALT)
117extern mbedtls_threading_mutex_t mbedtls_threading_gmtime_mutex;
Configuration options (set of defines)